可読性・保守性の高いコーディング1
ぜひ、PG、SEの仕事を始めたばかりで可読性、保守性の大事さに気づいていない人に読んでほしい。
可読性・保守性の高いコーディングは本当に大事!!
可読性・保守性が高いとは
読みやすくて、他の人でも修正しやすいコードのこと
「他人」ってのが大事!
自分は分かっていても、他の人が分からないと可読性が高いとは言えない!
すごく簡単なJavaのプログラム2つほど書いてみた。
可読性が高い方はプログラミングが未経験でなんとなくは理解できるはず!
ぜひ二つを何回か見比べてほしい。
※補足
/* */で囲まれているところや //の後ろに書いてあるのはコメント
【プログラム1】
public class M { public static void main(String[] args){ System.out.println(ans(4,5,ope.M)); } public static double ans(double a, double b,ope o) { switch (o) { case A: return a + b; case S: return a - b; case M: return a * b; case D: return a / b; } return 0; } public enum ope{ A, S, M, D } }
【プログラム2】
/** * 計算用クラス * @author りゅう */ public class Math { /** * プログラムを実行すると呼ばれるメソッド * @param args 今回は使わない引数 */ public static void main(String[] args){ /* 計算結果を入れる変数 */ double result; //answerメソッドを呼び出して計算を行う。4×5を行う。 result = answer(4,5,operator.MULTIPLICATION); //計算結果を出力する。 System.out.println(result); } /** * 計算を行い、計算結果を返すメソッド * @param value1 値1 * @param value2 値2 * @param operatorType 演算子型 * @return 計算結果 */ public static double answer(double value1, double value2, operator operatorType) { //演算子型によって計算方法を帰る switch (operatorType) { case ADDITION: //足し算の時 return value1 + value2; case SUBTRACTION: //引き算の時 return value1 - value2; case MULTIPLICATION: //掛け算の時 return value1 * value2; case DIVISION: //割り算の時 return value1 / value1; } System.out.println("計算に失敗しました。"); //本当はException投げたいけど今回の本筋ではないので今回は0 return 0; } /** * 列挙型 演算子の型を指定する * @author りゅう */ public enum operator{ ADDITION, //足し算 SUBTRACTION, //引き算 MULTIPLICATION, //掛け算 DIVISION //割り算 } }
比べてみると2の方がわかりやすいはず!
説明が書いてあることと、メソッド名や変数名に意味のある単語を使っている。
また、省略系はあまり使わない方が良い。
AとADDITIONだとどっちが分かりやすいだろうか??
明らかにADDITIONだとおもう。
プログラム1と2を見てわかるように2の方が何を行っているのか説明しなくても他人が見て理解できる。
ぜひ2のようにコメントをしっかり書き、変数名を省略しないでほしい。
これをしっかり行うSE、PGが増えていけば世の中幸せになると思う。
第2段もいつか書きます