가치와 원칙에 대해서

2024. 4. 15. 16:45swift

 

가치와 원칙

가치

  • 가치
    • 프로그래밍에 있어 가장 중요한 가치는 커뮤니케이션
    • 코드는 계속 누군가가 읽어야하는 대상
    • 개발자는 코드로 얘기함 || 코드는 거짓말 할수없다
    • 읽고 이해시킬 수 없는 코드는 가치가 없다
  • 단순성
    • 코드는 단순해야 한다
    • 커뮤니케이션에 도움이 된다
    • 버그가 없어진다 || 있다 하더라도 금방 해결학 확률 이 높음
    • 복잡한 문제를 단순한 레벨로 낮추는 것이다.
    • 생각해 볼 점
      • 단순함은 개발자의 수준에 따라 다름
      • 미래의 확장을 위한 불필요하게 복잡한 패턴도 경계의 대상
      • 단순함과 짦음은 다르다. \\ 짧다는게 단순하지는않다. 음 상항연산자? 고차함수
  • 유연성
    • 커뮤니케이션과 단순성이 만족되는 범위 내에세 유연한 구조를 추구 (단순성, 커뮤니가 더 높다)
    • 대부분의 시간을 기존 코드를 수정하는 일에서 보낸다.
      • 가능한한 유연한 상태를 유지해야한다.
    • 유연성 확보는 단순성과 반대된다.
      • 유연성의 확보가 중요하지않다면 단순성을 해치지 말라?

원칙

  • 지역적 변화
    • 코드를 수정할 때 함께 수정되어야 하는 부분을 최소화 / 지역화
    • 코드의 관리 비용을 낮춤
    • 여러 패턴이 추구하는 방향
  • 최소중복
    • 코드의 중복을 최소화 해야함
    • 중복된 코드는 한군데 수정이 발생하면 다른 곳도 수정되어야 할 가능성이 높음
    • 중복된 코드는 관리비용을 높임
  • 로직과 데이터의 결합
    • 로직과 데이터는 한곳에 유지되는 것이 유리하다.
      • 로직은 데이터를 기본으로 동작
    • 데이터가 수정되면 로직이 수정될 확률이 높음
  • 대칭성
    • add가 있으면 remove가 있는 것이 좋음 쌍이 맞아서 있는게 좋다 코드를 다루기 좋다 쉽다?
    • 함께 생성된 것은 함께 소멸되게 해라.. 대칭성을 주면좋다 예측이 가능해지기 때문에
    • 코드를 이해하기 편해진다.
    • 중복 코드를 줄이기 쉽다.
  • 선억적 표현
    • 선언적 표현을 적절히 사용하면 코드의 가독성을 높힌다.
    • 어떻게 하느냐 를 기술하기 보다 무엇을 하느냐 를 기술해라.
  • 변화율
    • 시간적 대칭성
    • 변화율이 다른 내용 분리하고 같은 내용은 묶어서 표현
      • 일반적인 상황을 처리하는 메서드와 특정 상황을 처리하는 메서드
      • 특정 메서드가 사용하는 필드는 그 메서드의 지역변수로 선언(같이쓸때 같은 순간에 쓸때 함께수정되는건 묶어라)
      • 다른 필드와 독립적이고 의존적인 2개의 필드는 별도의 객체를 만들어서 묶음(따로 쓴다면 묶어서 쓰는게 오히려 좋을수도있다. 시간복잡도)
    • 효과
      • 의도 전달이 쉬우며
      • 코드 수정에 대한 영향이 적다

'swift' 카테고리의 다른 글

SwiftUI Property Wrapper  (0) 2025.01.30
Swift에서 크래시안나게 하는 습관  (0) 2024.04.15
ARC  (2) 2024.01.08
ISP: 인터페이스 분리 원칙  (1) 2023.12.03
LLVM 에 대해서 알아보자.  (0) 2023.09.18