Topic 28 결합도 줄이기
- 서동우: 결합도가 낮은 코드로 만들자.
- 남혜민: 좋은 코드란 바뀌기 쉬운 코드이며 결합도가 낮다.
- 장준환: 결합도가 낮은 코드가 바꾸기 쉽다.
- 변현정: 직접적으로 아는 것만 다루는 부끄럼쟁이 코드를 계속 유지하라. 그러면 애플리케이션의 결합도를 낮게 유지할 수 있을 것이고, 결과적으로 코드를 바꾸기 쉬워질 것이다.
- 엄나윤:
- 높은 결합도는 변경의 적이다.
- 함수에서 함수로 데이터를 넘겨가며 데이터를 변환함으로써 숨겨진 구현 세부사항을 의존하지 않게 하고 정적 변수를 사용을 지양하라.
- 이정근:
- 한 모듈이 변경되거나 교체된다 하더라도 다른 모듈들은 변경 없이 수행될 수 있을것이다.
- 불필요한 의존이 많은 시스템은 유지 보수하기 어렵고, 이로 인해 비용이 많이 들며 시스템 자체가 매우 불안정한 경향이 있다.
- 하지만 결합도가 높으면 성능도 빠르고 직관적이다.
Topic 29 실세계를 갖고 저글링하기
- 서동우: 이벤트가 어디서 발생하든 이벤트를 중심으로 공들여 만든 코드는 일직선으로 수행되는 코드보다 더 잘 반응하고 결합도가 더 낮다.
- 남혜민: 이벤트에 잘 반응하는 애플리케이션은 상호작용이 더 원활하고 결합도가 낮으며 리소스를 효율적으로 사용할 수 있다.
- 장준환:
- 게시-구독 모델은 추가적인 결합없이 비동기 이벤트 처리를 구현하기에 아주 좋은 기술이다. 다른 기존 코드를 수정하지 않고 이벤트 처리 코드를 추가하거나 교체할 수 있다.
- 변현정: 이벤트가 어디서 발생하든 이벤트를 중심으로 공들여 만든 코드는 일직선으로 수행되는 코드보다 더 잘 반응하고 결합도가 더 낮다.
- 엄나윤: 컴퓨터의 한계에 사람이 맞추어야했다. 오늘날 사람이 컴퓨터에 맞추기보다는 컴퓨터가 우리세계안에 들어와야한다.
- 이정근:
- 서비스를 사용해서 설계하라
- 언제나 동시성을 고려해 설계하라
Topic 30 변환 프로그래밍
- 서동우: 프로그래밍은 코드에 관한 것이지만, 프로그램은 데이터에 관한 것이다.
- 남혜민: 자신이 하고 있는 걸 하나의 과정으로 서술할 수 없다면, 자기가 뭘 하고 있는지 모르는 것이다.
- 장준환: 하지만 코드 작성 방식은 기본적으로 크게 나뉜다. 오류 검사를 변환 안에서 하는 방식과 변환 바깥에서 하는 방식이다.
- 변현정: 자신이 하고 있는 걸 하나의 과정으로 서술할 수 없다면, 자기가 뭘 하고 있는지 모르는 것이다.
- 엄나윤: 자신이 하고있는 걸 하나의 과정으로 서술할 수 없다면 자기가 뭘하고있는건지 모르는 것이다. 코드를 일련의 변환으로 생각하는 접근방식은 프로그래밍을 해방시킨다. (하향식 접근/입력과 출력으로 바꿔 가는 단계를 찾으면 된다.)