3 ms·
Great idea. But it would be a mistake to start with GOF because GOF is not the beginning. I first encountered patterns reading Christopher Alexander's books, "A
by memracom 11y ago
Great idea. But it would be a mistake to start with GOF because GOF is not the beginning. I first encountered patterns reading Christopher Alexander's books, "A Pattern Language" and "The Timeless Way of Building". Although they were books about houses and other buildings, I was able to apply the ideas in building software on 80's minicomputers using Business Basic and COBOL.
Good architecture should be independent of materials including programming language, even though Alexanders books put heavy emphasis on how choosing good materials allows one to effortlessly apply his Pattern Language to build great buildings.
Also, Alexander's books made it clear that patterns are not building blocks. You need to use creative thinking to be able to combine them into a cohesive design, even adjusting the patterns to fit the situation and documenting your own personal set of patterns.
Too much of the post-GOF use of patterns treats them like fixed building blocks that have to be put together the way the book says, and if you deviate from the book, then you are doing it wrong. I think that is a mistaken way of thinking. It can be useful for a new developer to get over their first couple of years of learning how to build software, but since it is a crutch, using patterns as rigid building blocks will not get you far.