マナリンク Tech Blogのフィード
https://zenn.dev/p/manalink_dev
オンライン家庭教師マナリンクを運営するスタートアップNoSchoolのテックブログです。 https://manalink.jp/ 創業以来年次200%前後で売上成長しつつ、技術面・組織面での課題に日々向き合っています。 カジュアル面談はこちら! https://forms.g
フィード

Sentryが導入されていると手動テスト担当者がとても助かるという話
マナリンク Tech Blogのフィード
はじめにSentryは、リアルタイムでエラーを検出し、詳細なログを取得できる強力なツールです。そこで本記事では、Sentryが手動テスト担当者視点でどのように役立ったのかを3つ紹介させていただきます。 Sentryが導入されていた助かったこと3選 1. バグが見つかったときに開発担当者に正確な情報を提供できるSentryを活用することで、バグ報告がより詳細になり、開発者が迅速に対応できるようになります。Sentryにはエラー発生時にSlack通知を行う機能があり、開発担当者にリアルタイムでエラーを共有できます。加えて、Sentryの通知メッセージにはエラーの詳細(例:エ...
2ヶ月前

”開発チームと監視の心理的距離”を近くするためのSentryとLogging運用例
マナリンク Tech Blogのフィード
マナリンクCTOの名人です。今回は、SentryとLoggingの工夫により、「開発チームとエラー監視の心理的距離を近くする」ことをテーマに記事を書きます。 背景エラー監視、嫌ですよね。手塩にかけて育てたソースコードが本番環境でエラーを吐いている様子は、誰が見ても気持ちいいものではありません。そんなエラー監視から目を逸らさず、普段の開発から意識して関わっていくことが、サービスの安定した運用や障害対応のスピードに繋がります。弊社では昨年1年ほどかけて、コツコツとSentryとの関わり方や、日頃どんな基準でどんな形式でどこにLoggingするか、およびSentryとLoggin...
2ヶ月前

未知の実装を恐れない:小さな不自然を見逃さない責務思考のススメ
マナリンク Tech Blogのフィード
TL; DRシステム開発において、毎回「慣れている方法で実装する」ではなく「責務的にはこのレイヤーで開発すべきだから、知らないことでも調べて開発する」という責務思考が成長のエンジンになる 本記事における“不自然なソースコード”の定義不自然なソースコードとは、「 レビューで指摘されればすぐに“確かに”と納得するけれど、自分で書いているときには気づけなかったコード 」を指します。大規模アーキテクチャ上の根本的な誤りというよりは、たとえば以下のような“小さな違和感”が特徴です。本来はあるモジュールに責務があるのに、別のモジュールで無理やり実装されている変数や引数設計がチグ...
3ヶ月前

EM1年目の振り返り、あるいは「正しい失敗」のやり方について
マナリンク Tech Blogのフィード
こちらはEngineering Manager Advent Calendar 2024の10日目の記事にです昨日はもつおさんの 中途入社エンジニアへの毎日1on1のススメでした。今年入社した人だったので、「これくらいやっても良かったのかなぁ」と自分の一年を振り返りながら読ませてもらいました。マナリンクでEMをやっている@kondo_scriptです。今年の4月にEMとして入社して、入社エントリみたいな記事を書いてからかれこれ半年強が経ちました。https://zenn.dev/manalink_dev/articles/902eff3aa3e36dちょうどいいタイミングなの...
5ヶ月前

弊社の「意識チョット低いアーキテクチャ」10選
マナリンク Tech Blogのフィード
「CTOの視点で選ぶ「最適な」アーキテクチャとは?」というイベントで登壇しました。https://rosca.connpass.com/event/333739/本記事は登壇資料をMarkdownとしてそのまま記事化したものです。スライドのほうが読みやすい方は、Speaker Deckで御覧ください! 自己紹介1|職歴、趣味など職種・SNS株式会社NoSchool CTO2016年〜Webエンジニア。2019年〜現職Twitter(X): 名人|マナリンクCTOZenn: https://zenn.dev/meijin好きなHTTPヘッダーはCache-C...
7ヶ月前

DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話
マナリンク Tech Blogのフィード
【DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話】というタイトルでDevelopers Summit 2024夏に登壇しました。▼登壇資料https://speakerdeck.com/texmeijin/dddwozhi-site3nian-jing-tutara-dddnopi-wobei-tutakurinakitekutiya-ninatutahua-debusami2024xia本記事では「登壇内容」、「登壇した経緯」、「登壇内容への自分自身の振り返り」の順でまとめていきます。すでに登壇を聞いていただいたり資料を見ていただいた方は、後半の...
9ヶ月前

画像表示最適化のために、CDNの挙動をリバースエンジニアリングした話
マナリンク Tech Blogのフィード
フロントエンド領域(ネイティブアプリやWebサイト)において、画像の表示速度を速め、ユーザー体験を向上させる重要性は年々増している。画像の最適化にあたっては、imgix等の画像処理に特化したCDNを用いることで、オンデマンドに必要なサイズの画像を、低い開発工数で生成できる。弊社で開発しているオンライン家庭教師サービス「マナリンク」において日々先生と生徒間で多くのチャットが行われており、ノートや教科書の写真が送信されている。これらの写真は先生が内容を把握するために高精細である必要がある一方、大量に受信したときに速く表示するために一覧時点ではサムネイルサイズで表示したい、といった最適化Is...
1年前

【図解】Next.jsで理解するSSRとクライアントルーティングの通信の仕組み
マナリンク Tech Blogのフィード
「Next.jsで理解するSSRとクライアントルーティングの違い」という名目で社内にて簡単に勉強会を行いました。本記事は、その内容を適宜編集して公開するものです。 TL;DR以下の要約を読んで、「なんだその話か」って思った方は引き返していただいて大丈夫です。逆に「えっそうなの・・・?」と思った方は、ぜひ読んでください!Next.jsアプリケーションにおいて、/hogeと/fugaというページがあり、それぞれgetServerSideProps()が定義されているとします最初ブラウザで/hogeを開いたとき、Next.jsアプリケーションはブラウザから/hogeへのGETリクエ...
1年前

令和の今、あえてマスタテーブル VS ハードコーディングについて考えてみた
マナリンク Tech Blogのフィード
この記事の目的今更「現代のプログラミングでマスタテーブル(特に更新が想定されないもの)使う意味ってなんだ? デプロイすぐ終わるしハードコーディングでよくないか?」と、ふと疑問に思ったので、メリデメについて言語化してみようともった。「マスタテーブルとハードコーディングについて説明した上でメリット・デメリットを教えてください」とChatGPTに聞いてみたところ、ところどころ怪しい(ex データの再利用性/依存関係の増加あたりは「実装次第ちゃう?」という感じ)返事が返ってきた。ちょくちょく引用しつつ、自分なりに考えを整理してみることにした。 前提: 言葉の定義について マス...
1年前

Expo GoからExpo development buildに移行したので、詰まったところを共有します
マナリンク Tech Blogのフィード
対象読者Expoのdevelopment buildを導入しようとしている方Expoのdevelopment buildで詰まっている方 環境Expo SDK: 50系React Native: 0.73系Expo Workflow: Managed Workflow Expoのdevelopment buildとは?React Native + Expoで構成されているアプリの場合、開発する際の動作確認やスタイリングの確認にはSimulatorかExpo Goを使用すると思います。もし実機で確認したいとなるとExpo Goに限られるのですが、Expo ...
1年前

CTOが社内UIライブラリを作ったので、メンバー視点で役に立ったか話します
マナリンク Tech Blogのフィード
背景先日弊社CTOにより、社内UIライブラリがリリースされました(詳しくはこちらをご覧ください)。結論からいうとかなり役に立ちました。そこで、今回はメンバー視点で特に社内UIライブラリがあって助かったことを3つ紹介させていただきます。 社内UIライブラリがあって助かったこと3選 1. 各プロジェクトに同じコンポーネントを作らずに済む弊社の事業として、マナリンク高等学院とマナリンク小中等部 というものがあるのですが、オンラインフリースクールとサポート校ということで似たデザインになりやすいです。そこで、社内UIライブラリを使用することで、各プロジェクトに共通するコンポーネ...
1年前

【ESLint】Reactで”&&”で分岐した際、うっかり「0」を表示しないためのルール3選
マナリンク Tech Blogのフィード
Reactでコンポーネントの表示を分岐する際、{someVariable && <Component />}のように実装することが多いと思います。このような実装の罠として、変数がbool型ならよいのですが、たとえばnumber型かつ0が格納されている際、式の評価としては左辺の0が返されてしまい、ブラウザ上に「0」とだけ表示されたり、React Nativeでは最悪の場合クラッシュを引き起こします。対策としてはシンプルで、かならず!!を先頭に付与すると良いです。{!!someVariable && <Component />...
1年前

TypeScriptエンジニアが、Laravel + Next.jsでDDDをやっているアーリーベンチャーのコードに触れた感想まとめ
マナリンク Tech Blogのフィード
この記事の目的株式会社NoSchoolでオンライン家庭教師マナリンクの開発にJOINしたので、コードや設計などの感想を述べてみる。入社エントリがわり。テンション高めです。 この記事の想定読者アーリーステージベンチャーの開発に興味がある人PHP/Laravel + (Nuxt.js + Next.js) + Expo(ReactNative) + AWS のフルスタック開発体制に興味がある人今の所バックエンドを触ることが多いためそのウェイトが高めです。逆にExpoやインフラ周りについては情報少なめです。JOINしたチームはエンジニア4名くらいでサーバ/フロン...
1年前

Tailwind CSSでz-indexの値をマジックナンバーにしないための小ワザ
マナリンク Tech Blogのフィード
背景小ネタです。先日以下のようなバグ改修タスクでソースレビューを担当しました。「全画面モーダルを実装したら、グローバルメニューより上に表示されてしまった。なのでz-indexを修正しました!」我々が開発しているマナリンクでは、画面右上の自分のアイコンをクリックするとメニューが表示されます。ところが全画面モーダルを実装したら、モーダルがメニューよりも上に表示されてしまい、モーダル表示中にメニューを操作できなくなってしまったとのこと。最初のPull Requestの時点では、以下のような差分になっていました。 <div- className={'z...
1年前

Reactで社内向けUIライブラリ開発・ビルド・公開・布教入門【2024年】
マナリンク Tech Blogのフィード
会社で複数の新規事業を立ち上げる機運が高まったことをきっかけに社内向けUIライブラリを開発し、限定公開して利用を始めました。本記事ではReactで社内向けUIライブラリを開発・ビルド・公開・布教するためのアレコレを共有します。以下のような話題について知りたい方に特に読んでほしいです。Private Packageの作り方、配布の方法のイメージがつかない方CommonJSとES Modules、今はどちらでビルドするのがいいのか知りたい方ライブラリの作り方について網羅的に知りたい方 前提利用側のアプリケーションはNext.js固定を前提とするTailwind CSS...
1年前

打倒React Hook Formを掲げてもくもく会を主催したが、結局Rhf強ぇ〜ってなった話
マナリンク Tech Blogのフィード
React Hook Form、便利ですよね。とはいえReactのFormライブラリ自体は複数あるはずで、今はReact Hook Formが人気だけどそのうち覇権が移ることもあるのではと思い、以下のようなツイートをしてみたところ、思いのほか反応がありました。https://twitter.com/Meijin_garden/status/1742738322198569302という流れで以前から仲良くさせていただいているアセンド株式会社の方にお声がけいただいて、あれよあれよというまにconnpassが立ち上がりました。https://ascend.connpass.com/ev...
1年前

【MySQL】フロントエンドエンジニアがMySQLのWITH句の便利さを知った話
マナリンク Tech Blogのフィード
はじめにこんにちは。kouです。自分は普段の開発業務ではフロントエンド及びバックエンドのどちらもを触ることが多いのですが、元々はフロントエンドに興味関心があってフロントエンドを中心に学習をしていたこともあり、バックエンド技術に関しては相対的に見てまだまだ広い知見がありません。そんな自分が、最近業務内でMySQLのWITH句を使用する機会があり、SQLの可読性向上の観点からとても有用なものだと感じたので、今回はその紹介をします。 WITH句とはWITH句とは、SQL(主にサブクエリ)の実行結果に対して名前をつけて一時的な仮想テーブルを作成し、それをメインクエリ内から参照でき...
1年前

[筋トレのすゝめ] プログラミングばっかりしていて、運動不足のエンジニアを撲滅したい
マナリンク Tech Blogのフィード
はじめにこの記事はこちらの素晴らしい記事を拝見し、私も書こうと思った記事となります。筋肥大目的で筋トレを始めて約6年程度の体験&健康に関する学習で得た知見を元に書いています。筋トレ3年目頃から、筋肥大よりも健康志向になったので記事の内容は健康に重きを置いた内容となっております。エンジニアリングにも全く関係ないので、皆様暇な時に読んでください。と言いたい所ですが、日常的に運動をしていない不健康なエンジニアは必ず読んでください。また、私が仕事よりも本気で取り組んでいるジム勧誘活動によって、弊社社員のジム加入率は80%を超えています。熱心で粘着質な勧誘、そしてプロテイン服用の強制...
1年前

1年間CTOとEMを兼任して考えたこと
マナリンク Tech Blogのフィード
はじめに昨年2023年は、株式会社NoSchoolのCTOとして、オンライン家庭教師マナリンク(https://manalink.jp/ )に関わる開発、エンジニアリングマネージャー、採用、UIデザイン、運用保守、PMなどを兼任していました。本記事では、エンジニアリングマネージャー(以下EM)を兼任していて考えたことをまとめていきます。シリーズA前後のスタートアップという特異な状況かつ、マネジメントしたメンバーも3人と小規模なためあまり参考になる知見か分かりませんが、現時点での自分の考え方の備忘録的な意味も込めてまとめておきます。 考えたことまとめそれでは早速矢継ぎ早に考...
1年前

【振り返り】2023年スタートアップでの開発振り返り
マナリンク Tech Blogのフィード
はじめにこんにちは。kouです。2023年も残り僅かとなりました(現在 2023/12/31 21:19 🙂)。現在自分が所属している会社(株式会社NoSchool)には昨年の8月に転職したので、2023年は丸1年間がっつり「オンライン家庭教師マナリンク(弊社が開発・運営しているサービス)」の開発に携わるという1年でした。そんな2023年にマナリンク開発を通して学んだことや所感を、年の瀬の振り返りとして残しておこうと思います。 2023年の技術的な学び一覧2023年のマナリンク開発を通じた学びを簡単にですが一覧にまとめました。https://x.com/ogakuzu...
1年前