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で自動チェックし、負債となるコードが作られない体制を整備した
プロフィール 詳細を見る
職歴
フリーランス
- 2016/11 - 現在
社名非公開
- CTO 2019/4 - 2020/1
社名非公開
- クライアントワーク事業部 2016/1 - 2016/10
社名非公開
- ファームウェア開発部 2005/4 - 2016/1
このエキスパートのトピック
-
ECサイトやWEBサービスの売上向上について話せます
問い合わせ■背景 ECサイトやWEBサービスの売上を向上する施策の検討・分析・実施を行っていました。 主な実績は以下のとおりです。 ・売上40%アップ、6ヶ月間(会議室シェアリングサービス) ・CV率50%アップ、4ヶ月間(研究設備シェアリングサービス) ・サブスクサービス立ち上げ〜1年運用、解約率17%(オンライン英会話) ■話せること ECサイトやWEBサービスの売上アップ、コンバージョン率アップの施策について。 グロースハックのAARRRモデルに沿って、分析する方法、改善の施策、PDCAサイクルの具体的な運用方法。 データドリブンで定量的に施策を進める手法。
-
運用監視ツール等の検討、導入について話せます
問い合わせ■背景 7年ほどで20以上のRuby on RailsのWeb開発に携わっています。 開発内容としては、IoT見守りサービス、アルバイト求人サイト、研究設備シェアリングサービス、近距離デリバリー特化ECサイト、オンライン英会話、家具デザインコミュニティサイト、Web入試出願サイト、農産物ECプラットホーム 、会議室シェアリングサービス、病院の検索・クチコミサイト、契約書AIサービス、などがあります。 ■話せること ・運用監視ツールに関する経験 フリーランスとしてバックエンドの開発に携わっております。運用監視の検討・導入を4回程度実施したことがあります。 インフラの経験は、AWSとAzure, Herokuがあります。 ・運用監視ツールの導入の関わり方 運用監視ツールの比較・検討(用途やパフォーマンス、長期的な保守性、予算)を行い、承認後導入と運用まで行っております。 ・具体的な経験内容 サーバー監視、外形監視、例外監視、パフォーマンス監視、DB監視など経験があります。 ログ収集についてもご提案ができます。 ・導入したことのある運用監視ツール New Relic Mackerel Datadog AWS Cloudwatch Scout APM Sentry Papertrail Zabbix
-
Web系開発チームの運営状態、リスクについて話せます
問い合わせ■背景 7年ほどで20以上のRuby on RailsのWeb開発に携わっています。 また、ソフトウェア開発は17年の経験があります。 開発内容としては、IoT見守りサービス、アルバイト求人サイト、研究設備シェアリングサービス、近距離デリバリー特化ECサイト、オンライン英会話、家具デザインコミュニティサイト、Web入試出願サイト、農産物ECプラットホーム 、会議室シェアリングサービス、病院の検索・クチコミサイト、契約書AIサービス、などがあります。 ■話せること 現状の開発チームの体制やツール、CI/CDの導入などの情報から、改善点やリスクについてお話できます。 また、経営戦略に則した開発及びチームのロードマップ策定に協力させて頂きます。