개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
완벽한 소프트웨어는 없다.
계약에 의한 설계를 하자
망치지 말고 멈춰라
TIL (Today I Learned) 날짜
2022. 05.22
오늘 읽은 범위
4장. 실용주의 편집증
책에서 기억하고 싶은 내용을 써보세요.
여러분은 완벽한 소프트웨어를 만들 수 없다.
삶의 공리로 인정하고 받아드려라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다.
실용주의 프로그래머는 자기 자신 역시 믿지 않는다. 어느 누구도, 심지어는 자기 자신도 완벽한 코드를 작성할 수 없음을 알기 때문에 실용주의 프로그래머는 자신의 실수에 대비한 방어책을 마련한다.
정확한 프로그램이란 무엇인가? 자신이 하는 일이라고 주장하는 것보다 많지도 적지도 않게 딱 그만큼만 하는 프로그램이다. 이 주장을 문서화하고 검증하는 것이 '계약에 의한 설계(Design By Contract, DBC)'의 핵심이다.
데이터를 전달하는 것은 호출하는 쪽의 책임이다.
코드를 작성하기 전에 유요한 입력 범위가 무엇인지, 경계 조건이 무엇인지, 루틴이 뭘 전달한다고 약속하는지, 혹은 더 중요하게는 무엇을 약속하지 않는지 등을 나열하는 것만으로도 더 나은 소프트웨어를 작성하는데에 엄청난 도움에 된다.
어겨서는 안 되는 고정된 규칙인 요구사항과 경영진이 바뀌면 얼마든지 없어질 수 있는 단순한 정책을 혼동하지 말아야 한다.
망치지 말고 멈춰라
자신이 시작한 것은 자신이 끝내라
작은 단계들을 밟아라. 언제나.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
DBC 계약에 의한 설계에 대한 내용을 읽고 완벽한 프로그래밍은 없지만 그에 가까워 지는 방법을 조금 알게 된것 같다. 또한 망치지 말고 멈추라는 내용은 개인적으로 신선했다. 어떤 방식으로든 멈추는것 보단 나을것이라 생각했는데, 잘못된 생각일 수도 있을것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
리소스 사용의 균형을 잡기 어려운 언어의 특징은 어떤식으로 개발해야 할까?
단정문과 테스트 코드의 정확한 차이?