dip
「なぜこの実装なのか」を言葉にできるまで   2週間のインターンで学んだ、動くコードのその先

「なぜこの実装なのか」を言葉にできるまで 2週間のインターンで学んだ、動くコードのその先

# 実践# インターンシップ
インターンシップ
2026/09/18公開2026/09/18更新

1.はじめに

こんにちは。中京大学工学部情報工学科の廣瀬悠月です。

私は2週間、ディップ株式会社のインターンシップに参加し、求人サービス「バイトル」のWebフロントエンド開発に携わりました。インターン期間中は、デザインシステムのコンポーネントの改修をはじめ、

検索一覧画面の表示切り替えやローディング表示、プロフィール編集機能の実装などさまざまな粒度のタスクを担当しました。

これまで行ってきた個人開発では、仕様を自分で決めて実装を進めることが多かった一方、実務では既存の設計、ユーザー体験、デザインシステム、ほかの機能への影響など、複数の観点を踏まえて意思決定する必要がありました。

この記事では、実務での開発を通じて学んだ、実装の背景を理解すること、自分の考えを言語化して相談すること、そしてチームでより良いプロダクトをつくることの面白さについて紹介します。

2.インターンで掲げた目標

今回のインターンでは、「自分にできることを考えて主体的に動き、周囲の意見や強みを引き出しながら、より良い方向へ物事を前に進められるエンジニア」に近づくことを目的にしました。  

そのための具体的なゴールとして、次の2つを設定しました。  

  

- 分からないことや、なぜその実装になっているのかを質問し、自分の言葉で説明できるようになる  

- コードレビューを通じて、エンジニアが実装時に重視している考え方や基準を明確にする  

そのためには、与えられたタスクを終わらせるだけではなく、「誰のどのような課題を解決するのか」「なぜこの実装が適切なのか」を理解し、必要に応じて周囲に相談・提案する必要があります。そこで、不明点を曖昧なまま進めず、調べた上で自分の考えを言葉にすることを意識しました。

3.取り組んだ内容

3-1.再利用されるコンポーネントを意識したTabの修正

インターンで最初に取り組んだのは、デザインシステムのTabコンポーネントからReact Routerへの依存を外す修正です。

デザインシステムは、複数の画面やチームで共通して利用されることを前提としたコンポーネント群です。しかし、今回対象となったTabコンポーネントはReact Routerに依存しており、利用する側の構成によっては、そのまま使いにくい状態でした。依存を外す方法としては、子要素を受け取る方法と、リンクコンポーネントを受け取る方法が候補にありました。どちらの方法にもメリットがありましたが、今回は既存コンポーネントとの一貫性を保つことを優先し、リンクコンポーネントを渡す方法を採用しました。

この修正によって、Tabは特定のルーティングライブラリに依存せず、ほかのチームでも利用しやすいコンポーネントになりました。

個人開発では、目の前の画面で正しく動くことを優先する場面が多く、「このコンポーネントを将来誰がどのように使うか」まで考える経験は多くありませんでした。しかし、デザインシステムのように共通で使われるものでは、現在の利用箇所だけでなく、既存の設計との整合性や再利用性まで意識する必要があります。

この経験から、共通コンポーネントの実装では、機能を追加・修正するだけでなく、後から利用する人が迷わず使える設計になっているかを考えることが重要だと学びました。

3-2.ナイトワーク表示切り替えから学んだ、UIの背景を考えること

続いて、検索一覧画面のナイトワーク表示切り替えに取り組みました。

検索条件設定画面ではトグル形式のUIが使われている一方で、今回担当した検索一覧画面では、ナイトワーク表示の切り替えにチップ形式が採用されていました。  同じ「ナイトワーク表示を切り替える」機能でありながら、なぜ画面によってUIが異なるのか疑問に思い、実装を進める前にデザイナーの方へ質問しました。  

その結果、スマートフォン版の検索一覧画面ではファーストビューに表示される情報量が多く、トグルを配置すると画面がさらに見づらくなってしまうことが分かりました。また、トグル形式では、現在ナイトワーク表示がオンなのかオフなのかを直感的に把握しづらいという課題もありました。  

こうした背景から、検索一覧画面では、選択状態をより分かりやすく伝えられるチップ形式が採用されていました。  

さらに、チップ形式では「選択されていること」をどのように伝えるかも重要でした。デザイナーの方とのやり取りを通じて、ラベルやアイコンにも、ユーザーが現在の状態を迷わず理解するための意図があると気づきました。また、色の変化だけに頼るのではなく、ラベルとチェックアイコンを組み合わせることで、選択状態がより伝わりやすくなるよう工夫がされていました。

この経験を通じて、UIは見た目だけで決まるものではなく、画面全体の情報量、ユーザーが状態を理解するまでの負担、デザインシステムとの一貫性などを踏まえて設計されていると実感しました。

こうしたUI上の意図を理解した上で、実装面では表示切り替えに伴う求人一覧の取得処理も見直しました。  

