책책책book/실용주의프로그래머

[실용주의 프로그래머] 스터디 4주차_2-2강 실용주의 접근법

햄❤️ 2022. 5. 30. 12:11
728x90

 

Topic 12. 예광탄

  • 예광탄을 사용하면 총알이 날아가는 궤적과 명중한 곳이 빛이나 연기로 확인이 되므로, 사수가 목표물에 대해서 정확한 사격을 할 수 있도록 큰 도움을 준다. 즉 소프트웨어에서는 가장 복잡한 곳의 코드를 제일 먼저 짜보는 것, 테스트 해보는 것
  • 예광탄 코드는 기능은 없지만 골격이 만들어지는 최초의 코드 -> 일관성, 생산성 증대, 디버깅 및 테스트 속도 증가
  • 예광탄은 지금 맞히고 있는 것이 무엇인지를 보여주는 것이지 꼭 목표물을 맞추는 것이 아니다. 목표에 맞을때까지 개발하는것이 바로 예광탄 개발 방법론!
  • 프로토타입은 나중에 버리는 코드를 만들지만, 예광탄 코드는 완결된 코드이며 골격의 일부가 된다.
    👉🏻 프로토타입 방식과 예광탄 방식의 전체적인 차이점?이 무엇인지 잘 모르겠다 스터디때 논의하기

 

Topic 13. 프로토타입과 포스트잇

  • 개발 전에 간단히 그려보는(꼭 코드가 아니여도) 것. UI를 프로토타이핑한다면 데이터는 가짜여도 상관없다. 심지어 언어까지도.. but 세부사항을 꼭 지켜야한다면 Topic12의 예광탄 방식이 더 적절하다.
  • 프로토타입의 대상: 위험을 수반하는 모든 것(아키텍쳐, 새로운 피쳐, 외부 데이터 구조, 성능, UX/UI, 외부 라이브러리 등)
  • 프로토타입의 핵심: 생산한 코드가 아닌 이를 통해 배우는 교훈, 전체적으로 시스템이 어떻게 동작할지 아는 것
  • 프로토타입에서 규명할 내용
    1. 주요 영역의 책임이 잘 정의되었고 적절한가?
    2. 결합도는 최소화 했는가?
    3. 중복이 발생할만한 곳이 있는가.
    4. 각 모듈이 실행중에 필요한 데이터에 접근할 수 있는 경로를 갖고 있는가? 모듈에 데이터가 필요한 시점에 데이터 접근이 가능한가?
  • 프로토타입을 적절히 사용하면 많은 시간, 돈, 고통을 줄일 수 있다. 개발 초기에 잠재적 문제를 발견할 수 있기 때문

 

Topic 14. 도메인 언어

  • 컴퓨터 언어는 문제에 대해, 의사소통에 대해 생각하는 방식에 영향을 미친다.
  • 그래서 문제 도메인에 가깝게 프로그래밍하면 시스템이 어떻게 동작해야 하는지 더 잘 알 수 있고, 해결방안을 제시하기도 한다

 

Topic 15. 추정

  • 모든 추정치는 문제의 모델에 기반한다. but 이미 해본 사람한테 물어보면 성공적인 추정치를 낼 수도 있다.
  • 시스템의 모델을 만들고, 모델을 컴포넌트로 나눠라. 각 컴포넌트가 전체 모델에 기여하는지 나타내는 매개 변수를 찾아 값을 할당하라.
    이 값을 최대한 정확하게 할당하라. 
  • 추정치를 기록해 놓고 나중에 실제 결과와 얼마나 가까운지 평가해보고, 왜 틀렸는지 규명해야할 것이다.
728x90