본문 바로가기
객체지향

정순원의 코드 원칙

by 순원이 2024. 2. 27.

코드를 짜다 보면 어? 내가 이런 상황에서 어떻게 했지?

혹은 전에도 이와 같은 방법으로 코드를 짰나? 라는 의구심이 들 때가 있다. 역시나 전에 코드를 보면 지금의 코드 스타일과는 다르게 써져있다.


예를 들면
Controller에서 Service를 호출할 때 RequestDTO를 그대로 넘겨줬나 DTO를 분해해서 넘겨줬나?
엔티티를 Response로 변환할 때 어디서 책임을 맡았지?

등과 같은 생각이다.

통일성은 코드 가독성에 크게 영향을 주기 때문에 나만의 코드원칙을 세워야겠다고 다짐했다. 물론 이러한 문제들은 팀마다 규칙이 다르다. 그러더라도 나만의 기준을 세우고 지금부터라도 통일성을 갖는 연습을 하는 것이 중요하다 생각한다. 취직을 하고 팀이 생긴다면, 후에 그 팀내 규칙을 따르면 된다.

 

1. DTO 변환 책임 

(링크 첨부)

 

2 가독성을 위해 변수를 선언 후 메소드 파라미터로 넘겨준다.

  • 가독성이 코드 유지보수에 매우 중요하다고 생각합니다. 로컬 변수를 사용해 코드의 의도를 명확히 전달한다.
  • 변수를 선언하지 않더라도 누구나 이해하기 쉬운 코드라면 바로 파로미터로 넘겨줘도 된다.

 

3 들여쓰기는 4 칸x, 8칸 o

 

4 타 객체의 변수는 직접 변경하기 X, 객체에게 메시지만 전달하기 O

 

5.한 개념에 한 단어만 사용한다.

   검증하고 오류를 던지는 메소드는 validate로 시작,
   검증만 하는 메소드는 is, has, can으로 시작

  • is = ~ 이다
  • has = ~를 가졌다
  • can = ~를 할 수 있다

 

6. 일급컬렉션을 쓸 수 있는 상황이면 일급 컬렉션을 쓴다. 

  • List<RequestDTO> X
  • RequestDTOs   and  RequestDTO   O

 

7 확실한 is - a 관계 아니라면 상속이 아니라 조합을 쓰자

 

8 개발 전 요구사항을 꼼꼼히 작성하여 개발 시 생각할 시간을 단축하며 정확성을 챙기자

'객체지향' 카테고리의 다른 글

[클린코드] 5 ~ 10장  (0) 2024.03.04
[클린코드] 4. 주석  (0) 2024.03.04
[클린코드] 3.함수  (0) 2024.03.04