[독서 일기] 2023-04-08 (토)
p.135~190 실행 컨텍스트, 콜스택, 활성 객체와 변수 객체, 스코프 체인. 함수는 생성되는 시점의 실행 컨텍스트를 참조. 클로저, 실행 컨텍스트는 사라져도 변수 객체를 참조한다. 함수로 클래스, 생성자, 메서드 구현. 상속 - 프로토타입 기반, 클래스 기반.
p.135~190 실행 컨텍스트, 콜스택, 활성 객체와 변수 객체, 스코프 체인. 함수는 생성되는 시점의 실행 컨텍스트를 참조. 클로저, 실행 컨텍스트는 사라져도 변수 객체를 참조한다. 함수로 클래스, 생성자, 메서드 구현. 상속 - 프로토타입 기반, 클래스 기반.
p.105~134 this 용법, 자바스크립트에선 특히 this가 가리키는 것이 다양해서 많이 강조가 된다. ES6 이후에는 arrow function으로 해결하지만, 전에는 var that = this; 생성자 함수, instanceof 연산자로 인스턴스 생성 강제하는 방법. 프로토타입, 자바스크립트가 객체지향을 구현하는 방법. 프로토타입 체이닝, 단방향.
p.98~104 함수를 리턴하는 함수 - 함수는 값이기 때문. argument 객체, ES6에서는 Rest Parameter 사용. this는 함수가 호출되는 방식에 따라 참조하는 것이 달라진다. 메서드를 호출할 때는 this는 해당 메서드를 호출한 객체로 바인딩된다. 함수를 호출할 때는 this는 전역 객체에 바인딩된다.
~p.98 자바스크립트를 언어를 다루는 책들을 많이 읽어봤는데 추천을 받아서 읽어보려고 한다, ES6 이전을 다룬다. 자바스크립트의 핵심 개념 - 객체, 함수, 프로토타입, 실행 컨텍스트, 클로저 자바스크립트의 객체 지향 프로그래밍(ES6 전이라 prototype을 이용한), 함수형 프로그래밍. 기본 타입 - Number, String, Boolean, undefined, null + Symbol, BigInt 참조 타입 - Object, Array, Function, Regex 숫자는 64비트 부동 소수점 typeof null은 object 참조 타입은 객체를 가리키는 참조 값을 저장한다. 객체 비교와 복사, 함수의 인자로 전달할 때 주의. 프로토타입 - __proto__, [[Prototype] 함수..
p.367~398 높은 생산성 유지하기 - 빠르게 가려면 제대로 가야 한다. (빌드, 테스팅, 디버깅, , 회의, 음악, 기분, 몰입, 시간관리) 팀으로 일하기 - 공동 프로그래밍. 정직하고 공정하게 추정하기 - 정직하고 확실하고 정밀하기. 불가능하다면 아니라고 할 수 있어야 한다. 존중 - 차별은 용납되지 않는다. 배우기를 멈추지 말라. (최소 주당 10~20시간)
p.295~366 프로그래밍 산업은 경험 부족이 끊임없이 계속되는 위태로운 처지에 있다. 세상에서 프로그래머의 역할은 너무나도 중요하고 바보 같은 행동을 한다면 수만 명의 사람이 죽을 수도 있다. 따라서 지켜야할 10가지 선서를 제안한다. 1. 해를 끼치지 말라. 2. 최선의 결과물을 만들어라. 3. 반복적인 증명을 만들어라. (테스트 코드) 4. 짧은 주기의 릴리즈를 가져라. (CI/CD) 5. 가차없이 개선하라.
p.252~294 공동 프로그래밍 - 함께 일해서 시스템 전반에 대한 지식을 팀 전체에 퍼트린다. 인수 테스트 - Arrange-Act-Assert, Given-When-Then. 테스트는 CI에 포함시킨다. # 생산성 절대 똥덩어리를 출시하지 않겠다. 낮은 수정 비용. 언제나 준비되어 있을 것. 안정적인 생산성. #품질 지속적 개선. 두려움을 이기는 능력. 극한의 품질. QA에게 떠넘기지 않고 테스트를 작성. 테스트 자동화. 테스트에서 UI와 Business Logic 분리. # 용기 서로를 대신할 수 있는 팀원이 될 것. 정직한 추정. '아니요'라고 말할 것. 지속적이고 적극적으로 학습. 신입 프로그래머를 위한 멘토링, 가르치는 것은 최고의 학습 방법.
p.233~251 설계의 핵심은 단순함. 추상화 수준을 맞추는 게 중요하다. YAGNI - 아마 필요하겠지만 필요하지 않다면? 단순한 설계에 대한 네 가지 규칙 1. 테스트를 통과한다. - 테스트 커버리지, 100%를 점근적 목표로. 2. 의도를 드러낸다. - 수준의 분리, 기반 추상화 3. 중복이 없다. - 진짜 중복과 우현한 중복의 구분 4. 가장 적은 수의 요소 - 함수 추출