Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL.2장_ 실용주의 접근법 (1/2)
by bora
#pragmatic
2년 전
794

오늘 TIL 3줄 요약

  • Easier to Change = ETC. 바꾸기 더 쉽게.

  • 모든 지식은 시스템 내에서 단 한번만, 애매하지 않고, 권위 있게 표현되어야 한다.

  • 유행을 좇지 말라.

TIL (Today I Learned) 날짜

2022년 5월 15일 ~ 16일

오늘 읽은 범위

2장 실용주의 철학

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

  • 왜 단일 책임 원칙이 유용한가? 요구사항이 바뀌더라도 모듈 하나만 바꿔서 반영할수 있기 때문이다.

  • 교체 가능하게 작성하나느 말은 코드의 결합도를 낮추고 응집도를 높이라는 이야기일 뿐이다.

  • 프로그래머는 늘 유지 보수 모드에 있다.

  • 이유가 무엇이건, 유지 보수는 별개의 활동이 아니며 전체 개발 과정의 일상적인 부분이다.

  • DRY는 지식의 중복, 의도의 중복에 대한 것이다.

  • 시간이 지남에 따라 주석과 코드의 내용이 서로 어긋나게 될 거라고 거의 확실히 장담할 수 있다.

  • 가능하다면 언제나 객체의 속성을 읽고 쓸 때 접근자 함수를 사용하라.

  • 개발자간의 중복에 대처하려면 크게는 의사소통을 잘하는 튼튼하고 유대가 돈독한 팀을 만들어야 한다.

  • 접근은 상호적이다, 다른 사람이 여러분의 코드를 들여다보고 건드린다고 해서 기분 나빠하지 말 일이다.

  • 하나가 바뀌어도 나머지에 어떤 영향도 주지 않으면 서로 직교한다고 할 수 있다.

  • 자신의 힘으로 제어할 수 없는 속성에 의존하지 말라

  • 코드의 결합도를 줄여라. 전역 데이터를 피하라. 유사한 함수를 피하라.

  • 결정이 돌에 새겨진 것이 아니라 바닷가의 모래 위에 쓰인 글씨라 생각하라. 언제든지 큰 파도가 글씨를 지워버릴 수 있다.

  • 싱글턴을 사용할 때는 주의를 기울여라. 싱글턴은 불필요한 결합을 만들 수 있다.

  • 사실 무수한 외부라이브러리와 도구에 의존하는 요즘의 프로젝트 초기 설정은 매우 복잡해졌다. 그래서 예광탄은 더욱 중요하다

  • 예광탄 개발방법은 '프로젝트는 결코 끝나지 않는다.'는 견해와도 일맥상통한다. 변경 요청과 기능 추가 요청은 언제나 계속 들어오기 마련이다.

  • 예광탄 개발 방법은 점진적인 접근 방법이다.

  • 프로토타입은 최종 시스템의 어떤 특정한 측면을 탐사해 보는 것이 목표다.

  • 진짜 프로토타입 방식을 따른다면 프로토타입은 어떤 개념을 실험해 보느라 대충 끼워 맞추어 구현한 것이므로 모두 버려야 한다. 그리고 실험 과정에서 얻은 교훈을 바탕으로 코드를 새로 작성한다.

  • 프로토타입은 나중에 버리는 코드를 만든다. 예광탄 코드는 기능은 별로 없지만 완결된 코드이며, 최종 시트템 골격 중 일부가 된다.

  • 프로토타이핑의 목적은 전체적으로 시스템이 어떻게 동작할지에 대해 감을 잡는 것이다. 다시 말하지만, 세부 사항은 무시한다.

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

  • 도전해 볼 것에서 나온 내가 “일상적으로 사용하는 설계 원칙을 떠올려 보라.” 한참을 생각해봤다. 구체적으로 나만의 원칙을 세우고 코딩을 시작하지는 않았지만, 생각해보면 나만의 고집(?) 이라고 불릴만한건 몇가지 있다.

  1. 함수명, 변수명은 의미있게 사용한다. 무의미하게 축약하지 않기

  2. 주석은 최소한으로, 코드를 읽어서 이해할 수 있도록 한다.

  3. 코드 줄 바꿈은 매너. 가독성이 좋도록 코드의 줄바꾸 및 들여쓰기는 반드시 지키기

  4. 개발을 하다가 중복되는건 로직은 귀찮더라고 함수로 추출하도록 한다. ..... 근데 이런 것들이 무언가를 바꾸기 쉽게 만들려는 의도는 아니였지만, 책을 읽다보니 다행히도 나쁜 습관은 아닌 것 같아 안도감이 들었다.

  • 개발자간의 중복에 대하서 나와있는 부분은, 요즘에서야 코드리뷰라는게 많이 나오는데, 예전만해도 코드리뷰는 -실제 내가 진행했던 프로젝트기준- 100% 이루어지지 않았다. 개발 기간을 맞추는데 급급했고, 다른 사람들에게 내 코드를 공개하는게 사실 좀 부끄러웠던 것 같기도..? 하지만 작년에 처음 코드리뷰를 해보았고, 생각보다 훨씬 큰 장점을 직접 느껴보니.. 앞으로는 꾸준한 코드리뷰. 나의 코드리뷰 뿐만 아니라 팀원의 코드에도 관심을 가지고 함께 리뷰하는 시간을 규칙적으로 가지도록 해야겠다는 다짐을 다시 한번.!!!

  • 다중 상속과 다중 인터페이스 사용이 직교성에 끼치는 영향이 다른가? 상속은 자식 클래스에 코드를 공유하여 함께 사용하지만, 인터페이시는 구현받는 클래스에서 기능을 구현하여 각자 독립적으로 사용 할 수 있으므로 다중 인터페이스가 직교성이 더 좋을 것으로 생각된다..

  • 사실 부끄럽지만 개발 경력은 적지 않지만, 개념에 대한 공부를 많이 하지 않아서 책을 읽으면서 이게 이런 뜻이고, 이 단어 개념은 뜻은 알고 있었는데 이걸 부르는 명칭은 몰랐던 것도 있고.. ㅎㅎ 아무튼 학생 이후로 요즘 다시 새롭게 공부하는 기분이라 참 새롭다.. 어렵기도 하고. ^^;;

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 도메인언어 연습 문제는 하나도 감이 안왔다 ㅠ 좀 더 자세히 알아봐야할듯.. 실제 프로젝트 시작때 많은 도움이 될지... 공부해봐야겠다!

오늘 읽은 다른사람의 TIL