良いコード/悪いコードで学ぶ設計入門第7章を読んで|気付きや今後参考にしたいことなどをまとめてみました

はじめに

良いコード/悪いコードで学ぶ設計入門第7章 ネストを解消する構造化技法を読んで、

8年間現場で設計をしたり、設計に関する勉強会への参加や技術書を読んできた自分の観点で、

特に重要だと感じたポイント、気付き、今後参考にしていくべきだと感じたことをまとめてみました。

良いコード/悪いコードで学ぶ設計入門を読んでのまとめ記事も作ってみたので

こちらも是非みてください!!

良いコード/悪いコードで学ぶ設計入門を読んでみて(まとめ記事)|気付きと現場で取り入れたいことについて

 

良いコード/悪いコードで学ぶ設計入門第7章を読んでの気付きなど

7章では配列やリストを取り扱う際の注意点について

良いコードと悪いコードを例に解説してある章でした。

 

if文でネストしたくなったら早期breakと早期continue

配列やリストをループして処理する際、

〇〇条件に当てはまって、△△条件に当てはまって・・・

そのとき初めて処理するなどが書きたい場合は、

 

早期returnと同じく早期breakや早期continueで条件にあてはまらなかったら

すぐ次の要素の処理とするとコードの見通しが良くなったり、

if文のネストを防げるという内容が記載されていました。

 

早期breakや早期continueについては今すぐにでも取り入れられると思います。

これで見通しが良くなりそうなコードは現場でよく見ます、、、、

 

早期returnについてはこちらにもまとめているので興味があれば見てください。

良いコード/悪いコードで学ぶ設計入門第6章を読んで|気付きや今後参考にしたいことなどをまとめてみました

 

 

また、本のコラムに記載されていましたが、

コレクションを取り扱うライブラリがJavaにあるのにわざわざ車輪の再発明をしている例を挙げて、

勉強以外で車輪の再発明はしないように、

利用するフレームワークやライブラリについては注意深くドキュメントを読んで、

無駄な開発工数をかけて用意されているライブラリより品質が落ちるものを作らないように注意しましょう

ということが書かれていました。

 

ドキュメントをすべて把握するのは難しいですが、

作ろうとしているモノはすでにライブラリとして用意されていないか??

を注意深くまずは調べることから着手するクセはつけるべきだよなと・・・僕も思います。

 

 

コレクションとそれを操作するロジックを同じクラスに集める

クラスを切り出すときにロジックとそれに強く関連するデータを

セットでクラスにするのと同じように、

コレクションとそれを操作するロジックを1箇所に集めて凝集度を高めることで

あちこちに、コレクションを操作するロジックを記載しなくて良くなる。

という考え方について本では述べられていました。

 

また、副作用を出さないようにコレクションに要素追加するときは、

インスタンスを新規で作ってそちらに追加したり、

コレクションを返却する際はコレクションの追加や削除が利用する側で行えないように

unmodifiableListで返却する。

など動作を安定させてコレクションが変更できる箇所を1箇所に限定させるテクニックについても

解説されていました。

 

現場で、ここまで丁寧に副作用対策やコレクションのためのクラスを作られているソースを

自分は見たことがなく。。。。

そこまでの意識を持てていなかったことを反省させられました。

 

逆に、とあるメソッドを呼ぶとコレクションがよくわからない変更されてしまったとかは

たまに体験したことがあったので、、、

こういった丁寧に良いコードを書くことを心がけ、当たり前のようにできるようになれば

仕様変更に安全で早く対応できるんだろうなと思います。

 

 

まとめ

良いコード/悪いコードで学ぶ設計入門第7章 ネストを解消する構造化技法では、

 

7章では早期break、早期continueを使った良いコードの書き方と、

コレクションに対するロジックを1箇所に集め(他の箇所ではコレクションを触らせない)、

コレクションに対する副作用をなくせる良いコードがどんなものか??

というあたりが重要なポイントだと思います。

 

この辺りを意識して作り切っているシステムをまだ見たことがないので、

なんとか自分で作ってみたいな・・・・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください