fkdl0048 / BookReview

It's a repo that reads and organizes books
MIT License
7 stars 0 forks source link

1장 깨끗한 코드 #59

Closed fkdl0048 closed 1 year ago

fkdl0048 commented 1 year ago

https://github.com/fkdl0048/BookReview/blob/main/CleanCode/Chapter01.md

rpopic2 commented 1 year ago

아아 정안님 여기에 댓글 달면 보이시나요.

저는 제가 존경하는 개발자 중 하나인 비야네 스트롭스트룹의 말이 가장 마음에 드는 말이었습니다. 나는 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리해야 한다. 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 깨끗한 코드는 한 가지를 제대로 한다.

정말 어떻게도 한 줄 한 줄 가슴에 와닿는 글귀인 것 같아요. 각 줄마다 자세히 이야기하고 싶지만.. 너무 당연한 이야기이도 하고 분량 조절에 실패할 것 같네요.

논의사항

진짜 급하게 짠 코드들은 반드시 나중에 문제를 불러일으키는 것 같아요. 좋지 못한 구조 중 기억나는 것은 두 가지 정도가 있는 것 같아요.

일단 예전에 OOP가 당연한 것이라고 생각하던 시절에, 5계층짜리 상속 구조를 만들어 굉장히 유지보수가 불가능한 코드가 나온 적이 있던 기억이 나네요. 상속은 깔끔한 코드를 만들지만, 대신 유지보수를 더 어렵게 만드는 것 같네요.

그리고 여러 클래스끼리 서로 순환 참조하며 스파게티 코드가 된 기억도 나네요. 다행히도 위에서 스트롭스트룹이, 또한 이 책 뒤에서 이야기한 것처럼 클래스가 한 가지만 하도록 바꾸어서 잘 해결한 기억이 나네요. 카드 덱을 짜는 기능에서 한 클래스는 카드 덱을 보여주고, 한 클래스는 카드 목록을 보여주고 한 클래스는 저장을 하고, 하는 식으로 해서 잘 나누어 두니 읽고 유지보수 하기 쉬워졌던 것 같아요

정안님 글 잘 읽었습니다!! 종종 와서 댓글 달아도 괜찮죠?

fkdl0048 commented 1 year ago

@rpopic2 우선 글을 남겨주셔서 너무 감사합니다..!(정말 언제든지x100 환영입니다)

나는 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리해야 한다. 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 깨끗한 코드는 한 가지를 제대로 한다.

지금 다시 읽어보니 또 새로운 느낌이네요.. 지금도 바탕화면 스티커 메모에 붙어있습니다 ㅎㅎ

한 줄마다 깊이가 다르고 좋은 내용들이라 볼 때마다 다른 의미로 다가오는 것 같습니다.

완벽한 육각형 스테이터스 느낌..

저도 합성, 구성의 단계를 몰랐을 때는 상속구조가 중복을 제거하고 가장 올바른 방법이라고 생각하고 작업한 적이 있습니다.

지금 생각하면 그 경험이 되게 좋은 반면교사라고 생각되고 경험해보지 않고는 왜 지양해야 하는 모를 것 같습니다.

지금도 공부 중이지만 인터페이스를 사용하여 우아하게 코드를 짜는 게 되게 멋지고 동경하게 되더라구요 아래 말씀해주신 스파게티 코드도 같은 맥락인 것 같습니다.

응집과 결합에 관한, 상속 그리고 합성에 관한 내용에 되게 깊이가 있던 책인 객체지향 사고 프로세스추천 드립니다.

같은 레포에 쓴 글이 있어서 훑어보시고 읽어보시면 좋을 것 같아요!

다시 한번 이야기 나눌 기회 주셔서 감사합니다!

rpopic2 commented 1 year ago

저야말로 정안님이랑 이야기할 수 있어서 너무 좋네요!! 저도 인터페이싱은 상속이랑 달리 좋은 방법이라고 생각합니다. 특히 합성을 사용하는 방식도 매우 좋은 방법임에 동감합니다 저는 사실 고백하자면 객체지향 진영의 큰 팬은 아니지만... 좋은 책 추천해주셔서 감사합니다! 다음에 또 다음 챕터 이야기 해봐요!