Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

TIL 6장. 코딩하는 동안 해야 할 일들

#pragmatic
3년 전
749

책이 개정판이 아니라 차례가 좀 다른 것 같습니다.
우선 제가 가진 책의 순서대로 6장(코딩하는 동안 해야 할 일들)의 내용을 바탕으로 정리했습니다.

오늘 TIL 3줄 요약

  • 우연에 맡기지 말고 의도적으로 프로그래밍 하라.

  • 성능을 측정하고, 코드를 리팩토링하고, 테스트 하라.

  • 자신이 이해하지 못하는, 마법사가 만들어 준 코드는 사용하지 말라.

TIL (Today I Learned) 날짜

2022.03.30

오늘 읽은 범위

6장. 코딩하는 동안 해야 할 일들

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

  • 다른 사람들이 호출할 코드를 작성할 때는 모듈화를 잘하거나 문서화가 잘된 작은 규모의 인터페이스 아래에 구현을 숨기는 것과 같은 기본 원칙들이 모두 도움이 된다.(p.276)

  • 확실한 것이 아닌데도 의존하고 있는 다른 것들은 어떤 것이 있을까?(p.276)

  • 가정하지 말라. 증명하라.(p.276)

  • 의도적으로 프로그래밍 하기(p.277)

    • 완전하게 이해하지 못한 애플리케이션을 빌드하려 하거나 익숙하지 않은 기술을 사용하려고 시도하는 행동은 하지 말라

    • 계획을 세우고 그것을 바탕으로 진행하라.

    • 신뢰할 수 있는 것에만 기대라

    • 여러분의 가정을 문서로 남겨라

    • 노력을 기울일 대상의 우선순위를 정하라.

    • 과거의 노예가 되지 말라.

  • 소프트웨어는 건축보다 오히려 정원일에 더 가깝다. 딱딱하기보다는 유기적인 존재다.(p.291)

  • 리팩터링은 언제해야하는가?(p.292)

    • 중복 발견

    • 직교성이 좋지 않은 설계

    • 유효기간이 끝난 지식

    • 성능

  • 일찍 리팩터링하고, 자주 리팩터링하라.(p.294)

  • 리팩터링해야 할 것들의 명단을 만들고 유지하라.(p.294)

  • 마틴 파울러 리팩토링 조언(p.296)

    • 리팩터링과 새로운 기능 추가를 동시에 하지 말라.

    • 리팩터링을 시작하기 전 든든한 테스트 집합이 있는지 먼저 확인한다.

    • 단계를 작게 나누어 신중하게 작업한다.

  • 모듈을 설계할 때는, 심지어 루틴 하나를 설계할 때도, 그것이 지켜야 할 계약과 계약을 지키는지 테스트하는 코드도 함께 설계해야 한다.(p.304)

  • 어떤 방식을 쓰든 간에 찾기 편한 위치가 아니면 쓰지 않게 될 것이라는 점을 기억하라.(p.305)

    • 여러분 모듈의 모든 기능을 어떻게 이용해야 하는지 보여주는 예제

    • 후일코드 변경시 검증하기 위한 회귀 테스트를 구축할 수 있는 수단

  • 테스트 윈도우를 만들기(p.311)

    • 추적 메시지를 담아 두는 로그 파일을 만든다.

    • 단축키를 제공한다.

    • 웹서버를 내장시킨다.

  • 테스트는 기술적이라기보다는 문화적인 것이다.(p.311)

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

  • 지금껏 나는 우연에 맡기는 코드를 짜고 있지는 않았나? 테스트가 준비되지 않은 코드는 사실상 우연에 맡긴 코드라고 할 수 있는 것 같다.

  • 테스트는 기술적이라기 보다는 문화적이라는 말이 가장 인상이 깊었다. ’테스트에 대해 더 이해하면 써야지’라고만 생각하고 지금까지 미뤄왔었다. 이 행동이 생각보다 위험한 생각이었다. 문화적으로 자리 잡지 않으면 아마도 내년에도 같은 생각을 하지 않을까

오늘 읽은 다른사람의 TIL