前回:「sinProject流システム開発のススメ」はじめました
説明の都合上、話は凄くシンプルに進めていきます。
簡単な要求がきました。
「100を2倍して1足した結果を出力して」
さて、書いてみましょう。
※変更が無かったり重要じゃなくてコードを省略したところを「// …」と書くことにします。
[code lang=”java”] package net.sinproject;
public class Lesson {
// …
public static void main(String[] args) {
// TODO: 100を2倍して1足した結果を出力
}
}
[/code]
まずはやることをTODOで書きます。その後コードに変換していきます。まずはコードを書く場所にやることを書く癖をつけます。これを書くことで頭の整理とロジックの組み立てが行えます。これが普通にかけないとコードもかけません。
[code lang=”java”] package net.sinproject;public class Lesson {
// …
public static void main(String[] args) {
System.out.println(100 * 2 + 1);
}
}
[/code]
これで「100を2倍して1足した結果を出力して」の要求が満たせました。そこに新しい依頼がきました。
「200を2倍して1足した結果も出力しといて」
さて、TODO書いてみましょう。
[code lang=”java” collapse=”true”] package net.sinproject;public class Lesson {
// …
public static void main(String[] args) {
System.out.println(100 * 2 + 1);
// TODO: 200を2倍して1足した結果を出力
}
}
[/code]
TODOを書いたらコードに変えていきます。
[code lang=”java” collapse=”true”] package net.sinproject;public class Lesson {
// …
public static void main(String[] args) {
System.out.println(100 * 2 + 1);
System.out.println(200 * 2 + 1);
}
}
[/code]
さて、ここで同じような処理が出てきました。2つ以上同じことを書かないようにするために、メソッド化しましょう。
ここではTODOのサンプルは省きますが、さっそく書いてみて下さい。
※サンプルでは、計算するメソッドの名前を「calc()」としました。
public class Lesson {
public static int calc(int value) {
return (value * 2 + 1);
}
// …
public static void main(String[] args) {
System.out.println(calc(100));
System.out.println(calc(200));
}
}
[/code]
このように、同じ処理を書いてしまいそうになったら、メソッド化してしまいます。このことでバグが減ったり、見やすくなったりして、保守のコストを減らすことが出来ます。これはリファクタリング手段の一つであり、リファクタリングといえば「コードクローンを無くすこと(コピペしないこと/同じことを書かないこと)」といっても過言ではないほど重要な事です。
サンプルコードで新しく出てきた新しいコーディング規約も含めて、今回のおさらいをしておきます。
- コードを書く前にやることをTODOで書く
- 同じ処理はメソッド化する
- 作成するメソッドは呼び出し元より上に記述する(同じファイルに書く場合)
- 丸カッコ「(」「)」の内側には半角スペースなどで間隔を開けない
- 演算子「* とか + 」の前後は半角スペースを開ける
- return 行に式を書く場合は丸括弧で囲う
次回:sinProject流システム開発のススメ #003 コメントは最小限に
弊社では、「さらに高みを目指したいエンジニア」を育てる環境を用意しています。
株式会社 #sinProject CEO/CTO
Twitterアプリ1位 #Tweecha2 企画制作
サービス・システム設計開発、コンサルタント
#sinPro式学習 #Svelte #TypeScript #Flutter #Dart #Java #HTML #CSS
#kimurakan ピアノ弾き語り