数字で見るプロダクト開発環境
ごきげんよう🌞あっきー(@kuronekopunk)です。
建設業者さんのマッチングサービス『ツクリンク』を運営していて、エンジニアを積極採用中です。
採用情報って使ってる言語等のバージョンくらいで詳細な情報が少ないのでもっと深堀りしてプロダクトの開発環境やコードについて紹介します。
👶プロダクトは約9歳
2013/5にβ版をリリースしプロダクトは後数ヶ月で9歳になります🎂(2021/6計算)
最初はCakePHPで作られていて、2014/7にRuby on Railsへ載せ替えを行っい2015/1にRails版がリリースされました。
なのでRailsになってからは約7年、載せ替えには5ヶ月ほどかかったようです。
Railsへの載せ替えからコードがGit管理になり、最初のコミットは2014/7/4に「さいしょ」というメッセージでした🔰
🔰ほぼ最新バージョンを利用
# サーバーサイド
Ruby => 3.0.3 (現在の最新)
Rails => 6.1.4.4 (現在の最新)
# インフラ、その他
PostgreSQL => 10系 (Herokuで利用可能な最新は12)
Elasticsearch => 7.2.0 (最新は7.13.2)
Redis => 6.0.5 (最新は6.2.4)
Heroku stack => heroku-20 (現在の最新)
# JS系
node => 16.13.1 (最新は16.13.2)
React => 16.14.0 (最新は17.0.2)
# 2022/02/09更新
Ruby, Railsに関してはリリースが出たら1ヶ月くらいでアップデートを行っています。
Ruby3に関しては使用しているGemがRuby3対応しておらずアップデートまで時間がかかりましたが、最近リリースすることが出来ました🎉
PGやElasticsearchなどはHerokuのアドオンを使用しています。今回調べていて判明したので早速バージョンアップをしようと思います💪
🤖一番行数の多いrbファイルは568行
./app 配下のアプリケーションコード
# constrollers配下の .rb ファイル数
$ find ./app/controllers -name "*.rb" | wc -l
=> 105
# models配下の .rb ファイル数
$ find ./app/models -name "*.rb" | wc -l
=> 182
# 行数
$ find ./app -name "*.rb" | xargs wc -l | sort -n | tail -n 2
=> 568 # 一番多いファイル
=> 27472 total
constrollers, models配下だとconcernも含まれるため純粋なコントローラー数、モデル数ではないですがこうなりました。
行数が一番多いファイルは決済関連のモデルで568行でした。
👷テストカバレッジは87%
安心安全に機能追加、改修ができるよう、model, controller specとCapybaraを使ったE2Eを厚めに書いています。
基本的に新しいコードにはテストを書いていて、1回限りのバッチや単純な機能など書く必要のないものにテストが無いだけでずっと87%前後をキープしています。
テストの実行時間は4~5分
CircleCIでテストを回していて4,5分で終わります⌚
昔は20分くらいかかっていたのですが、並列化などの高速化を行い今の時間になりました。
✨リリースにかかる時間は20分
GitHubのPRをリリースブランチに混ぜ、CircleCIでテストが走り、Herokuに自動デプロイされます。
リリースが完了し最新のブランチが反映されるまで20分かかっていました。
テストの実行も含めこのあたり、もっと高速化したいポイントです。
🚀レスポンス速度平均は 251 ms
Scoutで計測しているResponse Timeは直近で251msでした。
そこまで早いわけではないですがRailsアプリなら良い方かなというイメージ。
GoogleのCoreWebVitals対応などでクエリやフロントエンドの読み込み高速化にも力を入れています。その結果、サーチコンソールに出るCWVの状態も概ね良好を保てています。
👌さいごに
あまり表に出ない数字も含めまとめてみました。
こうやって見るとなんだかしっかりした開発体制に見えたりするんですが、まだまだ足りない点や改善点、自分たちが気づけていないポイントも多くあります。
転職意欲が無く、サービスや開発環境の改善の話を聞いてみたいだけでも構いませんので良かったら雑談しませんか?
もし少しでも興味があればYOUTRUSTでご連絡ください🙌
ツクリンク株式会社では一緒にサービスを良くしていく仲間を募集しています!まずはカジュアルにお話しましょう🙌
読んでくれてありがとうございます!少しでもいいなと思ったら「スキ❤️」してもらえると飛んで喜びます!シェアしてもらったらもっと嬉しいです!