はじめに
こんにちは、ラクスルに夏のインターンとして参加した松原です! HackWeekはラクスルグループ内で行われているハッカソンで、毎年1週間程度業務を止めて開催されます。私は今回のHackWeekにインターン生として参加しました。チームメンバーは同じインターン生4人に対して、メンターが2人も付くという豪華な布陣でした。
バージョン管理ツール EoL Tracker
私の所属していたチームでは「EoL Tracker」というWebアプリを作成しました。EoL Trackerは、社内のプロジェクトで使われているプログラミング言語やライブラリのバージョン情報に対して、EoL (End of Life) 情報を表示するというツールです。
<ページの説明>
- Team:プロジェクトのチーム名
- Repository Name:githubのrepository名(リンク付き)
- Software:各リポジトリの技術スタック
- Current Version:Softwareの現在のバージョン
- EoL:SoftwareのEnd of Life
<機能>
新たなTeam・Repository Nameを手動で追加 Team, Softwareで絞り込み EoLが過ぎているものに対して、赤色で警告
<解決したこと>
今までのEoL Trackerではリポジトリの技術スタックごとに現在のバージョンとEoL情報を手動で入力していましたが、今回作成したEoL Trackerはすべての情報を自動で入力することができます!なんて画期的なんだ......。これにより、エンジニアはより効率的にバージョン管理を行うことができる!
EoL Trackerの詳細
EoL Trackerのダイアグラムは以下のようになっています。
- RaksulのGithubリポジトリからAPIを叩いて技術スタックと現在のバージョンを取得し、Databaseに登録。
- 1で取得した情報からendoflife.dataという技術スタックのEnd of Life情報が登録されているWeb サイトからEnd of Lifeを取得し、Databaseに登録。
- 1、 2で取得した情報をRuby on Railsを用いて表示。
<泣く泣く実装できなかった追加機能>
今回のHackWeekで実装できなかった機能を紹介します。
- Slackへの自動通知
- End of Lifeや技術スタックに脆弱性が見つかった際に、EoL Trackerから自動で通知する機能。
- タスクの定期実行
- CRONを用いてタスクを定期実行する機能。
- サポートする技術スタックの拡張
- 社内で用いられている主要な技術スタック以外にも対応させる。
- アップデート計画の管理
- アップデートを必要とする技術スタックについて、各チームでのアップデート計画を管理する機能。
HackWeekでの収穫
今回のHackWeekを通して、技術力とチーム開発能力がぐんっと伸びたと感じています。
技術力について、、、
作成したEoL TrackerではRuby on Railsを使用しましたが、私は経験のない言語だったため新たな挑戦でした。チームメンバー全員がRuby自体を触ったことがありませんでしたが、メンターの方々に補助していただき、なんとか形になるものを作ることができました。Ruby on Railsには様々な機能が用意されていて、かなり勉強のしがいがあるフレームワークだな、と感じました。(メタ関数は黒魔術......)
チーム開発能力について、、、
今回のHackWeekを通して、自分の意見を伝えることと相手の意見を正しくくみ取り、解決案を考えるということを意識しました。初日ではチームでの方針や役割分担を考える際に、あまり自分の意見を伝えるということができず、あまり主体性を持ってプロジェクトに参加できていませんでした。しかし、このままではだめだと感じ、2日目からは自分から行動し、積極的にチームメンバーとコミュニケーションを取るように心がけました。相手の様子が分かりづらくなるリモートワークが増えている中、こういった積極的な行動がより求められていると感じました。
来年の夏インターン参加者にむけて
HackWeekではただのハッカソンと違い、メンターとの距離が近いため技術的なことだけでなく、実際に働くイメージがわいてきます。そのため、とても濃密な夏インターンになることは間違いありません!もし、迷っている方がいたら間違いなく参加したほうが良いです!
まとめ
夏のインターン生としてHackWeek2023に参加し、技術的なことだけでなく、コミュニケーション能力やチーム開発をする際の心得を習得することができました。この学びを今後の開発人生に活かしていこうと思います! 最後に、素敵な夏のインターンをサポートしていただいた皆様、丁寧かつ熱心なサポートをしていただいたメンター、共に走り切ったメンバーに感謝します。