Ken Pugh 가 쓴 명저로 졸트(Zolt)상을 수상한 책이다.
prefactoring 이란, 경험으로 부터 얻은 소프트웨어 개발에 관한 통찰력을 새 프로젝트에 응용하는 것이다.
( THE ART OF PREFACTORING APPLIES TO NEW PROJECTS THE INSIGHTS INTO DEVELOPING SOFTWARE YOU HAVE GLEANED FROM YOUR EXPERIENCE, as well as the experience of others, in developing software to new projects. )
Refactoring 이 이미 만들어진 코드의 내부구조를 개선하는 것이고 prefactoring 은 만들고 있는 코드를 위한 것으로 볼 수 있다.
책의 내용은 가상의 소프트웨어 프로젝트를 진행하면서 design, code, testing 에 관한 guideline 및 design principle 을 제시한다. guideline 및 principle 하나하나가 녹록한 경험에 의한 산물로 보인다. 더러는 너무 쉽고 당연한 것도 있고 이해하기 힘든 추상적인 것도 있다. 하지만 대부분은 간결한 문장으로 정리되었으면서도 깊이있고 공감이 가게되는 주옥같은 표현의 지침들이다.
접근하기 쉬워 보이는 것들만 소개한다.
Guidelines
==========
(Big Picture)
Don't Reinvent the Wheel
Think About the Big Picture
Don't Repeat Yourself (DRY)
Plan Globally, Develop Locally
(Extreme Abstraction)
Splitters Can Be Lumped More Easily than Lumpers Can Be Split
Never Let a Constant Slip into Code
(Extreme Separation)
Adapt a Prefactoring Attitude
Do a Little Job Well and You May Be Called Upon Often
Decouple with Associations
(Extreme Readability)
A Rose by Any Other Name Is Not a Rose
Communicate with Your Code
The Easiest Code to Debug Is That Which Is Not Written
Use the Client's Language
(Interfaces)
Test the Interface, Not the Implementation
(Error Handling)
Report Meaningful User Messages
Never Be Silent
(General Issues)
Don't Speed Until You Know Where You Are Going
Consistency Is Simplicity
Plan for Testing
More Is Sometimes Less
Software Design Principles
==========================
Well-Defined Interfaces
Decomposition and Modularity
Prioritized Requirements
Abstraction
Information Hiding
Extensibility
Hierarchy
Separation of Concerns
Packaging
WRITTEN BY