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