클린코드 1장 나쁜코드란?
1. 나쁜코드
- 성능이 나쁜 코드
불필요한 연산이 들어가있어 개선의 여지가 필요
- 의미가 모호한코드
코드를 봐도 이해하기 어려움, 네이밍과 실제코드에서 제공하는 기능이 다름
- 중복된 코드들이 많은 것
변수의 의미가뭐지 ? 코드는 왜 중복되지 ? 너무 뚱뚱한 함수
나쁜코드는 깨진 유리창의 법칙을 생각해보자 깨진 유리 근처에 계속해서 깨진다. 나쁜 코드 주위에도 계속해서 나쁜 코드가 탄생
- 나쁜이유
graph LR
t[생산성저하]-->분석하기어려움-->영향범위가넓음-->a[유지보수가어려움]; a-->b
b[새로운시스템도입필요] -->새로운기능도입-->시간부족으로나쁜코드발생-->c((반복))-->t;
2. 클린 코드
- 성능이 좋은 코드
- 의미가 명확한 코드 = 가독성이 좋은 코드
- 중복이 제거된 코드 - 꺠끗한 코드는 한가지를 제대로 한다.
보이스카웃 법칙 원래 있던 캠핑 장소보다 떠난 이후 더 깨끗하게 만들어라! 소스도 누군가 건들게 되면 더 깨끗한 소스가 되도록 만들어라
3. 의미가 분명한 이름 짓기
- 변수명 a ,b 변수명 사용하지말기 itemname와 같이 의미 있는 이름으로 사용하기
- 루프 속 i,j,k 사용하지 않기
for (String note : notes)를 사용하기 messages.stream().forEach() 람다를 사용
- 통일성 있는 단어 사용하기 member/customer/user 통일성 있게 하나의 변수명으로 통일
- 변수명에 타입 넣지 않기
nameString , itmePrice x name, item but, accountList, accountMap은 대체할게 없어 사용이 괜찮다.