개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
의도적으로 프로그래밍 해야 한다.
일찍 리팩터링하고 자주 리팩터링한다.
테스트를 계획하고 설계하고, 사용자에게 테스트를 맡기기 전에 테스트한다.
TIL (Today I Learned) 날짜
2022.03.29-2022.03.30
오늘 읽은 범위
6장. 코딩하는 동안 해야 할 일들
책에서 기억하고 싶은 내용을 써보세요.
우연적 구현
😱 “이제 돌아는 가니까, 그대로 놔두는 것이 좋을 거야...”
😱 제대로 돌아가는 것이 아닐지 모른다. 우리에게만 그런 것처럼 보일 수 있다.
😱 불필요한 추가 호출과 새로운 버그의 유입 가능성
의도적으로 프로그래밍하기
신뢰할 수 있는 것에만 기대라. 최악의 상황을 가정한다.
내 가정을 문서로 남긴다.
노력을 기울일 대상의 우선순위를 정하라.
알고리즘의 속도
big O notation 근사값을 기록하는 방식.
상식을 통해서도 간단한 알고리즘의 차수를 측정할 수 있다.
정확하게 시간을 재는 일이 어렵다면, 코드 프로파일러를 사용한다.
성급한 최적화를 조심하자.
리팩터링
소프트웨어 개발의 현실은 정원을 가꾸는 것과 비슷하다.
리팩터링은 코드를 다시 작성하기, 다시 작업하기, 다시 설계하기.
리작
코드의 중복
직교성이 좋지 않은 설계
유효기간이 끝난 지식
성능 개서
리팩터링을 하지 않는 가장 주된 이유 “일정", 하지만 “종양"이라고 생각하면..? 😱
일찍 리팩터링하고, 자주 리팩터링하자.
마틴 파울러의 리팩터링 가이드
손해보다 이득이 큰 방향으로
새로운 기능 추가를 동시에 하지 말라.
리팩터링 전 든든한 테스트 집합이 있는지 확인한다.
단계를 작게 나누어 작업한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
알고리즘 강의를 (힘들게) 수강했던 기억이 나서 반가웠다. 그리고 거기서 알고리즘 공부가 그쳤다는 것을 상기했다. “일정"이라는 핑계로 의도적인 프로그래밍(더불어 너무 많은)을 하지 못했다. 일단 전체적으로 아키텍쳐 설계와 계획이 너무 부족하다는 생각이 든다. 더불어 마법사의 힘을.. 많이 빌려왔던 것 같다. + 다른 분들의 TIL를 읽어보니 진도가 좀 다른 것 같다. 😭
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
알고리즘 수행시간을 줄이기 위한 휴리스틱 동원..
오늘 읽은 다른사람의 TIL
https://nomadcoders.co/community/thread/4100
→ 개정판이 아니라서 챕터 차이가 있었나 봅니다.. 😞 점점 챕터의 간극이 벌어지고 있는 것 같은데..? 내년에도 같은 생각을 하고 있지 않을까에서 뼈맞았다. 나 또한 이번 챕터를 읽으며 예전에 배웠지만 거기까지였던 기억이 떠올랐다.