우테코 사전미션 과정에서 배웠던 간단한 피드백들을 기록으로 남긴다.
변수이름, 함수, 메소드, 클래스 이름을 짓는것에 시간을 추가하자. 이름을 통해 변수의 역할, 함수의 역할에 대한 의도를 드러내기 위해 노력하자. 연속적인 숫자라던지 불용어는 사용하지 않는 것이 좋다. 이것은 앞선 포스팅 클린코드에도 나와 있는 전략
의도를 드러낼 수 있다면 이름이 차라리 길어지는 것이 낫다. 예를 들어 at(int index) 도 좋지만 String.charAt(int index) 가 훨씬 직관 적인 것 처럼..
intelliJ 의 formatting 기능을 활용하자. Cmd + Alt + L(맥) 을 이용하자
기본적으로 사용하는 언어의 convention을 준수하고, for / while / if 문 사이의 space 또한 컨벤션임을 잊지말자.
공백 라인을 띄우는 것도 코드상에 문맥이 달라지는 부분에 의도를 가지면 좋다.
예를들어 클래스의 경우 상수, 변수, 생성자, 메서드 순으로 작성하면서 줄 간격을 조절하면 협업을 진행함에 있어도 깔끔하게 인식 할 수 있다.
클래스의 구현 순서를 꼭 지키자. 위에서 언급한 바와 같이 상수 - 변수 - 생성자 - 메소드 의 순서를 지키면서 프로그래밍 하자
중복은 소프트웨어에서 모든 악의 근원이다. 만일 중복된다면 클래스화 하거나, 메소드로 빼는 것이 훠어얼씬 좋다.
확신이 서지 않으면 pull request를 보낸 후 들여쓰기가 잘 되어 있는지 확인하는 습관을 들이는 것도 좋다. 아니면 vscode와 같은 IDE에서 관련 extension 설치해서 사용하자
위에서 언급한 바와 같이 변수이름, 함수 이름을 통해 어떤 의도인지가 드러난다면 굳이 주석을 달지 않는 것이 좋다. 모든 변수와 함수에 주석을 달기보다 가능하면 이름을 통해 의도를 드러내고, 의도를 드러내기 힘든 경우에 최후에 주석을 다는 것이 좋다. 내가 가장 많이 피드백을 받았던 부분이다
해당 작업 내용에 대한 이해가 가능하도록 작성하는 것이 좋다. 이것 또한 추후 포스팅에 담도록 하겟다.
기본적으로 기능구현을 하기전에 README.md로 사전에 구현해야할 목록을 정해놓고 시작하면 좋다. 기능별로 Test Code, Models, Controller, View ... 등을 사전에 생각해볼 수 있는 기회가 되기도 한다. 또한 시작할 때 모든 기능 목록을 완벽하게 정리하기 보다는 기능을 구현하면서 문서를 계속 업데이트 할 수 있는 것이 좋다.
기능목록을 클래스 설계와 구현, 함수설계 등 너무 상세하게 적지 말자.. 클래스 이름, 함수 의 input / output, type 등은 언제든 변경될 수 있기 때문이다. 너무 세세한 부분까지 정리하지말고, 구현해야할 기능 목록을 정리하는 것에 초점을 맞추는 것이 좋다. 정상적인 부분도 중요하지만, 예외적인 상황이나 체크해야할 부분도 적어주면 좋다 특히 예외 상황은 시작 단계에서 모두 찾기 힘들기 떄문에 기능을 구현하면서 계속해서 추가하자.