개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
직감에 귀 기울여라
의도적으로 프로그래밍 하라
알고리즘을 고려하고 리팩터링, 테스트를 실천하라.
TIL (Today I Learned) 날짜
2022. 04. 02
오늘 읽은 범위
7장. 코딩하는 동안
책에서 기억하고 싶은 내용을 써보세요.
실용주의 프로그래머는 모든 코드를 비판적인 시각으로 바라본다. 자기 자
신의 코드도 예외가 아니다.
가장 극단적인 경우에는 여러분이 호출한 루틴이 실제로는 그렇게 설계된 루틴이 아닌데도 여러분이 원하는 효과를 내는 것처럼 보일 수도 있다. 잘못된 순서 로 호출하거나, 잘못된 맥락에서 호출하는 것도 이와 관련된 문제다.
O() 표기법은 시간에만 국한되지 않는다. 알고리즘이 사용하는 어떤 리소 스든 O() 표기법으로 표현할 수 있다. 예를 들어 메모리 사용량을 모델링하 는 데에도 유용하다.
그리고 ‘성급한 최적화premature optimization’를 조심하라. 언제나 어떤 알고리 즘을 개선하느라 여러분의 귀중한 시간을 투자하기 전에 그 알고리즘이 정말 로 병목인지 먼저 확인하는 것이 좋다.
여러분의 코드를 리팩터링하는 것―기능을 이리저리 옮기고 이전에 내린 결 정을 바꾸는 것―은 사실 ‘고통 관리pain management’를 실천하는 것이다.
리팩터링과 기능 추가를 동시에 하지 말라.
어떻게든 TDD를 실천하라. 하지만 도중에 이따금 멈추어 큰 그림을 살피는 것을 잊지 말라
이렇게 코드에 존재하는 계약과 불변식을 뭉뚱그려서 ‘속성property’이라고 부른다. 코드에서 속성을 찾아내서 테스트 자동화에 사용할 수 있는데, 이것 을 ‘속성 기반 테스트property-based testing’라 한다.
최소한의 권한만을 꼭 필요한 시간만큼만 제일 짧게 부여하라는 게 또다른 핵심 원칙이다
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
실무에서도 여러번 코드 수정을 하다보면 우연에 의해서 내가 원하는 효과가 구현될 때가 있었다. 좀 찝찝하긴 해도 괜히 건드렸다가 원하는 효과마저 사라질까봐 그대로 뒀던 경험이 문득 떠올랐다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
데이터 바인딩
회귀 테스트regression test