Community

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

← Go back

TIL 5장.구부러지거나 부러지거나

by ssg
#pragmatic
2년 전
695

오늘 TIL 3줄 요약

  • 결합도가 낮은 코드로 만들기

  • 자바스크립트의 다양한 디자인 패턴

  • 이벤트가 잘 일어나도록 의도적으로 만들어줘야 한다.

TIL (Today I Learned) 날짜

2022. 05. 21

오늘 읽은 범위

5장.구부러지거나 부러지거나

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

  • 결합도가 낮은 코드가 바꾸기 쉽다(p.184)

  • 결합도가 높은 코드의 증상(p.184)
    - 관계없는 모듈이나 라이브러리 간의 희한한 의존 관계


    - 한 모듈의 '간단한' 수정이 이와 관계없는 모듈을 통해 시스템 전역으로 퍼져 나가거나 시스템의 다른 곳에서 무언가를 깨뜨리는 경우


    -개발자가 수정하는 부분이 시스템에 어떤 영향을 미칠지 몰라 코드의 수정을 두려워하는 경우


    -변경 사항에 누가 영향을 받는지 파악하고 있는 사람이 없어서 결국 모든 사람이 참석해야 하는 회의

  • 묻지 말고 말하라(p.186)
    이 원칙은 다른 객체의 내부 상태에 따라 판단을 내리고 그 객체를 갱신해서는 안된다는 것이다.

  • 메서드 호출을 엮지말라(p.188)


    ex) 좋지 않는 방식들 예시
    amount = customer.orders.last().totals().amount


    --------------
    orders = customer.orders;


    last = orders.last();


    totals = last.totals();
    amount = totals.amount;

  • 전역 데이터는 여러가지 방법으로 코드의 결합도를 높인다.(p.190)

  • 코드를 재사용할 수 있게 하려면 깨끗한 인터페이스를 만들고 나머지 코드와의 결합을 없애야 한다.(p.190)

  • 전역 데이터를 쓰는 코드에 단위 테스트를 만들다 보면 이런 문제를 발견하게 된다. 그저 테스트를 실행하려는 것뿐인데 전역 환경을 생성하는 코드를 한참이나 써야한다.(p.190)

  • 싱글턴(singleton)도 전역데이터다.(p.191)

  • 외부 리소스도 전역 데이터다.(p.191)

  • 전역적이어야 할 만큼 중요하다면 API로 감싸라.(p.191)

  • 그냥 일어나는 일은 없다. 일어나도록 만들어진 것이다-존케네디(p.193)

  • 이벤트에 잘 반응하는 애플리케이션 만들기(p.194)


    -유한 상태 기계
    -감시자(observer)패턴
    -게시-구독
    -반응형 프로그래밍과 스트림

  • 자신이 하고 있는 걸 하나의 과정으로 서술할 수 없다면, 자기가 뭘 하고 있는지 모르는 것 이다-w.에드워즈 데밍(p.207)

  • 프로그래밍은 코드에 관한 것이지만, 프로그램은 데이터에 관한 것이다.(p.210)

  • 상태를 쌓아 놓지 말고 전달하라.(p.216)

  • 당신이 원한 것은 바나나 하나였지만, 당신이 받은 것은 바나나를 들고 있는 고릴라와 정글 전체다.-조 암스트롱(p.224)

  • 다향성은 인터페이스로 표현하는 것이 좋다.(p.230)

  • 믹스인으로 기능을 공유하라(p.235)

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

  • 앞장에서 얘기 했던 내용을 깊게 정리한 느낌이 들었다. 결합도 높은 코드를 쓰지말도록 노력해야해! 방법은 전역데이터 덜 쓰도록 노력하고 상속을 줄때 조심하고... 등등 하지말라는것보다 상황에 맞게 쓰라는 얘기를 하셨다.엄마의 잔소리 같기도....

  • 읽으면서 조금 벅찼다. 왜냐하면 비동기는 알고 있지만 아직도 헷갈리는 개념이고 디자인 패턴에 대해서 처음 알았다. 디자인패턴을 알려면 내가 보기엔 기초적인 지식부터 쌓고 디자인패턴에 대해서 공부하는 게 좋다는 생각이 들었다.

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

  • 싱글턴: 하나뿐인 객체

  • 싱글턴 패턴: 전체 시스템에서 클래스의 인스턴스를 하나만 존재하도록 하는 패턴

  • 이벤트 부분을 읽으면서 내가 제일 약한 부분인 '비동기'가 생각났다. 또 다시 공부해야겠다는 생각을 했다.

  • 파이프라인에 대해서 처음 알았다.
    파이프라인이 왜 사용되었는데 이해갔던 글이었다(https://dev.to/composite/javascript-25g9)

  • 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미