選択するたびに求人一覧を再取得すれば、ユーザーは操作の結果をすぐに確認できます。一方で、選択の途中で何度も通信が発生すると、システムへの負荷が増えてしまいます。  

そこで、最後に選択した条件をもとに求人一覧を取得する設計にしました。ユーザーが選択状態を把握しやすいことと、不要な通信を抑えることの両方を踏まえて判断する必要があると学びました。  

この経験を通じて、実装時には「どちらが正しいか」だけではなく、ユーザー体験とシステムへの影響をどのように両立させるかを考えることが重要だと実感しました。  

3-3.レビューを通じて考えた、実装の「その先」

インターン前半は、既存コードやデータの流れを十分に理解しないまま実装を始めてしまい、想定以上に時間がかかる場面がありました。

特に、ナイトワーク表示切り替えやマスタデータ取得では、「どのAPIを使うか」「どこでデータを管理するか」「既存機能とどのように責務を分けるか」といった点を理解できていないと、実装方針そのものが定まりません。

レビューでは、コードの書き方だけでなく、「この処理は誰にどのような価値を届けるのか」「ほかの画面でも利用される可能性はあるか」「既存実装との一貫性は保たれているか」といった観点でフィードバックをいただきました。例えばローディング表示では、当初は特定の画面で使う表示として考えていました。しかしレビューを通じて、共通で利用できるスケルトン表示として実装する方針になりました。これにより、ユーザーに「現在、情報を取得している途中である」ことを分かりやすく伝えられるだけでなく、今後の機能でも利用しやすい形にできました。

さらに、ブラウザバック時に以前見ていた位置へ戻る対応も行いました。画面を表示する瞬間だけではなく、「一覧を見る」「詳細を見る」「一覧へ戻る」という一連の利用体験まで考えることが、使いやすさにつながると学びました。

3-4.質問は、思考を止めることではなかった

インターンを通じて特に変化したのは、質問に対する考え方です。

最初はちょっとした疑問を聞くことにもためらいがありました。「自分でもう少し調べるべきではないか」「忙しい中で質問してよいのだろうか」と考え、一人で抱え込むことがありました。

しかし、社員の方々との相談やレビューを通じて、質問は答えを教えてもらうためだけのものではなく、認識のずれを早期に見つけるための対話なのだと気づきました。

特に後半は、「分かりません」とだけ伝えるのではなく、「自分は現在このように理解しており、この方針を考えています。ただ、この部分に確信がありません」と、自分の考えを添えて相談するようにしました。

終盤で担当した職務経験入力シート/ドロワーの実装では、不自然な挙動が起きた際に、コードを確認して処理の流れを整理し、原因を自分の言葉で説明できました。その結果、周囲と認識を合わせながら、適切な対応方針を決めることができました。

質問することは、自分で考えることをやめる行為ではありません。むしろ、自分で考えた内容をより確かなものにし、より良い実装へ近づくための行為だと学びました。

4.結果

2週間を通じて、当初掲げた「なぜその実装なのかを質問し、自分の言葉で説明する」という目標には、一定程度到達できたと感じています。

インターン前半は、既存コードやデータの流れを十分に理解しないまま実装を進め、レビューを受けてから考え直す場面もありました。一方で後半は、実装前に現状・対応方針・懸念点を整理し、自分なりの考えを持った上で相談することを意識できるようになりました。

また、レビューを通じて、コードの正しさだけでなく、ユーザー体験、既存実装との一貫性、再利用性など、複数の観点から実装を考える重要性を学びました。  

さらに、自分が実装に関わったナイトワーク表示切り替えとローディング表示がリリースされ、実際にサービスで利用されるところまで経験できたことは、大きな達成感につながりました。  

5.おわりに

今回の2週間のインターンシップを通して、私は「実装すること」と「より良い実装を考えること」は異なるものだと学びました。

実装の背景を理解し、自分の考えを言葉にして周囲とすり合わせることで、一人では見つけられなかった選択肢や、より良い方針にたどり着けることを実感しました。  

また、社員の方との1on1やランチ、輪読会では、技術だけでなく仕事への向き合い方やキャリアについても、多くの話を伺いました。その中で私は、特定の技術領域だけに閉じず、デザイナーや企画職を含む周囲の専門性をつなぎながら、チームでより良いプロダクトをつくれるエンジニアになりたいと考えるようになりました。

今後は、チーム開発のハッカソンなどに参加し、今回学んだ「実装の背景を理解すること」「自分の考えを言葉にすること」「早い段階で周囲を巻き込むこと」を実践していきます。

そして将来は、自分にできることを考えて主体的に動きながら、周囲の意見や強みを引き出し、より良い方向へ物事を進められるエンジニアを目指します。

最後に、2週間という短い期間にもかかわらず、丁寧にレビューや相談に乗ってくださった社員・メンターの皆さまに、心より感謝申し上げます。  

このインターンで得た学びをこれからの開発やチーム活動に活かし、少しずつ成長した姿をお見せできるよう努めていきます。本当にありがとうございました。

執筆者

インターンシップ

インターンシップ

インターンシップ参加者による記事一覧です。