自分がエンジニアバイトをしているところでは週1回Rails勉強会をしています。今回はそのやったところのまとめを残しておきます。
参考書:現場で使える Ruby on Rails 5速習実践ガイド
複雑になっていくアプリケーション
機能を開発していくと、どんどんコードの量が増えて複雑になっていきます。すると、ある機能を作っているとき、同じような処理をしているロジックが既に存在している場合があります。このとき手早く実装するためにロジックをコピペしてしまい、同じ処理が複数箇所に存在してしまうことになります。また複数人と開発していると開発者が気づかないうちに同じ処理のコードを新たに作成していたりします。
このようなことがあると変更が起きた時複数箇所直す必要があり、時間が多くかかってしまったり、片方のロジックは直しても、もう片方は忘れたりしてしまうこともあります。さらに似たコードがそこかしこに点在すると、コード全体が読みづらくなります。このような重複問題が起きると新たに機能を追加する時やバグの修正に時間が多くかかってしまう原因になります。
これらの問題を解決する手段としてコードの共通化を行っていく必要があります。しかしただコードを共通化すればいいのではありません。似ているコードの共通点、相違点を分析して、適切な共通化を計らないで重複したを避けようと強引に共通化を行った結果、基本となる設計を壊してしまい将来の機能拡張に支障が出てしまうことになります。