대화 시리즈
개발을 개발자답게 한다. → 기본기에 집중하고, 코드에 스스로 질문을 던진다.
- 함수 = 행동
- 객체 ( 상태, 행동 ) → “이 객체는 이러한 행동을 한다. 이런 역할이다.” 를 정의한다.
- Pair Programming : 코드 자체에 대한 가독성을 고민
- 대화의 전달력을 향상: 상대방의 마음에 버그를 발생시키지 않기 위해서…!
코드리뷰를 하루 2-3시간, 한 달간 진행
- 무엇을 할지 명확히 표현(함수명): 행동+목적어
- 작은 대화는 더 구체적, 큰 대화는 더 포괄적으로: 이끄는 상위 단계에서는 포괄적
- 하고자 하는 말은 정확하게 표현: 내가 말하는게 다른 개발자도 가져다 쓸 수 있도록
- 어려운 말은 쉽게 표현: 대화를 위한 쉬운 표현을 만들어주기 → 비즈니스 로직의 핵심을 위에 작성
- 확장성을 고려한 표현: 유지보수나 재활용 👍
- 목적어와 함께 표현
- 목적과 의도를 명확히 표현할 수 있는 매개변수 이름 명명
- 매개변수의 이름과 맞는 적절한 데이터 타입 사용
- 가능하면 매개변수는 3개 이하로 유지하며, 필요에 따라 객체로 전달
- setter가 아닌 이상, 함수 내에서 매개변수의 참조 값 변경 지양
- 목적어를 통해 확장성 있는 대화 가능
- 상황에 맞는 직관적인 단어 선택
- 프로그램 종료 - terminate: 어플리케이션의 완전 종료 / stop: 중지, 잠시 멈춤
- 주문 정보 가져오기 - retrieve: 복잡한 조건에 의한 주문 내려받기 / get: 주문 불러오기
- 유효성 검사 - validate: 형식, 범위 조건 검사 / check: 단순한 확인, 중복(일치) 검사
- 보편적으로 이해되는 단어 선택 (유비쿼터스 도메인 언어)
- 어떤 활동의 보상이 사용자에게 주어지면 그게 사용자 입장에서는 Item인가 Reward인가?
- 활동의 보상이 물질적인게 아닌, 칭찬과 같은 감정적인 것도 Reward인가?
- 잘못된 활동으로 주는 경고도 Reward인가?