오늘 TIL 3줄 요약
-
Don’t Repeat Yourself, 반복하지 말라
-
코드의 결합도를 낮추고 응집도를 높여라
-
직교성을 높여라. 하나를 바꾸어도 나머지에 영향을 주지 않게 하라
TIL (Today I Learned) 날짜
2022/03/21
오늘 읽은 범위
2장. 실용주의 접근법
책에서 기억하고 싶은 내용을 써보세요
-
모든 코드를 교체 가능하게 작성해야 한다. 교체 가능하게 작성하라는 말은 코드의 결합도를 낮추고 응집도를 높이라는 이야기일 뿐이다.
-
모든 지식은 시스템 내에서 단 한 번만, 애매하지 않고, 권위 있게 표현되어야 한다. DRY: 반복하지 말라(Don’t Repeat Yourself)
-
개발자 간의 중복.
- 개발자 간의 중복에 대처하려면 크게는 의사소통을 잘하는 튼튼하고 유대가 돈독한 팀을 만들어야 한다. 슬랙 채널같이 공통의 문제를 다루기 위한 공간을 만들라.
- 한 사람을 프로젝트 사서로 임명하라. 프로젝트 사서의 역할은 지식 교환을 돕는 것이다.
- 코드 리뷰를 통해서든 다른 사람의 소스 코드와 문서를 반드시 읽어라.
-
직교성
- 하나가 바뀌어도 나머지에 어떤 영향도 주지 않으면 서로 직교한다고 할 수 있다.
- 직교적인 시스템의 두 가지 장점
- 생산성 향상
- 리스크 감소
-
가역성
- 특정 업체의 데이터베이스나 아키텍처 패턴, 어떤 배포 모델을 사용하기로 결정했다면 큰 비용을 치르지 않고는 되돌릴 수 없는 행동을 하기로 묶여버린 셈이다. 최종 결정이란 없다.
-
프로토타입은 나중에 버리는 코드를 만든다. 예광탄 코드는 기능은 별로 없지만 완결된 코드이며, 최종 시스템 골격 중 일부가 된다. 프로토타입은 예광탄을 발사하기 전에 먼저 수행하는 정찰이나 정보 수집과 같은 것이다.
-
트로토타이핑
- 트로토타이핑 대상
- 아키텍처
- 기존 시스템에 추가할 새로운 기능
- 외부 데이터의 구조 혹은 내용
- 외부에서 가져온 도구나 컴포넌트
- 성능 문제
- 사용자 인터페이스 설계
- 트로토타입을 어떻게 사용할 것인가?
- 정확성: 적절히 가짜 데이터를 사용할 수 있다.
- 완전성: 프로토타입은 제한된 방식으로만 작동하기도 한다. 어쩌면 미리 선정한 입력 데이터 하나와 한 가지 메뉴 항목만 작동해도 될 것이다.
- 안정성: 오류 검사를 빼먹거나 아예 무시할 수도 있다.
- 스타일: 프로토타입 코드에는 주석이나 문서가 많지 않아야 한다.
- 트로토타이핑 대상
-
도메인 언어
- 내부 도메인 언어는 호스트 언어의 기능을 쓸 수 있는 장점이 있다.
- 내부 도메인 언어의 단점은 호스트 언어의 문법과 의미론을 따라야만 한다는 것이다.
- 외부 언어는 호스트 언어의 문법과 의미론을 따라야한다는 제약이 없다.
-
추정
- 추정으로 놀람을 피하라.
- 비슷한 상황에 처했던 사람이 없는지 주변 사람들에게 문의해 보고, 똑같은 일을 해 본 사람을 찾기는 어렵겠지만, 놀라울 정도로 자주 다른 사람의 경험을 바탕으로 성공적인 추정치를 낼 수 있을 것이다.
- 모델을 컴포넌트로 나눠라
- 각 매개변수에 값을 할당하라: 결과에 가장 큰 영향을 미치는 매개 변수를 찾아서 이 매개 변수의 값을 최대한 정확하게 산출해 내는 것이다.
- 누군가 추정해 달라고 하면 뭐라고 대답해야 할까?
- “나중에 연락드릴게요.”라 말해야 한다. 커피 머신 앞에서 허투루 말한 추정치는 커피와 마찬가지로 여러분에게 해를 끼칠 것이다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
-
예광탄 파트에 대한 설명을 잘 이해하지 못했다. 내가 생각하기로는
사용자가 뭔가 작동하는 것을 일찍부터 보게 된다
라는 문구로 보아서 프로토타입과 비슷한 것인가? 라고 생각했으나프로토타입은 최종 시스템의 어떤 특정한 측면을 탐사해 보는 것이 목표다
라는 부분을 보고 더 의문에 빠지게 되었다. -
도메인 부분의 연습문제에 대한 이해가 힘들다. 연습문제의 정답을 보고, 내가 잘 아는 언어인 Javascript 로 작성된 정답을 보아도 이해하기가 힘들었다 ㅠㅠ