Clean Code - (3) : Java 번외편

­이승환·2021년 10월 27일
1

Clean Code

목록 보기
3/7

서론


우테코 사전미션 과정에서 배웠던 간단한 피드백들을 기록으로 남긴다.

번외

TDD에 기반하여 JUnit 테스트를 거쳤을때, 오류가 지속 발생시

  • System.out.println() 이 아닌 System.out.print()를 사용한 것이 아닌지 꼭 확인
  • Exception을 잡을때, RuntimeException으로 catch하는 경우 IllegalArgumentException 과 같이 구체화된 예외처리를 하는 것이 옳다. 추후 예외에 대해서 포스팅할 예정

이름을 통한 의도 전달

변수이름, 함수, 메소드, 클래스 이름을 짓는것에 시간을 추가하자. 이름을 통해 변수의 역할, 함수의 역할에 대한 의도를 드러내기 위해 노력하자. 연속적인 숫자라던지 불용어는 사용하지 않는 것이 좋다. 이것은 앞선 포스팅 클린코드에도 나와 있는 전략

축약

의도를 드러낼 수 있다면 이름이 차라리 길어지는 것이 낫다. 예를 들어 at(int index) 도 좋지만 String.charAt(int index) 가 훨씬 직관 적인 것 처럼..

개발도구를 최대 활용하자

intelliJ 의 formatting 기능을 활용하자. Cmd + Alt + L(맥) 을 이용하자

convention에 대한 준수

기본적으로 사용하는 언어의 convention을 준수하고, for / while / if 문 사이의 space 또한 컨벤션임을 잊지말자.

불 필요한 공백은 줄이자

공백 라인을 띄우는 것도 코드상에 문맥이 달라지는 부분에 의도를 가지면 좋다.
예를들어 클래스의 경우 상수, 변수, 생성자, 메서드 순으로 작성하면서 줄 간격을 조절하면 협업을 진행함에 있어도 깔끔하게 인식 할 수 있다.

구현 순서도 컨벤션이다

클래스의 구현 순서를 꼭 지키자. 위에서 언급한 바와 같이 상수 - 변수 - 생성자 - 메소드 의 순서를 지키면서 프로그래밍 하자

반복하지마라.

중복은 소프트웨어에서 모든 악의 근원이다. 만일 중복된다면 클래스화 하거나, 메소드로 빼는 것이 훠어얼씬 좋다.

space & tab 혼용 금지

확신이 서지 않으면 pull request를 보낸 후 들여쓰기가 잘 되어 있는지 확인하는 습관을 들이는 것도 좋다. 아니면 vscode와 같은 IDE에서 관련 extension 설치해서 사용하자

의미없는 주석을 달지 않는다.

위에서 언급한 바와 같이 변수이름, 함수 이름을 통해 어떤 의도인지가 드러난다면 굳이 주석을 달지 않는 것이 좋다. 모든 변수와 함수에 주석을 달기보다 가능하면 이름을 통해 의도를 드러내고, 의도를 드러내기 힘든 경우에 최후에 주석을 다는 것이 좋다. 내가 가장 많이 피드백을 받았던 부분이다

하드코딩 금지

git commit convention 준수

해당 작업 내용에 대한 이해가 가능하도록 작성하는 것이 좋다. 이것 또한 추후 포스팅에 담도록 하겟다.

README.md 업데이트

기본적으로 기능구현을 하기전에 README.md로 사전에 구현해야할 목록을 정해놓고 시작하면 좋다. 기능별로 Test Code, Models, Controller, View ... 등을 사전에 생각해볼 수 있는 기회가 되기도 한다. 또한 시작할 때 모든 기능 목록을 완벽하게 정리하기 보다는 기능을 구현하면서 문서를 계속 업데이트 할 수 있는 것이 좋다.

기능 목록 재검토

기능목록을 클래스 설계와 구현, 함수설계 등 너무 상세하게 적지 말자.. 클래스 이름, 함수 의 input / output, type 등은 언제든 변경될 수 있기 때문이다. 너무 세세한 부분까지 정리하지말고, 구현해야할 기능 목록을 정리하는 것에 초점을 맞추는 것이 좋다. 정상적인 부분도 중요하지만, 예외적인 상황이나 체크해야할 부분도 적어주면 좋다 특히 예외 상황은 시작 단계에서 모두 찾기 힘들기 떄문에 기능을 구현하면서 계속해서 추가하자.

profile
Mechanical & Computer Science

0개의 댓글