本連載が書籍化されました。
『良いコードを書く技術 ─ 読みやすく保守しやすいプログラミング作法』
縣俊貴 著/
価格2394円
ISBN 978-4-7741-4596-9
はじめに
「良いコード」
配列/コレクションって何?
配列とコレクションはどちらもオブジェクトの集合
配列とコレクションは似ていますが、
// 配列の大きさは3。あとから変更はできない!
String[] names = new String[] {"taro", "hana", "masaru"};
for (String name : names) {
System.out.println(name);
}
コレクションとは通常、
// コレクション(List)のサイズはあとから拡張可能!
List<String> names = new ArrayList();
names.add("taro");
names.add("hana");
names.add("masaru");
for (String name : names) {
System.out.println(name);
}
使い分けとしては、
配列/コレクションを利用した抽象化とは?
似たような処理を何度も実行する必要があるときに、
処理1
処理1-A
処理1-B
処理2
処理2-A
処理2-B
処理3
処理3-A
処理3-B
:
:
似た処理を100件実行したい場合は、
ベタに書いた場合、
それらの違いの部分だけをうまいこと
処理対象リスト = [データ1, データ2, データ3, ...]
ループ(処理対象リスト) {
処理A
処理B
}
これは、
- 重複する処理が減りバグが生まれにくい
重複するコードは共通部分としてまとめられるので、
些細なコピー&ペーストミスなどが起きにくい - 全体に影響する機能追加や修正を簡単に行える
共通の処理はループ内にまとめてあるので、
全体に影響する機能追加はここで一括して行える。個別に違う部分への対応は、 ループ内でif文などを使用してアドホック (その場限り) に対応するか、 それぞれの処理オブジェクトが処理の違いを保持して実現するなどの方法で対応する [3] - 処理対象が増えてもコードはほとんど増えない
10件でも1,000件でもコード量はほとんど変わらない
デメリットとしては、
想定している抽象化のポイントを間違えると痛い目にあうという点があります。こちらに関してはまたあとで詳しく考察します。
抽象化はお好き?
それでは、
良い仕事をしたい普通のプログラマ
達人プログラマを目指す 初級~中級のプログラマ
達人プログラマ
連載最終回にしてはじめて中級プログラマが謙虚さを見せていますね。きっといろいろな失敗を通して成長したんでしょう、
それでは、