Denne bog er ikke tilgængelig i streaming pt. men du kan uploade din egen epub- eller fb2-fil og læse den sammen med dine andre bøger på Bookmate. Hvordan overfører jeg en bog?
many a programmer picks up Design Patterns, gazes at a Structure diagram, and then begins coding. The result is code that exactly mirrors the Structure diagram, instead of a pattern implementation that best matches the need at hand.
rezafaizarahmanhar citeretfor 3 år siden
A refactoring is a "behavior-preserving transformation" or, as Martin Fowler defines it, "a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior"
rezafaizarahmanhar citeretfor 4 år siden
If you don't know patterns, you're less likely to evolve great designs. Patterns capture wisdom. Reusing that wisdom is extremely useful.
rezafaizarahmanhar citeretfor 4 år siden
Refactoring helps us do that by focusing our attention on removing duplication, simplifying code, and making code communicate its intention.
rezafaizarahmanhar citeretfor 4 år siden
Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.
rezafaizarahmanhar citeretfor 4 år siden
In general, it's useful to run all of your tests after refactoring to confirm that the code is behaving as you expect.
rezafaizarahmanhar citeretfor 4 år siden
Once again, test-driven development provides an effective way to reimplement and replace old code.
rezafaizarahmanhar citeretfor 4 år siden
Evolutionary design provides a better way. It suggests that you:
Form one team
Drive the framework from application needs
Continuously improve applications and the framework by refactoring
rezafaizarahmanhar citeretfor 4 år siden
Due to ignorance or a commitment to "not fix what ain't broken," many programmers and teams spend little time paying down design debt. As a result, they create a Big Ball of Mud [Foote and Yoder].
rezafaizarahmanhar citeretfor 4 år siden
Design debt occurs when you don't consistently do three things.