본문 바로가기

클린 소프트웨어2

[클린 소프트웨어] PART 2 - CHAPTER 7 - 애자일 설계란 무엇인가? 애자일 팀에서는 나중의 요구사항과 필요에 대해서는 그리 오래 생각하지 않는다. 그보다는, 현재 구조에 초점을 두고 더욱 개선하기 위해 노력한다. 잘못된 설계의 증상 Rigidity(경직성): 설계를 변경하기 어려움 - 변경을 하기 위해 시스템의 다른 부분들까지 많이 변경해야 하기 때문이다. Fragility(취약성): 설계가 망가지기 쉬움 - 변경을 하면 시스템에서 그 부분과 개념적으로 아무런 관련이 없는 부분이 망가진다. Immobility(부동성): 설계를 재사용하기 어려움 Viscosity(점착성): 제대로 동작하기 어려움 Needless Complexity(불필요한 복잡성): 과도한 설계 - 직접적인 효용이 전혀 없는 기반구조가 설계에 포함되어 있다. Needless Repetition(불필요한 .. 2022. 1. 18.
[클린 소프트웨어] PART 1 - CHAPTER 5 - 리팩토링 모든 소프트웨어 모듈에는 세 가지 기능이 있다. 실행 중에 동작하는 기능: 모듈의 존재 이유이다. 변경 기능: 대부분의 모듈이 생명주기 동안 변경 과정을 겪게 되고, 가능한 한 간단하게 그런 변경을 할 수 있도록 만드는 것이 개발자의 책임이다. 변경하기 어려운 모듈은 그것이 제대로 동작한다 하더라도 망가진 것이며 수리가 필요하다. 그것을 읽는 사람과 의사소통하는 기능: 개발자가 쉽게 읽고 이해할 수 있어야 한다. 모듈을 읽기 쉽고 변경하기 쉽게 만들기 위해서는 단순히 원칙과 패턴 이상의 그 무엇이 필요한데, 바로 주의력과 훈련이다. 주의력은 어떤 그냥 동작하게 만드는 것과 올바르게 동작하게 만드는 것의 차이이고, 프로그래머가 코드의 구조에 부여하는 가치와도 같다. 리팩토링? 외부 행위를 바꾸지 않으면서 .. 2022. 1. 14.