id:aerealです。Classi内でGoがどのような立ち位置にあるか、2025年現在の最新情報をまとめます。
リポジトリ概況
- 商用環境でエンドユーザへの機能提供に寄与するもの: 6
- 開発者向けツール: 3
- その他社内向けツール: 1
リポジトリ数は上記の通りです。
機能提供に寄与するものとは直接トラフィックを受けるものはもちろん、エンドユーザの求めを起点に生じるシステム間通信に現れるものも含まれます。
過去に開発者ブログで紹介したcron代替やコンテンツ管理システムなどが代表例です。
参考:
開発者向けツールとはDBスキーマの内製マイグレーションツールであったりGitHubの利用状況を収集するバッチやAmazon RDSの監査ログをエクスポートするツールなどです。
参考:
主な言語がGo *1 のリポジトリにコミットしたことのあるメンバーは総計22人で、内13人が10回以上コミット、内9人が100回以上コミットしています。
このメンバーは記事執筆時点でClassiのオーガニゼーションに所属している人物に限っておりbotや退職者等は除かれています。
考察
2022年時点で本番投入サービスは3つでしたが、現在は6つとなっています。また内部向けのシステムも含めると9つになりました。
参考:
Gitのコミット粒度はリポジトリや開発者によって大きく異なりますし、比較する指標としていささか難があります。
それでも100回以上コミットしているメンバーはコミットしたリポジトリに対する習熟度に限っても組織内平均以上はあるといってよいでしょう。
2年前時点で本番投入サービスを開発した経験のあるメンバーが5人だけだった頃を思うと浸透してきましたし、実際に習熟度も増した実感があります。
Goを採用する判断に筆者が関わっていないシステムもいくつかあります。
特にAWS LambdaのようなFaaSで動かすアプリケーションは小さくまとめやすいのでGoを選びやすいという背景もあるでしょう。
FaaSを活用していくというクラウドネイティブな判断をとれることと併せての普及だといえます。
既存のシステムをGoで置き換えるような事例はまだ存在せず、今後も特に見込まれていませんが、それでよいと筆者は考えています。
まず既存システムの置き換えのようなリスクの高い判断は避けられるに越したことはありません。
Classiの既存システムの大半はRuby on Railsで書かれており、それをGoで置き換えていくというのはそれぞれが得意とする分野があまり被っておらず筋が良さそうには思えません。
既存システムの機能を細分化し、一部をGoで置き換えるという判断はありえるし十分合理的です。
今後もRailsと分担していくことでしょう。
むすび
新しい技術や取り組みを導入したからには継続的な評価は欠かせず、また導入したよという情報を発信したからにはその後についても発信するのが望ましいと考え、今回筆をとりました。
今振り返ってもGoで書いたシステムを開発・運用していくという判断は挑戦的だったと思いますが、周囲の乗っかり精神に大いに助けられ今のところは上々といえるのではないでしょうか。
*1:GitHubのAPIでprimary languageがGoと判別されているものを指します