Community

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

← Go back
TIL 5장 구부러지거나 부러지거나
#pragmatic
2년 전
1,091

오늘 TIL 3줄 요약

  • 빠른 변화 속도를 따라가려면 모든 수단을 동원하여 가능한 한 느슨하고 유연한 코드를 작성해야 한다.

  • 5장 구부러지거나 부러지거나에서는 되돌릴 수 있는 의사 결정을 내리는 구체적인 방법에 대해 설명한다.

  • 유연함을 유지하는 한 가지 좋은 방법은 가능한 한 코드를 적게 작성하는 것이다.

TIL (Today I Learned) 날짜

  • 2022.03.26


오늘 읽은 범위

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


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

Topic 28 결합도 줄이기

  • 우리가 어떤 것 하나만 골라내려고 해도, 그것이 우주의 다른 모든 것과 엵혀 있음을 깨닫게 된다.

  • 높은 결합도는 변경의 적이다. 결합도가 높으면 이리저리 연결되어 있어서 여러 가지를 동시에 바꿔야 하기 때문이다. 여기서 결합도란 코드 조작 간의 의존 정도이다. 이는 낮을수록 좋다.

  • 소프트웨어를 설계할 때는 언젠가 형태를 바꾸려 할 것을 생각해야 한다. 소트프웨어 구조는 유연해야 하기 때문이다. 유연하려면 각각의 부품이 다른 부품에 가능한 한 조금만 연결되어야 한다.

  • 결합도가 낮은 코드가 바꾸기 쉽다.

  • 묻지 말고 말하라. 다른 객체의 내부 상태에 따라 판단을 내리고 그 객체를 갱신해서는 안 된다.

  • 메서드 호출을 엮지 말라. 무언가에 접근할 때 "."을 딱 하나만 쓰려고 노력하라.

  • 전역 데이터 하나하나는 애플리케이션의 모든 메서드에 갑자기 매개 변수가 추가된 것과 같은 효과를 낸다.

  • 결국은 모두 ETC! 직접적으로 아는 것만 다루는 부끄럼쟁이 코드를 계속 유지하라.

Topic 29 실세계를 갖고 저글링하기

  • 그냥 일어나는 일은 없다. 일어나도록 만들어진 것이다.

  • 이벤트는 무언가 정보가 있다는 것을 의미한다.

Topic 30 변환 프로그래밍

  • 자신이 하고 있는 걸 하나의 과정으로 서술할 수 없다면, 자기가 뭘 하고 있는지 모르는 것이다.

  • 프로그램이란 입력과 출력을 바꾸는 것이라는 사고방식으로 돌아갈 필요가 있다.

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

Topic 31 상속세

  • 당신이 원한 것은 바나나 하나였지만, 당신이 받은 것은 바나나를 들고 있는 고릴라와 정글 전체다.

  • 상속도 일종의 결합이다.

  • 인터페이스나 프로토콜이 강력한 까닭은 이들을 타입으로 사용할 수 있고, 해당 인터페이스를 구현하는 클래스라면 무엇이든 그 타임과 호환되기 때문이다.

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

Topic 32 설정

  • 모든 물건은 제자리에 두고, 일은 모두 때를 정해서 하라.

  • 외부 설정으로 애플리케이션을 조정할 수 있게 하라.

  • 애플리케이션을 실행시켰을 때 설정 정보가 애플리케이션의 동작을 제어해야 한다. 설정 정보를 바꾸기 위해 코드 빌드가 필요해서는 안 된다.


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

  • 내가 지금까지 작성한 코드의 결합도가 어떤지 생각을 해볼 수 있었다. 지난 나는 결합도가 완전 최상이었지만 그래도 지금은 예전에 비하면 결합도가 많이 줄었다고 생각이 들지만 여전히 결합도에 대해서는 계속 고민하고 고쳐나가야 겠다.

  • 이번 장을 읽으면서 현재 프로젝트에 적용하고 있는 기술도 있었고 현재 배우고 있는 내용도 있었던 거 같다.(내가 글쓴이의 뜻? 의도?를 정확히 파악을 했으면...?)

  • 책을 읽으면 모르는 언어가 많이 나온다. 아직 내가 다룰 수 있는 언어가 많지 않기 때문이라고 생각한다. 다양한 언어를 배우고 싶고 특히 이 책에 자주 등장하는 루비를 배우고 싶다.