Ruby on Railsの技術的負債の解消について話せます

エキスパート

氏名:開示前


■背景
プロジェクト加入当初、既存のコードが典型的な技術的負債となっていました。
使われていない機能、測定されていないテストカバレッジ、コード規約がなくばらついた実装、独自の実装パターン、各種監視がない、などの課題が山積しており、前任者は諦めてプロジェクトを降りるような状況でした。また、この状況においては新機能などの大きい開発をまともに進めることもできていませんでした。

そこで、技術的負債の解消を提案し、機能開発のスピードを高めるために負債の解消をすることになりました。

■話せること
1. 使われていない機能及び実行されていないコードを削除
 debride gemと本番環境のログを使い不要なコードを調査して、削除
2. 例外監視やログ環境の整備
 Sentryの導入、Railsのログの独自実装を廃止しRails標準を採用し可読性を向上
3. テストカバレッジの測定
 CircleCIとCodeClimateでの測定を導入
4. テストカバレッジの向上
 不足しているテストを追加。同時にテストの記述方法も改善
 最終的には94%まで向上
5. Gemのアップデート
 Dependabotを導入し、継続的にアップデートできる仕組みを整備。初期は大量のアップデートが必要だったので手動でまとめて対応
6. 設計の改善
 enumを使わず同様の機能を自前実装やクラス設計が良くない箇所の改善
7. Gemの削除
 メンテされなくなったGemをRails wayに移行し削除
8. DBスキーマの改善
 スキーマを変更し、DBのアンチパターンを改善
9. 独自実装パターンの廃止
 独自のレイヤーで実装していた処理をシンプルなモデルで実装
10. Ruby/Railsのアップグレード
 段階を経て、Ruby 2.6 -> 3.1、Rails 5.2 -> 7.0にアップグレード
11. 決済処理の改善
 StripeとAmazonPayで整合性が確保できずエラーになっていたケースを解消し、全体の処理の簡素化も実施
12. 管理画面の改善
 ActiveAdminを採用しているが、エラーで動作していないページなどを解決。また、より使いやすいように ActiveAdminのThemeを選定し、ArcticAdminを採用
13. コード規約を導入
 Rubocopを導入し、記述方法を統一。またPRで自動チェックし、負債となるコードが作られない体制を整備した

プロフィール 詳細を見る


氏名:開示前

エンジニア歴17年、Ruby経験7年のWEBエンジニアです。
Ruby on Railsに特化し、専業で業務をしております。

特長をまとめたWEBサイトがこちらにありますので、ぜひご一読ください。
https://murano-engineering.studio.site/

<概略>
Ruby on Rails開発。

・タスク・Pull Requestベースでの開発・実装(アジャイル、スクラム)
・新規プロダクトの初期開発
・検索パフォーマンスチューニング
・デプロイ自動化
・負債の見える化、解消する体制の構築
・コーディング規約の整備
・監視の整備
・テストの整備
・レガシー化したRailsアプリケーションの改善
・開発スピードの可視化と改善


職歴

フリーランス

  • 2016/11 - 現在

社名非公開

  • CTO 2019/4 - 2020/1

社名非公開

  • クライアントワーク事業部 2016/1 - 2016/10

社名非公開

  • ファームウェア開発部 2005/4 - 2016/1

このエキスパートのトピック

謝礼金額の目安

問い合わせ

取引の流れ


似ているトピック