일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- WebClient
- 자료구조
- 쿠키
- 연결 리스트
- 코드
- 트리
- 스택 큐 차이
- @NoArgsConstructor
- 계산 검색 방식
- 리스트
- 내부 정렬
- mysql
- code
- 선형 리스트
- CleanCode
- 쿼리메소드
- 빅 오 표기법
- 클래스
- JsonNode
- 인터페이스
- @RequiredArgsConstructor
- 정렬
- 마크다운
- 마크다운 테이블
- java
- 클린
- query
- 배열
- @ComponentScan
- 클린코드
- Today
- Total
목록책을읽읍시다 (12)
Developer Cafe
의도를 분명히 밝혀라 변수의 존재 이유, 기능, 사용법 등이 변수/함수/클래스명에 드러나야 한다. 따로 주석이 필요하지 않을 정도로. 의미를 함축하거나 독자(코드를 읽는 사람)가 사전지식을 가지고 있다고 가정하지 말자. // Bad public List getThem() { List list1 = new ArrayList(); for (int[] x : theList) { if (x[0] == 4) { list1.add(x); } } return list1; } // Good public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (int[] cell : gameBoard) { if (cell[STATUS_VALUE] == FLA..
일정에 맞추기 위해 나쁜 코드들을 방치하고는 '나중에 고쳐야지'라고 생각한 경험이 다들 있을 것이다. 하지만 Later equals never - LeBlanc's law (나중은 절대 오지 않는다 - 르블랑의 법칙) 난장판을 품는 데에 드는 비용 초기에는 매우 빠른 속도로 진행되던 프로젝트가 1~2년 만에 달팽이처럼 느린 페이스로 진행되게 되는 것을 볼 수 있다. 나쁜 코드로 짠 프로그램에 가해지는 변경사항은 어느것 하나 사소하지 않다. 나쁜 코드가 쌓일 수록 그 팀의 생산성은 떨어지고 이윽고 0에 수렴한다. 관리팀은 인력을 추가하려 한다. 하지만 새 팀원은 구조를 이해하지 못한다. 거기다 그 팀은 '새 인력을 투입했으므로 생산성이 늘겠지'라는 압박을 받는다. 결과, 나쁜 코드는 더 쌓인다. 더러운 코..