こんにちは。プロダクトエンジニアリング部の伊東です。 エンジニアにとって開発者体験って大事ですよね! 単にプロダクトに必要な機能開発だけをしていたら開発体験は自然と悪くなってしまいがちです。😭 例えば、技術的負債が溜まって改修コストが高くなったり、関連ライブラリのバージョンアップを怠ってレガシーな環境になっていたり。。 私が所属するフォトチームでは、システムの保守や機能開発などをしながら、積極的に技術的負債の解消や新しい技術の導入も試みています! 本記事では、最近フォトチーム(リード1名、エンジニア4名)で行っている技術的負債の解消や、新しい技術やツールの導入についてご紹介させていただきます!✋️
技術負債の解消
1. RubyとRailsのバージョンアップ
現在、フォトのサーバーサイドのバージョンアップが進行中です。
Rubyは3.1系、Railsは6.1系でしたが、最新バージョン(Rubyは3.3系、Railsは7.2系)を目指してバージョンアップ中です。
最近はRails8に関する発表がされるなど、進化が早いなあと感じる昨今ですが、なるべく常に最新に追従できるような体制にしていきたいです。
Rails7.1では、ActiveRecord::Base.normalizes
によるモデルの属性の正規化など便利な機能もあるので利用していきたいです。☕️
2. 古いシステムの移行
フォトのプロダクトは歴史的経緯によって2つのRailsアプリが動いています。 2つに分かれていると、コードの重複など不都合があるので、徐々に1つにまとめるように動いております。 最近、移行するための基盤づくりが完成しました。今後、機能単位で移植していくことができそうです! 不要なコンテキストスイッチを減らして、コードの凝集性を高めて、開発効率をあげていきたいです。☘️
3. デプロイフローの改善
フォトチームは隔週で、モブプロをリモートで実施しています。 その中での成果の1つですが、普段から行っているデプロイの流れを簡略化できました。 デプロイ作業は日々何度も行うことなので、簡略化されるととても気軽になって嬉しいです。 AWSのCodeBuidとCodePipelineでデプロイを行っていますが、gitで所定のタグをつければデプロイができるようになりました。🚀 (今までは、デプロイまで何ステップか必要でした)
4. その他
こちらもモブプロの中で行っているものですが、不要なリモートブランチの削除、不要なAWSのリソース削除なども行っています。 目下、エラー通知の整理などを行っており、なるべく不要な通知を削除し、本当に必要な通知だけにし、すぐに問題に気づけるように頑張っています!
新しい技術・ツールの導入
1. GitHub Copilot
こちらは去年からですが、希望者はVscodeでCopilotをつかえます! Copilotのコード補完はすごく便利なので、かなりコーディングの効率があがっていると感じます。 AIの分野は進化が早いので、Copilotの進化に期待です。✨️
2. Tailwind CSS
新規で作成している画面で、お試しでTailwind CSSを導入してみました。 こういったCSSのフレームワークは流行り廃りがありますが、知名度の高さや使い勝手的に結構良いかなと思っています。 今後、利用を進めていく中でわかった知見があれば共有したいです!🌿
3. RailsのHotwire
HotwireはTurbo、Stimulus、Strada(現在はHotwire Nativeに名称が変更されていました)の3つの技術から構成されていますが、 今回導入をしてみたのは、TurboとStimulusです。 こちらも、一部画面のドロップダウンメニューなどで利用してみたのみで、まだ経験値が足りていないので、今回これら技術の良さについて語れるほどのことがないのですが、今後利用をすすめていき、既存のフロントエンド技術(ReactやVueなど)などとの違いや良さについて理解していきたいです。✍️
おわりに
最近フォトチームで行っている開発者体験の改善への取り組みを紹介しました! これらの取り組みを通して、さらに開発効率を上げて、お客様により早く良い物を提供できるようにがんばりたいです。 そして、会社の新しいバリューであるSpeed Drivenを体現していきたいです。
話は変わりますが、Kaigi on Rails 2024 に Gold Sponsorになりました。🥇こういった技術系カンファレンスに貢献できることはとても嬉しく思います。 tech.unifa-e.com 私達フォトチームからも当日ブースに参加予定です!よろしくお願いします。
--
ユニファでは新たな仲間を積極採用中です。
詳細についてはこちらからご確認ください。