読みやすいコードを意識する
気を抜くと冗長なコードになりがちになるので、意識づけのために
可読性の高くなるポイントについてまとめました。
##条件式を簡潔化
java
if (a == 1 && b == 2 && c == 3 && d == 4){
System.out.println("test");
}
//if 文の条件式を折り返す
if (a == 1 &&
b == 2 &&
c == 3 &&
d == 4){
System.out.println("test");
}
//メソッドを作り可読性をあげる
if (output()){
System.out.println("test");
}
private boolean isValidType(){
//処理
return true;
}
##ネストが深すぎる
java
//NG
if(a == 1){
if(b == 2){
if(c == 3){
if(d == 4){
if(e == 5){
System.out.println("test");
}
}
}
}
}
//OK
////同じくメソッドを作り可読性をあげる
if (isValidType()){
System.out.println("test");
}
private boolean isValidType(){
//処理
return true;
}
##変数名やメソッド名が不適切
命名規則にそって宣言
####スネークケース
java
String user_name = "太郎"
####ローワーキャメルケース
java
String userName = "太郎"
####アッパーキャメルケース
java
String UserName = "太郎"
####チェインケース
java
String user-name = "太郎"
##スコープ有効範囲の意識
java
//NG
class Calculator {
public static int num = 0;
public static void alterNumber(int _num) {
num = _num;
}
public static void main(String args[]) {
alterNum(23);
}
}
//OK
//アクセス制御子によりクラスの中だけでしか実行できない
class Calculator {
private static int num = 0;
private static void alterNumber(int _num) {
num = _num;
}
public static void main(String args[]) {
alterNum(23);
}
}
##コードの統合化
java
//NG
public class StandAction extends BaseAction {
public void Stand(Account account) {
if(account.getFirstName() == null || account.getFirstName().length()== 0) {
return;
}
if(account.getLastName() == null || account.getLastName().length() == 0) {
return;
}
}
}
//OK
//メソッドを追加したので可読性の向上
public class Stand extends BaseAction {
public void Stand(Account account){
if(isEmpty(account.getFirstName())){
return;
}
if(isEmpty(account.getLastName())) {
return;
}
}
public boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
}