マナリンク Tech Blogのフィード
https://zenn.dev/p/manalink_dev
オンライン家庭教師マナリンクを運営するNoSchool社のテックブログです。 https://manalink.jp/ 実際に検証・開発した内容をベースに、ただのマニュアルや告知に留まらない具体的な知見を公開します! カジュアル面談はこちら! https://forms.gle
フィード

人間にやってはいけないがコーディングエージェントにやると効果的なマネジメント手法
マナリンク Tech Blogのフィード
この記事の目的マナリンクでEMをやっている@kondo_scriptです。最近弊社でもClaude Code Maxが導入され、日々楽しくAgentic Codingをやっています。Claude Opusをふんだんに使えるClaude Codeの応対やアウトプットはほぼ人間のようで、つい「人間として」Claude Codeに接してしまいがちです。しかし当然ながらClaude Codeは人間ではありません。人間へのマネジメントで「やるな」と言われることが、AIにはむしろ効果的 であるケースがしばしば存在するように思えます。しかし、特に人間のマネジメント経験があると「人間相手で...
3日前

個人開発用と会社用のClaude Codeアカウントを併用しつつそれぞれのフォルダで正しい方のアカウントで起動する
マナリンク Tech Blogのフィード
こんにちは。Claude Codeの5時間制限のおかげでかろうじて人間を保っているmeijinです。先日会社でClaude Code Maxプランの支給を決定しました。https://zenn.dev/manalink_dev/articles/claude_code_max_plan_thinking_and_compare私は個人開発もかなり楽しんでいる人間なので、両方でAIコーディングを続けるには、アカウント分離が必須です。そこで本記事では、私が普段、本業の開発で使うClaudeアカウントと、個人開発で使うアカウントをどうやって分けているかを解説します。なお、公式で案内さ...
18日前

Claude Code Max(100ドル)を会社支給にするまでに考えたこと・試したことまとめ
マナリンク Tech Blogのフィード
2026年の年始から、Claude Code Maxプラン($100)をマナリンクの開発チーム全員に会社支給とすることにしました。当記事ではそこまでに至る経緯と、決定した理由、今後の展望などをまとめます。誰向けの記事なのかよくわからない内容になりそうなのですが、会社支給内容を決める側の立場の方小規模の開発組織(弊社のような)でAIコーディングを活用するにあたって、どういうスタンスを取っているかが気になる方色々な会社のAIコーディングへのスタンスを知って、今後のキャリアの参考にしたいエンジニアの方といった方々に読んでいただきたいです。 これまでの流れ(ざっくり)開発環...
1ヶ月前

『いつもの CSS』で書いた HTML メールが Gmail で崩れた話
マナリンク Tech Blogのフィード
こんにちは、Yukiです!今回は実務であったバグの話です。私は全く知らなかったので、共有目的で書いています! 発覚した背景弊社はオンライン家庭教師と生徒様とのマッチングプラットフォームを運営しております。新規の先生を紹介するために週に1度、HTMLメールを送信しております。そちらのメールに新規で項目を足すことになったため、リリース後の本番環境での動作確認をしていたところGmailで見たときのみ、メールのデザインが大きく崩れてしまっていることがわかりました。 起こっていたことデザインが崩れていた原因は、大きく分けて次の2つでした。Gmail でサポートされていない CSS...
2ヶ月前

AI駆動開発のお供にknipがステキな理由
マナリンク Tech Blogのフィード
この記事の目的Claude Codeでvibe codingをしていたときにknipを併用したら体験がとても良かったのでシェアknipを使っている人が一人でも増えたら嬉しいです。 knipとはTypescriptプロジェクト用のデッドコード検知ツール未使用のファイル/関数/exportをいい感じに削除してくれる未使用のcss assetsや不要なpackage.jsonのライブラリも整理してくれる(らしい)ts-pruneやunimportedの後継どちらもpublic archiveになっており、「knipを使え」とのアナウンスがでている。zer...
4ヶ月前

Mastra×RAG×構造化ストリーミングの開発事例 - 先生検索AIエージェントの詳細解説
マナリンク Tech Blogのフィード
先日、オンライン家庭教師マナリンクにて、「先生検索エージェントが先生を探してくれる機能」をリリースしました🎉まずは簡単なデモ動画をご覧ください⬇️※画面は開発時点のもの/検索結果は一例ですこの機能には以下のような特徴があります。AIのレスポンスが 1文字ずつ表示(ストリーミング) され、ChatGPTライクなUXを実現検索者が自然言語で入力した科目や学年などの条件を、AIが理解して先生を探す先生を探す条件には科目や学年などの数値化できるデータだけでなく、「コミュニケーションが苦手」といった非構造化データも含めて検索できる検索結果には順位や推薦文、先生の情報が表示されるカ...
9ヶ月前

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

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

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

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

弊社の「意識チョット低いアーキテクチャ」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...
1年前

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

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

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

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

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 ...
2年前

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

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

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

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