가치와 원칙에 대해서
2024. 4. 15. 16:45ㆍswift
가치와 원칙
가치
- 가치
- 프로그래밍에 있어 가장 중요한 가치는 커뮤니케이션
- 코드는 계속 누군가가 읽어야하는 대상
- 개발자는 코드로 얘기함 || 코드는 거짓말 할수없다
- 읽고 이해시킬 수 없는 코드는 가치가 없다
- 단순성
- 코드는 단순해야 한다
- 커뮤니케이션에 도움이 된다
- 버그가 없어진다 || 있다 하더라도 금방 해결학 확률 이 높음
- 복잡한 문제를 단순한 레벨로 낮추는 것이다.
- 생각해 볼 점
- 단순함은 개발자의 수준에 따라 다름
- 미래의 확장을 위한 불필요하게 복잡한 패턴도 경계의 대상
- 단순함과 짦음은 다르다. \\ 짧다는게 단순하지는않다. 음 상항연산자? 고차함수
- 유연성
- 커뮤니케이션과 단순성이 만족되는 범위 내에세 유연한 구조를 추구 (단순성, 커뮤니가 더 높다)
- 대부분의 시간을 기존 코드를 수정하는 일에서 보낸다.
- 가능한한 유연한 상태를 유지해야한다.
- 유연성 확보는 단순성과 반대된다.
- 유연성의 확보가 중요하지않다면 단순성을 해치지 말라?
원칙
- 지역적 변화
- 코드를 수정할 때 함께 수정되어야 하는 부분을 최소화 / 지역화
- 코드의 관리 비용을 낮춤
- 여러 패턴이 추구하는 방향
- 최소중복
- 코드의 중복을 최소화 해야함
- 중복된 코드는 한군데 수정이 발생하면 다른 곳도 수정되어야 할 가능성이 높음
- 중복된 코드는 관리비용을 높임
- 로직과 데이터의 결합
- 로직과 데이터는 한곳에 유지되는 것이 유리하다.
- 로직은 데이터를 기본으로 동작
- 데이터가 수정되면 로직이 수정될 확률이 높음
- 로직과 데이터는 한곳에 유지되는 것이 유리하다.
- 대칭성
- 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 |