본문 바로가기
Choi solyi/책

실용주의 프로그래머 Assignment #06 - 4장. 실용주의 편집증

by SOLYI 2022. 3. 24.

오늘 TIL 3줄 요약

  • 완벽한 소프트웨어를 만드는 것은 불가능하다.
  • "그런 일은 절대 일어날리 없다"는 없다.
  • 작은 단계를 밟아라. 언제나.

TIL (Today I Learned) 날짜

2022년 3월 24일

 

오늘 읽은 범위

4장. 실용주의 편집증

 

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

  • 여러분은 완벽한 소프트웨어를 만들 수 없다.
    • 삶의 공리로 인정하고 받아들여라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다. 그리 길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다.
    • (중략) 그래봐야 일관성을 확인하고 데이터베이스 칼럼에 제약을 거는 정도로 뿌듯해 하는 경우가 대부분이다.
  • 모든 프로그래머가 자기 경력을 쌓는 초기부터 암기해야 하는 계명이 있는것 같다. 요구사항, 설계, 코드, 주석 등 우리가 하는 거의 모든 것에 적용하도록 배우는 컴퓨팅의 근본 교리이자 핵심적 믿음이다. 그것은 이렇게 시작한다. "그런 일은 절대 일어날 리 없어" 이런식으로 자신을 기만하지말자, 특히 코딩할 때는.
  • 작은 단계들을 밟아라. 언제나.
    • 언제나 신중하게 작은 단계들을 밟아라. 더 진행하기 전에 피드백을 확인하고 조정하라. 피드의 빈도를 여러분의 제한 속도라고 생각하라. '너무 큰' 단계나 작업은 하지 않게 될 것이다.

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

  • 첫 문단이 강렬했지만 왠지 읽히지가 않았다.
  • 완벽한 소프트웨어를 만들어 갈 수 없다는 것을 인정하고 받아드리고, 최소한의 기능을 구현한 뒤 변경, 수정해서 살을 붙여 나가고 싶다.
  • 함부로 '절대로' 라고 단정 짓지 말자. 모든 경우의 수를 파악하는 것은 불가능하고 사람은 의도치 안헤 실수를 한다.
  • assert 를 활용해서 코드를 확인하자. 하지만 부작용도 있으니 쓸 때를 구분하자
  • 목표를 이루려면 한번에 너무 큰 목표를 이루려고 하지말고 그 목표를 이루기 위한 가능한 구체적이고 상세하고 작은 단위로 목표를 세우면 달성감과 동기부여가 생겨 그 큰 목표를 이루기 용이해진다. 어떤 책에서 비슷한 맥락의 내용을 읽었다. 그 후로 아주 작은 목표들을 가졌고, 반복적으로 작은 성공을 느껴가며 목표를 향해 나아가고 있다.
  • 개발 또한 비슷한 맥락이 아닐까? 이게 애자일 방식과 비슷한걸까?

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • DBC 구현
  • p.160 의 코드 부분. 실용주의 프로그래머라면 try catch 문을 쓰지 않는다
    • 1. 애플리케이션 코드가 오류 처리 코드 사이에 묻히지 않는다
    • 2. 코드의 결합도를 높이지 않는다.
    새로운 예외를 추가하면 이 코드도 조금이지만 갱신이 필요한 코드가 된다. 보다 실용적인 두번째 코드에서는 새로운 예외가 자동으로 전파된다. <- 이 부분이 이해가 되지 않았다. 그렇다면 예외처리를 어떻게 해준다는걸까?
반응형