DevBook/CleanCode
-
3장 함수DevBook/CleanCode 2021. 7. 1. 16:51
명령과 조회를 분리하라! 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나를 수행하도록 해야 함 -> 객체 상태 변경하거나 아니면 객체 정보 반환하거나 둘 중 하나 [예시] 문제) 수행 내용이 명확하지 않은 함수(명령과 조회를 하나의 함수에서 수행함) public boolean set(String attribute, String value); -> 주어진 함수는 이름이 attribute인 속성을 찾아 값을 value로 설정한 후 성공하면 true를 반환함 if(set("username", "fordevelop")) . . . -> 실제 사용 시 코드를 보면, 'username이 fordevelop으로 설정되어 있는지 확인하는 코드인지' or 'username을 fordevelop으로 설정하는 코드인지..
-
2장 의미있는 이름DevBook/CleanCode 2021. 6. 29. 15:44
1. 의도를 분명히 밝혀라 변수나 함수, 클래스 이름은 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 이라는 물음에 모두 답해야 한다. [예시] 1) 의도가 들어나지 않는 코드 public List getThem(){ List list1 = new ArrayList(); for(int[] x : thisList) if(x[0] == 4) list1.add(x); return list1; } 위의 코드의 문제점 : 코드 맥락이 코드 자체에 명시적으로 드러나지 않음 2) 개선된 코드 public List getFlaggedCells(){ List flaggedCells = new ArrayList(); for(int[] cell : gameBoard) if(cell[STATUS_VA..