Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions 2025/Becoming a Better Programmer/donghyeon/ch9~13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 더 나은 프로그래머 되는법 = ch09~13

## 논의

- 지저분한 대도시에서 디자인 타운으로 변경한 경험이 있다면 공유하면 좋을 것 같습니다. 이러한 경험이 없다면 디자인 타운을 만들기 위해 개인적으로 하는 노력을 공유하면 좋을 것 같습니다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

중요한 코어 도메인의 비즈니스 로직의 경우는 디자인 타운에서 말하는 것들을 가능한 지키려고 노력하고 있습니다

사실상 모든 코드 베이스가 디자인 타운과 같이 유지한다는 것은 그 유지비용도 비용이기 때문에, 유지를 하더라도 비용이 많이 들것이라 생각하고 현실적으로는 중요한 것을 선별해서 적용하는것이 맞다고 생각합니다

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지저분한 대도시가 되는 방향으로 가고 있다면 디자인 타운으로 바꾸기 위한 시간을 들여서 조금씩 변경을 하고 있습니다.
조금씩 리뷰하고 조금씩 수정하고 하는 원칙을 가지고 실천하고 있어요.


## 내용

- 좋은 코드를 작성하는 것은 낙관론이나 비관론에 관한 것이 아니라, **물이 새지 않는 컵을 만드는 과정**과 같다.
- 테스트하지 않은 코드는 버그 번식지나 다름없다. 테스트는 **표백제 역할**을 합니다.
- 코드의 특정 행태를 확인하는 테스트를 통해 더 응집되고 명확한 테스트를 작성할 수 있다.
- 좋은 구조, 즉 이해하고 유지 보수하기 더 간단한 구조를 만들기 위해 코드를 '모듈'로 간주하고 패키지, 컴포넌트, 클래스 등 세부적인 부분으로 나누어라.
- 작고 수많은, 즉 더 응집도가 높은 클래스를 선호하라. 되도록이면 하나의 일만 처리하는 게 가장 좋다.
- 순환적인 의존 관계에 있는 객체들은 융통성이 없고 쉽게 변하지 않으며 작업하기도 어렵다.
- 이러한 구조는 연결을 끊거나 새로운 추상적인 인터페이스를 만들어 객체들 간의 결합을 줄임으로써 간단히 정리할 수 있다.