카테고리 없음

Chapter 01. 좋은 코드란 무엇일까?

계란💕 2022. 8. 10. 00:44

1.1 좋은 코드, 나쁜 코드, 이상한 코드

  - 코드에 대한 판단은 문제와 상황에 따라 다르다.

 

  좋은 코드

  • 시간/공간 복잡도가 낮아야한다. 
  • 문서화가 잘 되어 있는 코드
  • 유지보수가 용이한 코드
  • 중복이 없는 코드
  • 가독성이 높은 코드
  • 테스트하기 쉬운 코드

 

 

1.2 레거시 코드(Legacy  Code)

  legacy code란?

  • 누군가 떠나면서 남겨둔 코드이다. 유산, 산물이 된 코드이다.

 

1.3 왜 좋은 코드를 작성해야할까?

 

1.5 이름 짓기

 

 좋은이름 짓기 - 엉클 밥

  • 의도를 밝혀라
  • 그릇된 정보를 피라하
  • 의미있게 구분하라
  • 발음, 검색하기 쉬운 이름 사용하라
  • 자신의 기억력을 자랑하지 마라
  • 기발한 이름을 피하라
  • 한 개념에 한 단어를 사용하라
  • 말장난하지 마라
  • 해법/ 문제 영ㅇ역에서 가져온 이름을 사용하라
  • 의미있는 맥락을 추가하라
  • 불필요한 맥락을 없애라

 

 

1.6 캡슐화(Encapsulation)

 

 캡슐화란?

  • 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고 실제 구현 내용 일부를 외부에 감춰 은닉한다.
  • 접근 지정자를 두어 은닉의 정도를 기술하여 구현한다.
  • 데이터와 그 처리 방법을 숨길 수 있다.

 

 자바 빈 규약이란?

  • 기본 생성자가 있어야한다.
  • 모든 멤버는 private으로 선언한다.
  • Getter, Setter가 public 으로 열려 있다.

 

 TDA원칙 (Tell, Don't Ask)- Martin Fowler

  • 객체와 객체가 협력하는 경우, 다른 객체에게 정보를 요구하지 말고 그냥 행위하도록 시키라는 의미한다.

 

 

1.7 열거형(Enum)

 Eum의 장점

  • 상수보다 가독성이 가능하다.
  • Enum 기본 함수 제공한다. ( name, ordinal, values)
  • IDE의 도움이 뛰어남 (검색, 타입 체크)
  • 인스턴스 변수가 1개 있음을 보장한다.
  • 상수 확장성(필드 및 메서드)