[노개북] 실용주의 프로그래머 #13

·2022년 4월 5일
0
post-thumbnail

📚 노마드 개발자 북클럽 aka. 노개북 - 실용주의 프로그래머 3주 완독 챌린지의 기록을 남긴다.
챌린지 이동

📝 TIL 2022.04.05

오늘 읽은 범위

9장. 실용주의 프로젝트


책에서 기억하고 싶은 내용을 써보세요.

cp.41 실용주의 팀

팀을 기능 중심으로 조직하라.

  • 팀 전체가 깨진 창문(아무도 고치려고 하지 않는 사소한 결점imperfection)을 용납하지 않아야 한다.
    팀은 상품의 품질에 대해 책임을 져야만 한다. (p.353)

cp.42 유비쿼터스 자동화

수작업 절차를 사용하지 말라.

  • 어떤 식으로든지 웹 콘텐트content 는 저장고의 정보에서 자동으로 생성되어 사람의 개입 없이 웹에 올라와야 한다.
    이는 실로 DRY 원칙의 또 다른 적용이다. 정보는 체크인된 코드와 문서의 두 가지 형태로 존재한다.
    웹브라우저에서 보이는 뷰는 단순히 뷰일 뿐이다. 그 뷰를 손으로 일일이 관리할 필요는 없다. (p.367)

cp.43 가차 없는 테스트

모든 테스트가 통과하기 전엔 코딩이 다 된 게 아니다.

  • 어떤 코드를 만들었다는 이유만으로 여러분의 보스나 클라이언트에게 완료되었다고 말할 수 있는 게 아니다. 그렇지 않다. 무엇보다도 코드는 결코 완료 될 수 없다.
    더 중요한 것은 코드가 모든 가능한 테스트를 통과하기 전까지는 누구에게건 사용가능하다고 주장할 수 없다는 것이다.(p.372)

  • 어떻게 테스트할까

    • 테스트 데이터
      • 테스트들을 실행하는 데이터에는 실세계 데이터와 합성 데이터 두 종류가 존재
      • 실세계 데이터는 현실에서 온다. 기존 시스템, 경쟁사의 시스템 혹은 어떤 종류의 프로토타입 등에서 자료를 수집한다.
        이는 전형적인 사용자 자료이다. 요구사항을 분석할 때 어떤 결함과 오해가 있었는지 알게 된다.
        합성synthetic 데이터는 어떤 통계적 조건하에서 인공적으로 생성된다. (p.378)

cp.44 결국은 모두 글쓰기

문서document 가 애초부터 전체의 일부가 되게 하고, 나중에 집어넣으려고 하지 말라.

  • 프로젝트에서 생산되는 문서에는 기본적으로 내부, 외부의 두 종류가 있다. 내부 문서에는 소스코드, 주석, 설계와 테스트 문서 등이 포함된다. 외부 문서에는 사용자 매뉴얼 같이 외부 세계로 출간되거나 출하되는 모든 것이 포함된다.
    하지만 누구를 독자로 생각하는지, 또는 작가의 역할(개발자 혹은 테크니컬 라이터)이 무엇인지 불문하고, 모든 문서는 코드의 거울이다. 불일치가 있다면 중요한 것은 코드다. 좋건 나쁘건. (p.386)
  • 소스 파일에 나타나야만 하는 가장 중요한 정보 중 하나는 저자의 이름이다. 꼭 최종 수정자일 필요는 없고 소유자면 된다.
    소스코드에 대한 책임감은 사람들이 정직해지도록 하는데 놀라우리만큼 효과적이다. (p.389)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 벌써 실용주의 프로그래머의 마지막 챕터. 마지막 챕터가 끝난 후 부록 시작 페이지에서, 저자들은 이 책의 주제가 이렇게 많을 수 있었던 건 그만큼 내용을 간략화했기 때문이라는 말을 한다. 이번 챕터를 읽고난 후 그것이 체감되었다. 실용주의 프로그래머로서의 자세, 프로젝트 내에서의 올바른 방향성, 도구와 전략 등을 액기스로 담아낸 이 책은 그야말로 이정표의 역할을 할 뿐, 앞으로 실전에서 부딪히며 배울 길이 무한히 뻗어있다는 것을 느끼게 해주었다.
  • 짧았던 한 달간의 팀 프로젝트를 진행하며 기능 구현 측면에서 역할을 분담한 것은 잘한 선택이라는 생각이 든다. 이번 9장에서 '결국은 모두 글쓰기'를 읽으면서, 지난 프로젝트를 돌이켜보며 아쉬움을 느꼈던 지점은 서로가 서로의 코드를 설명하고 면밀히 리뷰하는 시간이 없었다는 것이다. 프로젝트로서 하나의 웹을 구현해내는 것이었고 목적에 맞는 결과물을 만들어냈지만, 그 이전에 팀원들이 기능 구현을 어떤 방식으로 했는지 상세히 기술하고, 소스코드를 들여다볼 시간이 충분했다면 이후 프로젝트를 문서화하는 데에도 도움이 되었으리라 생각한다.
profile
걸음마 개발 분투기

0개의 댓글