弁護士ドットコム株式会社 Creators’ blog

弁護士ドットコムがエンジニア・デザイナーのサービス開発事例やデザイン活動を発信する公式ブログです。

弁護士ドットコムサマーインターンシップ2023の狙いと技術要素

記事のタイトル画像 この記事は弁護士ドットコム Advent Calendar 2023の 5 日目の記事です。
昨日は @hosogaiさんの スプレッドシートとGoogle Apps Scriptでtextlintの辞書ファイルを生成するでした 。


クラウドサインのサーバーサイドエンジニア吉田です。

もう年末まであと 3 週間というところですが、2023 年の 8 月と 9 月には会社としてはじめて、 エンジニアを目指す学生向けに本格的なインターンシップを行いました。
開催期間は 1 週間ずつでたくさんの学生が参加してくれました。 今回の開催ではオフラインで、執務スペースの一画で行いました。

本記事では、インターンシップでの狙いとどのような技術要素を利用したかまとめました。

インターンシップで行ったこと

今回のインターンシップでは、架空のサービスの裏側を管理するシステム構築(いわゆる社内用の管理画面)を行いました。

また弁護士ドットコム社では、サーバーサイド・フロントエンドの職能を問わずどちらの開発も行うことがあるため、サーバーサイド・フロントエンドどちらの開発実装ができるようにしました。

今回の管理画面は、社内で利用しているものを利用せずベースは 1 から新規構築しています。

インターンシップの狙い

今回のインターンシップではWeb システム開発をどのように行っていくかを学んでもらうことを狙いとしていました。

また管理画面を構成する技術がどのようなものかを手を動かしながら体験することも
目標としていました。

最終的には、作成・表示・更新・削除の実装ができるようになり、基本的な CRUD が可能なシステムの実装まで体験して経験を持ち帰ってもらえればよいなと考えていました。

あえてやらなかったこと

Dockerを利用しての環境構築

環境構築は最初につまずくところです。
環境構築時につまづいたところを解決するスキルも重要ですが、今回は実際に動作する画面を作ってシステム開発の楽しさを知ってほしいという思いがあるため、docker-compose で環境が立ち上がるようにあらかじめ準備しておきました。

チーム開発

インターンシップでは開発以外にも、社内のエンジニアを呼んで勉強会を行いました。
そのため、実際に実装する時間としては 3 日間しかありません。
そこにチーム開発を入れ込むと本来の狙いであった CRUD が可能なシステムの実装が
おろそかになってしまうためチーム開発に関するコンテンツの導入は見送りました。

技術要素

  • コンテナ環境
    • Docker
  • サーバーサイド
    • Go 1.21.x (インターンシップ開催時の最新 ver)
  • サーバーサイドフレームワーク
  • フロントエンド

下記記事やGo Conference 2023 でスポンサーとして協賛しているとおり、クラウドサインでは Go を利用しているため サーバーサイドとしては Go を選定しました。 note.com

フレームワークは GinChiなどがありますが、社内での利用実績やドキュメントの追いやすさからecho v4 を選定しました。

フロントエンドでは、10 月に開かれたVue Fes Japan2023で篠田から発表があったとおりクラウドサインでは Vue を利用しているため Vue を採用しました。
今回は新規で開発をしたため、Vue3 をプロダクトより先に導入しました。 また Nuxt3 も利用しました。

管理画面を作成するうえでコンポーネントを組み合わせて構築すると一貫性があるため、
Vue Component Framework として Vuetify を採用しました。

インターンシップで工夫した点

タスク設計

Web 開発は今回がはじめてだったり、すでに Go や Vue の経験があったりとさまざまなメンバーが参加されると予想されていたため、基本の課題からステップアップできるようにタスク設計をしました。
一部はサンプルコードを用意しておきそこを改変すれば動くようにしていましたが、後半の課題では自分自身で設計や実装を考えて行う必要があるようにレベルを調整してタスク設計をしました。

メンターによるサポート

社員エンジニア何人かがメンターとしてインターンシップのサポートをしていました。
付きっきりで教えるというよりは質問やわからない部分があるときに呼んでくださいという形だったのですが、
メンターとコミュニケーションをとってタスクを進めてくれるひとがほとんどだったので良かったです。

Merge-Request(MR) によるコミュニケーション

今回はチーム開発を行いませんでした。 その代わりにチーム開発を上で大切なコミュニケーション という部分を実感してもらう必要があると考えました。 タスクの完了時には MR を出してもらい、社員エンジニアがレビューをしてやり取りしました。 これにより実際の開発の流れの一部の体験してもらうことができました。

まとめ

エンジニアを目指す学生向けのインターンシップを 8,9 月で開催しました。
インターンシップ終了後、参加した学生にアンケート協力していただいたところ、
インターンシップの内容やメンターのアドバイスなどでおおむね良い評価をいただいたので、学生にとって良い時間を過ごしていただけたのは良かったです。
参加した社員メンターも部署を越境して協力できた点や、学生が頑張ってる姿を見て自分も頑張らないとなと思った人がいたりと良い経験になりました。

来年度のインターンシップがあるかは現時点でお伝えできる情報はないのですが、
仮に来年度もインターンシップが開催された際には興味がある学生の方は
ぜひ参加いただきたいです。


弁護士ドットコム Advent Calendar 2023の明日の担当は@k-anzさんの「育休からの復職にあたって買ってよかったもの」です。お楽しみに!