개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
완벽한 소프트웨어를 만드는 것은 불가능하다.
"그런 일은 절대 일어날리 없다"는 없다.
작은 단계를 밟아라. 언제나.
TIL (Today I Learned) 날짜
2022년 3월 24일
오늘 읽은 범위
4장. 실용주의 편집증
책에서 기억하고 싶은 내용을 써보세요.
여러분은 완벽한 소프트웨어를 만들 수 없다.
삶의 공리로 인정하고 받아들여라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다. 그리 길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다.
(중략) 그래봐야 일관성을 확인하고 데이터베이스 칼럼에 제약을 거는 정도로 뿌듯해 하는 경우가 대부분이다.
모든 프로그래머가 자기 경력을 쌓는 초기부터 암기해야 하는 계명이 있는것 같다. 요구사항, 설계, 코드, 주석 등 우리가 하는 거의 모든 것에 적용하도록 배우는 컴퓨팅의 근본 교리이자 핵심적 믿음이다. 그것은 이렇게 시작한다. "그런 일은 절대 일어날 리 없어" 이런식으로 자신을 기만하지말자, 특히 코딩할 때는.
작은 단계들을 밟아라. 언제나.
언제나 신중하게 작은 단계들을 밟아라. 더 진행하기 전에 피드백을 확인하고 조정하라. 피드의 빈도를 여러분의 제한 속도라고 생각하라. '너무 큰' 단계나 작업은 하지 않게 될 것이다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
첫 문단이 강렬했지만 왠지 읽히지가 않았다.
완벽한 소프트웨어를 만들어 갈 수 없다는 것을 인정하고 받아드리고, 최소한의 기능을 구현한 뒤 변경, 수정해서 살을 붙여 나가고 싶다.
함부로 '절대로' 라고 단정 짓지 말자. 모든 경우의 수를 파악하는 것은 불가능하고 사람은 의도치 안헤 실수를 한다.
assert 를 활용해서 코드를 확인하자. 하지만 부작용도 있으니 쓸 때를 구분하자
목표를 이루려면 한번에 너무 큰 목표를 이루려고 하지말고 그 목표를 이루기 위한 가능한 구체적이고 상세하고 작은 단위로 목표를 세우면 달성감과 동기부여가 생겨 그 큰 목표를 이루기 용이해진다. 어떤 책에서 비슷한 맥락의 내용을 읽었다. 그 후로 아주 작은 목표들을 가졌고, 반복적으로 작은 성공을 느껴가며 목표를 향해 나아가고 있다.
개발 또한 비슷한 맥락이 아닐까? 이게 애자일 방식과 비슷한걸까?
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
DBC구현
p.160 의 코드 부분. 실용주의 프로그래머라면 try catch 문을 쓰지 않는다
1. 애플리케이션 코드가 오류 처리 코드 사이에 묻히지 않는다
2. 코드의 결합도를 높이지 않는다.
새로운 예외를 추가하면 이 코드도 조금이지만 갱신이 필요한 코드가 된다. 보다 실용적인 두번째 코드에서는 새로운 예외가 자동으로 전파된다. <- 이 부분이 이해가 되지 않았다. 그렇다면 예외처리를 어떻게 해준다는걸까?