No.22

葬儀の複数社相見積もりサービス開発

期間
2022/4/1~現在継続 - (4年2ヶ月以上)
クライアント
高齢社会向けSaaS提供企業 (東証プライム市場上場)
所属
フリーランス 株式会社CHIYUU

全般

プロジェクト名
葬儀の複数社相見積もりサービス開発
プロジェクト概要
PdMのもと、既存toC向けサービスの新規機能開発やバグ修正、リファクタリングを実施。
クライアント
高齢社会向けSaaS提供企業(東証プライム市場上場)
所属
フリーランス
期間
2022/4/1~2024/4/30(2年1ヶ月)
チーム人数
4人
担当工程
詳細設計 実装 単体テスト 結合テスト 保守・運用

技術スタック

開発手法
アジャイル開発(スクラム) ペアプログラミング
アーキテクチャ
MVC

FWの特性を活かしつつ、SOLID原則に則った疎結合・高凝集なクラス設計とし、単体テストをしやすくした

Frontend
HTML5/CSS3 JavaScript jQuery bootstrap
Backend
Ruby Ruby on Rails
Infra
Docker Docker Compose AWS
Middleware
Nginx MySQL Redis
DevOps
GitHub Actions Sentry
gem
authtrail auto_strip_attributes blazer carrierwave ckeditor cocoon counter_culture devise devise_masquerade diffy draper enumerize exception_notification factory_bot_rails jbuilder jsbundling-rails cssbundling-rails kaminari kintone_rb paper_trail propshaft pundit ransack sidekiq sentry bullet parallel_tests capybara selenium-webdriver annotate better_errors capistrano foreman letter_opener_web nokogiri rubocop newrelic_rpm
npm
autosize jquery sass select2 esbuild cocoon-js-vanilla cssnano PostCSS
Other
esbuild

やったこと

機能開発
画面構成図をもとに詳細設計、DB設計から新規開発、改修、バグ修正、テスト作成までおこなう。
Rubyアップデート
- 2.5から段階を経て3.1までアップデートを行った。 - ユニットテストやE2Eテストの作成、各種ライブラリのアップデート、一部ライブラリの更新で動かなくなるコア機能があったため部分的にモンキーパッチを適用するなどした。
Railsアップデート
- 5系->6系->7系へとアップデートを実施。 - リグレッションテストの追加など対応。
CIセットアップ
CircleCI から Github Actions への移行対応。
MySQLアップデート
5.7から8へアップデート。deprecatedとなった機能を使っていた箇所の修正対応など影響範囲を調査し対応。
テスト高速化
CIでのテストの実行時間が長かったため、並列化や不要なレコード作成をなくすことで対応。
jQueryアップデート
1.12から3.6にアップデート。改修範囲が広かったためjQuery Migrateを使用し、段階的にmigrateを行った。
フロントエンド環境整備
- gemでjsを使用できるようにしていたが、esbuildやpropshaft、jsbundling-railsなどを導入し、nodeパッケージを使用するようにした。 - browserslistを参考にベンダープレフィックス付与やトランスパイルなどを行うようにも設定。 - フロントエンドのrepoにlinterがなかったためESlintやPrettier、Stylelintなど導入。
WebP変換対応
- 既存のpng画像をWebPに変換する対応を行った。今後アップロードされる画像もWebPに自動変換されるようにした。 - WebPに対応していないブラウザもサポートする必要があったため、フォールバックも対応。
保守業務
- sentryアラートで検出したバグ修正や、SQLチューニングなどのパフォーマンス改善、改修依頼の要望に応じて対応。 - Docker環境の設計、構築 - GitHub ActionsでのCI/CD構築、修正 - コードレビュー及び品質チェック