코쿼 10주차 mission1 코드리뷰 정리

Sorbet·2021년 3월 16일
0

codesquad

목록 보기
5/20

이 글은

  • 이글은 제가 코드스쿼드 백엔드 과정을 들으면서 피어-코드리뷰 받은 사항을 정리한 글 입니다.
  • 리뷰받은 사항을 제가 100%공감하는 그런 상태가 아니기 때문에, 리뷰받은 이 지식들을 나중에 언젠가라도 다시 보면서 스스로 발전시키고 싶어 정리합니다.

코드리뷰 사항

lang.object 의 메서드들을 @Override 하는 이유

  • 자바랑의 오브젝트의 메서드들을 오버라이드해서 equals, hash 등을 구현하는게 일반적인데, 이렇게 하는 이유는
  • 콜렉션들과 함께 사용할 때, 개발자의 의도대로 동작하게 하기 위함 (자바 개발자들간의 약속, 디-펙토임)
  • 또한 set 이나 map 자료구조에 담는 경우, 자바 내부적으로 key 값으로 사용하는데 필요하다(equals)
  • dry 원칙 : 바보짓하지말고, 만들어놓은거 수입해다가 쓰자
    • Do not
    • Repeat
    • yourself

제거당해야 마땅한 코드들

  • 주석
  • 사용하지 않는 변수(for문 위애 조용히 숨어있던..)
  • System.out.print문들 ->> 개발중에 찍어보던건데 하나 남아있었다..!!

Null이 리턴될 수 있는 경우

list <Int> myList = new Arraylist<>();
String result;
for(Int temp:myList) {
   if(temp == target) {
    	//원하는 값 찾음
        result = Inteager.parseInt(temp);
    	return;
    }
}
  • 위와 유사한 코드였는데, 얼핏보면 null 이 리턴될일이 없을듯 했는데, list에 내가 찾는 값이 안들어있는 경우, 탐색에 실패하고, result라는 string 타입 참조변수에는 null 이 들어가게 된다.

코드 포멧팅 관련

  • =연산자 좌우로 공백 한칸씩
  • 파일의 맨 마지막에 빈줄 한줄 추가(LF+CR)
  • 로그, 로거를 막 다 쓰지말고, 어디서 발생하는지 생각하고 추적할 수 있도록 쓰자

네이밍 컨벤션

  • askQuestion 이런건 네이밍이 글쎄.. 쪼금 이상하다
  • isSameUser >> user 클래스에 equals 오버라이드해서 구현해라
  • 용어통일
    • 어디서는 qna, 또 딴데서는 question 이렇게 돌려쓰지말고 딱 하나로 통일해라!

null 리턴되는 경우에 Optional 을 리턴해주는데 값을 .get 으로 받아오는건 안티패턴이다

  • 왜 그런지 학습 필요 (로치-디온) 리뷰 참고

profile
Sorbet is good...!

0개의 댓글