본문 바로가기
study/Java

클린코드(Clean code) 2장 - 좋은 이름 짓기

by 고기만두(개발자) 2022. 9. 5. 07:50
728x90
반응형

앞장 복습은 요기서 https://career-gogimandu.tistory.com/119

 

클린코드 1장 - 좋은 코드와 나쁜 코드

https://career-gogimandu.tistory.com/115 Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던..

career-gogimandu.tistory.com

1. 의미가 분명한 이름 짓기 : int a, String b 이런 이름 말고 itemcount, itemname 같이, 뭔 말하는지 알아먹기 쉽게

친구가 팀원이 저따위로 이름을 지어놨다고 개빡쳐한 거 본 기억 난다... 나여도 황당할듯

 

2. 반복문 돌릴 때 i, j, k 사용하지 않기

: 최근에 제대로 코드를 짰다면 전혀 날 일이 없는 부분에서 arrayindexOutofRange만나서 이틀 삽질함

나중에보니 i j 바꿔 쓴 탓이었음.  그러니 단건 디버깅할 때 멀쩡하지 ㅡㅡ 폰트라도 알아보기 쉬운걸 쓰든가;

심지어 ide업데이트 한번 했더니 갑자기 알수없는 이유로 한글 주석이 아래위 양옆으로 눌려 보이는 현상 때문에

fixedsys consolas 도 아니고 한동안 폰트를 맑은 고딕을 쓰다가 벌어진 참사라 , 다시 한글 문제 감수하고 폰트 원복함.

근데 그거 말고도 for String(manager : managers) 같은 advanced for문 도 있고

자바 8 이상의 환경이라면 람다도 쓸 수 있는데

굳이 i j k 헷갈리게 남발해야할까?

=> 이건 다음부터 반복문 돌리게 되면 좀 신경써봐야겠다.

나는 프레임워크 자체의 특징을 최대한 이용하고

처음 데이터 읽어오는 부분이나, 파일쓰는 부분은 for문 돌리지 않기 위해 노력중인데 이것도 잘 생각해봐야겠군

 

3. 통일성 있는 단어 사용 : 이러니 메타를 만들어서 용어를 표준화하려고 하는구나. DA의 중요성.

 

4. 변수명에 타입 넣지 않기 : list, map은 뭐 그렇다 치는데 굳이 string, int같은 걸 변수명에 붙일 필요는 없음

* 이런 부분은 팀원들간의 암묵적/명시적인 룰을 따르면 나중에 인계받았을 때 다음 사람이 편할듯.

정말 상상하지도 못한 이상한 변수명 너무 많이 보긴 했어....

 

5. 명사/명사구, 동사구, 대소문자

-패키지는 소문자

-클래스/인터페이스는 명사/명사구, 형용사를 사용하고 첫글자를 대문자로 작성

-메서드는 동사/동사구

테스트클래스는 ~Test로 끝나는 이름

JUnitTest에는 언더바가 들어가도 됨

 

사실 변수명에 언더바 많이 쓰고있는데... 흠

X 계산, Y 탐색 -> calcX, srchY 이런식으로 메소드 따로 빼는 경우는 많은데, 다 이렇게 되어있었나?

이것도 앞으로 한번 주의깊게 확인

 

본질은, 나중에 찾기 편하고 남들이 알아보기 쉬운 코드

728x90
반응형

댓글