[노개북] 실용주의 프로그래머 #10

·2022년 4월 2일
0
post-thumbnail

📚 노마드 개발자 북클럽 aka. 노개북 - 실용주의 프로그래머 3주 완독 챌린지의 기록을 남긴다.
챌린지 이동

📝 TIL 2022.04.02

오늘 읽은 범위

7장. 코딩하는 동안

책에서 기억하고 싶은 내용을 써보세요.

cp.31 우연에 맡기는 프로그래밍

우연에 맡기는 프로그래밍을 하지 말라.

  • 마침내 컴포넌트가 화면에 나타나더라도 프레드는 이제 코드로 돌아가 여기서 불필요한 호출을 제거하려고 하지 않는다. "이제 돌아가는 거니까, 그래도 놔두는 것이 좋을거야.."(...) 지금 잘 작동하는 데 괜히 건드렸다 일을 만들 필요가 있을까? 우리는 그래야 할 몇 가지 이유를 생각해낼 수 있다. (p.275)

    • 정말로 제대로 돌아가는 것이 아닐지도 모른다. 우리에게만 그런 것처럼 보일 수도 있다.
    • 여러분이 의존하는 조건이 단지 우연인 경우도 있다. 다른 상황(예를 들어 화면 해상도가 다른 경우 등)에서는 이상하게 작동할지도 모른다.
    • 문서화되지 않는 동작은 라이브러리의 다음 릴리스에서 변경될 가능성이 있다.
    • 불필요한 추가 호출은 코드를 더 느리게 만든다.
    • 추가로 호출한 루틴 때문에 새로운 버그들이 코드에 들어올 가능성이 있다.

cp.33 리팩터링

일찍 리팩터링하고, 아주 리팩터링하라.

  • 코드를 다시 작성하기, 다시 작업하기 다시 설계하기는 총괄해서 '리팩터링'이라고 알려져 있다. (p.292)

  • 여러분의 코드를 리팩터링하는 것 - 기능을 이러저리 옮기고 이전에 내린 결정을 갱신하는 것 - 은 사실 고통 관리pain management 를 실천하는 것이다. 현실을 피하지 말자. 소스코드를 이곳저곳 변경하는 것은 굉장히 고통스러운 작업일 수도 있다. (p.293)

cp.34 테스트하기 쉬운 코드

테스트를 염두에 두고 설계하라.

  • 모듈을 설계할 때는, 심지어 루틴 하나를 설계할 때도 그것이 지켜야 할 계약과 계약을 지키는지 테스트하는 코드도 함께 설게해야 한다. (p.304)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 우연에 맡기는 프로그래밍 챕터에서 많이 뜨끔했다. 프로젝트 진행하면서 이게 어떻게 돌아가는 건지 의문스러운 코드들이 있었으나 일단 화면 상에서 작동은 되니, 제대로 뜯어볼 생각을 하지 않았었다. 애써 오류 가능성이나 다른 상황에서의 작동이 어떻게 달라질 지는 외면했던 과거의 나를 반성한다..
  • 이번 7장에서는 말로만 듣던 리팩토링의 개념을 배웠다. 프로젝트에서도 새로 코드를 작성하는 것보다, 기존에 작성해둔 코드를 유지보수하는 것이 더 힘들겠다는 것을 어렴풋이 느낄 수 있었는데 리팩토링은 그만큼 중요하고, 따라서 그 어려운 것을 정면돌파 해야함을 의미한다. 작성한 코드에 책임을 져야한다는 이전 챕터의 어느 구절이 떠오르기도 하는 대목이다.
profile
걸음마 개발 분투기

0개의 댓글