🎈

シェルフィーのサーバーサイドKotlin News

こんにちは!シェルフィーのLennonです。
前回のアナウンスから8ヶ月ほど経ち、サーバーサイドKotlinの導入も着実に一歩ずつ歩みを進めてきました。
☝️
今回は、この8ヶ月で達成したことを書き記しておこうと思います。

サーバーサイドKotlinを推進しはじめてやったこと

  • 新しい機能はKotlinでつくる
    • Kotlinを扱える人がSRE以外ほぼ全員になった👏
  • Kotlinオンボーディング
    • 最初はペアプロみたいに実施、その後レビューだけするように
    • ドキュメンテーションの整備
 
理想は今Pythonで書かれている機能からKotlinで書かれている機能の比率が上がることですが、結果としては分母も同じ数だけ増えることとなり、比率はステイという状況です。

現時点での学びと感想

  • 全体的な結果としては70点
    • 予想してた通りには進められているので、可もなく不可もなし!
    • ただ、振り返るともう少し初速を出せたらよかったなと思う
    • 欲を言うと、何人かで既存を置き換えるってことができたらよかった
  • 技術検証が大変だった。
  • メンバーのキャッチアップはスムーズな印象だった。JavaベースというKotlinの言語特性が大きそう。
 
3月末ほどに車両届機能のアップデートをリリースしたのですが、小さなAPIだったので複雑なこともなく順調にリリースできました。
一方で今回はPDFの表示や一括ダウンロードなど、他に関係のある機能が多く、そのたびに技術検証をする必要がありました。自動化ツールを入れてみたり、色々な実装方法を試してました。
その結果、4月に始まった施工体系図機能のリプレイスは10月にリリースと丸半年かかりました。
時間はかかったものの、今後開発する人はすごく楽になったんじゃないかなと自負しています。 今のGreenfile.work上でできることがKotlinに置き換えることでできなくなるようなことはないんじゃないかと思います。
 
キャッチアップについては私よりも巻き込まれてくれたメンバー側に聞くのが良いと思い、2人に聞いてみました。
🐻
@taro
全体的に楽になった部分は多いと思います。
  • 静的型付け言語なので「他人が書いたコード」が読みやすくなったし、書きやすくなった。
  • Kotlinという言語自体が書きやすいなと思った。
    • 推測しやすい。
    • Javaベースで情報検索性が高いから、情報にもアクセスしやすい
  • オブジェクト指向で単一責任でレイヤーが別れた設計が入ったことで、長いコードが少なくなった
  • 明確に設計という役割が入ったことによって、正しくコードを書けているという技術的な経験も積むことができた
  • コードを書くときの基準ができたので、どうやって書けば良いかがわかるようになったし、どういうのを目指しているかも分かるようになった。
    • お互いに議論するときも、基準に基づいて建設的な議論ができるようになった。
  • テストコードを書くようになったから、修正が楽になりました。
  • のびしろは、決まったことをトップダウン的に複数人に下ろしていく仕組みがなさそうなこと
    • レノンさんがレビューを細かくやってくれているんだけど、コメントが修正の中に収まってしまっていて、毎回同じことを言ってるんじゃないだろうか?と思った。
🎮
@adachi
  • 今まで動的型付け言語だったこともあって、型安全になった。
    • 特にPythonではランタイムエラーが起こっていて、プログラムを動かしてみないとわからないエラーがちょこちょこあったので、静的型付け言語になって安心感が増えた
  • レノンさんが設計してくれて、書き方やコーディングの規約を作ってくれたので読みやすく、メンテしやすいコードが多くなった。
  • これまで動的型付け言語を使ってたので、学習コストはある程度丁寧に見込んだほうが良さそう。
    • そうしないと、新たな技術的負債の種にはなってしまうので…
  • Kotlin自体は書き方がガラッと変わることを除けば、とっつきやすい言語だと感じた。
    • Javaベースにも関わらず、モダンな書き方ができる。これがKotlinのとっつきやすさだと思った。
    • 書き方については、僕はレノンさんとペアプロしてたからとてもやりやすかった。
    • 一方で、一人で開発するとなった場合はレノンさんの意図からはずれたコードを書いちゃうだろうなと思う。もちろんレビューはしてくれてるけど、それはレノンさん一人に負荷がかかるのでいずれは避けていきたいなと。

今後の展望

ひとまず大きくつくりたいものが作れていなかった施工体系図機能のリリースに、新機能のKotlin推進と、一区切りついてよかったと思います。
今後は日々の開発の中でKotlinに少しずつ置き換えていきたいと思います。
 
以上、また一つ節目を迎えたときにはこうして振り返れるといいですね。
もしご興味をお持ちの方や、「今絶賛頑張ってます」という方がいたらぜひお話しましょう。それでは!

シェルフィーでは全方位で積極的に採用をしています!
「コンテック(Con-tech)って何?」「面白い?」「働き方は?」といった気になるご質問すべてに正直にお答えいたします。
ぜひ一度お話しましょう!下記からご連絡ください◎