(코드 그렇게 짜면 안돼!!!!!!멈춰!)
저번 인공지능 스쿨 프로젝트를 마무리하고 난 후
코드를 짜는것에 대해 조금 더 업그레이드 하기위해 책을 구매했다.
(위 책들의 리뷰는 다음에 작성하겠다..) 기술부채 또 시작..?
부채라는 단어가 딱 어울리는 말이다. 코드는 지금 바꾸는 것 보다 미래에 변경하는 것이 더 어렵기 때문에 부채이다. 부채는 이자는 유발한다. 기술 부채가 발생했다는 것은 내일은 코드를 수정하기가 더 어렵고 비싸며 내일 모레는 더더욱 비싸질 것이라는 뜻이다.😳
리펙터링 : [명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 [리펙토링 2판 리펙터링 원칙 79page]
다른 사람을 배려하기 위해서가 아니다. 사실 그 다른 사람이 바로 나 자신일 때가 많다.🙈
[리펙터링 2판 82page]
"난 뛰어난 프로그래머가 아니에요, 단지 뛰어 난 습관을 지닌 괜찮은 프로그래머일 뿐이에요💁"
[리펙터링 2판 83page]
리펙터링을 "클린 코드나," '바람직한 엔지니어링 습관' 처럼 도덕적인 이유로 정당화 하는것이다.
리펙터링의 본질은 코드 베이스를 예쁘게 꾸미는 데 있지 않다. 오로지 경제적인 이유로 하는 것이다.
자가 테스트 코드와 리팩터링을 묶어서 테스트 주도 개발(TDD)이라 한다. (😳TDD가 이런거였구나..)
애자일을 제대로 적용하려면 리팩터링에 대한 팀의 역량과 열정이 뒷받침되어 프로세스 전반에 리팩터링이 자연스럽게 스며들도록 해야 한다.
"직관적인 설계 vs 성능"은 중요한 주제이다.
빠른 소프트웨어 작성하는 방법
대부분 프로그램은 전체 코드 중 극히 일부에서 대부분의 시간을 소비한다는 것이다
의도적으로 성능 최적화에 돌입하기 전까지는 성능에 신경 쓰지 않고 코드를 다루기 쉽게 만드는데 집중한다.
최적화 단계가 되면 다음의 구체적인 절차를 따라 프로그램을 튜닝 한다.
프로파일러로 프로그램을 분석하여 시간과 공간을 많이 잡아먹는 지점을 알아낸다.