みなさん、枝豆が大豆ってご存じでしたか?
今日の豆知識です。古関です。
昨年度からグリニッジでは、品質改善に取り組んでいます。
その過程の中で、なかなか取り組めていなかったリファクタリングも
コードの修正と一緒に行っています!
リファクタリングをする目的
保守性の向上
コードをより理解しやすく、変更しやすくすることで、保守性を向上させます。読みやすいコードは、バグを見つけやすく修正しやすくなります。
柔軟性の向上
コードを柔軟にし、将来の変更や機能の追加に対応できるようにします。柔軟性があるコードは、要件の変更や新しい機能の追加に対して素早く対応できます。
効率の向上
コードを効率的にすることで、パフォーマンスが向上し、リソースの効率的な利用が可能になります。また、冗長な処理や無駄なコードを削除することで、実行時間やメモリ使用量を削減できます。
信頼性の向上
コードの品質を向上させ、バグの発生を減らすことで、信頼性を高めます。信頼性の高いコードは、安定した動作を提供し、ユーザーの満足度を向上させます
可読性の向上
コードをより読みやすくすることで、他の開発者やチームメンバーが理解しやすくなります。可読性が高いコードは、コラボレーションやチームワークを促進し、コミュニケーションコストを低減します。
実際の取り組み
テストやカスタマイズの対応により、一部のユーザーのみ処理をわけたい事があります。
リファクタリング前は下記のように、テストアカウント情報を直接コードに埋め込んでいました。
// リファクタリング前のコード
if (user.equals("test_user1") || user.equals("test_user2")) {
テスターの処理内容
} else {
他ユーザーの処理内容
}
リファクタリングでは、下記のように変更しました。
// 下記コードをModelに記述
public boolean isTestUser() {
return user.equals("test_user1") || user.equals("test_user2") ;
}
// テストユーザーで分岐したい処理
if (model.isTestUser()) {
テスターの処理内容
} else {
他ユーザーの処理内容
}
変更前はユーザーごとに分岐させたい処理が複数存在する場合に、
新しいユーザー名をそれぞれに追記する作業が発生しました。
変更後では、Modelの1カ所に追加するだけで良くなりました!
最後に
レビューとしては、分かりやすくなったとレビューをいただきました!
他にもっといい書き方や、柔軟性のあるコードをかけるように、頑張りたいと思います!