Existe um livro canônico sobre padrões de design? [fechadas]

43

Estou interessado em aprender padrões de design e gostaria de saber o que são considerados livros de primeira linha para aprender esse assunto.

Existe um livro lá fora que é o padrão de fato para descrever as melhores práticas, metodologias de design e outras informações úteis sobre padrões de design? Que tal esse livro torna especial?

    
por mW00t 08.12.2011 / 23:50
fonte

11 respostas

55

Padrões de design: elementos de software orientado a objetos reutilizáveis estão muito próximos da minha definição de um livro canônico sobre Padrões de design. De acordo com o seu artigo na wikipedia (grifo meu):

The original publication date of the book was October 21, 1994 with a 1995 copyright, and as of July 2010, the book was in its 38th printing. The book was first made available to the public at OOPSLA meeting held in Portland, Oregon, in October 1994. It has been highly influential to the field of software engineering and is regarded as an important source for object-oriented design theory and practice. More than 500,000 copies have been sold in English and in 13 other languages.

Ward Cunningham , pioneiro dos padrões de design, mantém um catálogo on-line dos padrões do livro em WikiWikiWeb . E de acordo com o artigo da Wikipedia sobre o padrão de design (mais uma vez, ênfase minha):

Design patterns gained popularity in computer science after the book Design Patterns: Elements of Reusable Object-Oriented Software was published in 1994 by the so-called "Gang of Four" (Gamma et al.).

Existem alguns outros livros mencionados no mesmo artigo que são notáveis no gênero :

Daqueles que li o livro de Fowler, é altamente influente e uma boa leitura. Em certos pontos é um pouco vago para o meu gosto, mas no geral é um livro agradável. Há um catálogo on-line dos padrões incluídos no livro, com descrições mínimas.

Eu também folheei o Head First Design Patterns, e se você leu qualquer outro livro da série Head First, é da mesma alta qualidade e tão agradável quanto a maioria dos livros da série :

Head First is a series of introductory instructional books to many topics, published by O'Reilly Media. It stresses an unorthodox, visually intensive, reader-involving combination of puzzles, jokes, nonstandard design and layout, and an engaging, conversational style to immerse the reader in a given topic.

O termo "padrão de design" é um pouco vago, já que toda solução geral reutilizável pode ser considerada um padrão de design. Eu sempre notei uma tendência de aplicar o rótulo nas soluções descritas em um dos livros notáveis que listei acima, e mais especificamente nos livros da Gang of Four e Fowler. Os padrões de design não seguem um processo de desenvolvimento exclusivo, eles são soluções normais de software que são imensamente reutilizáveis e são extremamente difícil de identificar .

Mas se você comparar os catálogos on-line de ambos os livros com o conteúdo de livros específicos de idiomas, perceberá que eles são usados como modelos. Então, eu diria que ambos os livros estão muito próximos de serem referências canônicas, sendo o livro GoF o mais importante do ponto de vista histórico, embora ambos os livros estejam limitados a programação orientada a objetos .

    
por 09.12.2011 / 00:06
fonte
27

O livro da Gang of Four - Padrões de design: elementos de software orientado a objetos reutilizáveis é provavelmente a coisa mais próxima temos um padrão industrial nos padrões de design.

Para uma introdução mais acessível, o Head First: Design Patterns também é bom. Não desanime com a capa da 'moda', pois é uma boa leitura e provavelmente ajudará você a entender os conceitos do livro GoF muito mais facilmente se você ler primeiro.

    
por 13.09.2010 / 11:51
fonte
22

At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun.

You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code.

You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern.

Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.

With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show...

    
por 13.09.2010 / 11:49
fonte
10

Sim, há um livro bem conhecido sobre padrões de design: Padrões de design: elementos do software orientado a objeto reutilizável e os autores são freqüentemente chamados de "Gang of Four" (GoF) e são referenciados em quase todos os textos sobre padrões de design.

    
por 08.12.2011 / 23:53
fonte
9

Padrões de design: elementos de software orientado a objetos reutilizáveis

Em wikipedia :

Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing recurring solutions to common problems in software design. The book's authors are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides with a foreword by Grady Booch. The authors are often referred to as the Gang of Four, GoF, or Go4. The book is divided into two parts, with the first two chapters exploring the capabilities and pitfalls of object-oriented programming, and the remaining chapters describing 23 classic software design patterns. The book includes examples in C++ and Smalltalk.

    
por 25.09.2010 / 23:23
fonte
3

Um dos melhores sites de padrões de design é o Wiki de Ward, o primeiro wiki. Veja link para uma boa página inicial.

In 1987, Ward and Kent were consulting with Tektronix's Semiconductor Test Systems Group that was having troubles finishing a design. They decided to try out the pattern stuff they'd been studying. Like Alexander who said the occupiers of a building should design it, Ward and Kent let representatives of the users (a trainer and a field engineer) finish the design.

Ward came up with a five pattern "language" that helped the novice designers take advantage of Smalltalk's strengths and avoid its weaknesses...

Ward and Kent were amazed at the (admittedly spartan) elegance of the interface their users designed. They reported the results of this experiment at OOPSLA 87 in Orlando. They wrote up a panel position, and presented at Norm Kerth's workshop on Where do objects come from? They talked patterns until they were blue in the face, and got a lot of agreement, but without more concrete patterns nobody was signing up.

Meanwhile, Erich Gamma was busy writing and reflecting about object-oriented design in ET++ as part of his PhD thesis. Erich had realized that recurring design structures or patterns were important. The question really was how do you capture and communicate them.

Bruce Anderson gave a talk at TOOLS 90 at which ErichGamma was present; Erich liked the talk. Bruce gave a paper at EcoopOopsla90 (Ottawa) and ran a BOF called Toward an Architecture Handbook where he, Erich Gamma, Richard Helm, and others got into discussions about patterns. That was the first time that Richard and Erich met, and they realized they shared common ideas about the key ideas behind writing reusable OO software.

Just prior to ECOOP'91 Erich Gamma and Richard Helm, sitting on a rooftop in Zurich on a sweltering summer's day, put together the very humble beginnings of the catalog of patterns that would eventually become DesignPatterns...

Things really got rolling at the OOPSLA workshop that Bruce ran in 1991. Coincidentally, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides were all there; they would later become the Gang of Four that authored the Design Patterns book...

    
por 13.09.2010 / 11:31
fonte
2

Eu acho que a Refatoração para Padrões pode ser útil simplesmente porque descreve como determinado desing / code pode ser refatorado para os padrões no livro GoF. Isso pode ajudar a superar a curva de aprendizado inicial. Ah, e também contempla a 'Padrão de felicidade':)

Você também pode encontrar os três primeiros volumes da Arquitetura de Software Orientada a Padrões como uma boa leitura.

    
por 23.12.2010 / 22:52
fonte
1

Padrões de design

Este site tutorial contém as seguintes subseções

  • Intenção de cada padrão de design
  • Estrutura do mundo real para o padrão de design
  • Uma declaração do problema
  • Discussão detalhada sobre o problema
  • Lista de verificação sobre como chegar a um padrão
  • Regras práticas ao chegar ao padrão.
  • Snippets de código para o padrão de design que inclui C #, C ++, Delphi, Java e PHP

Este site também contém um guia sobre Anti-padrões, UML e Refatoração.

    
por 02.10.2010 / 18:40
fonte
1

"Princípios Ágeis, Padrões e Práticas em C #", de Robert C. Martin. Eu acho que ele também tem uma versão Java do livro.

Além disso, não é um padrão em si, mas o Domain Driven Design tem ótimos conceitos, mesmo que você não use a abordagem DDD completa.

  * Ubiquitous Language
  * Code first approach (vs. DB first)
  * etc.
    
por 21.10.2010 / 22:41
fonte
1

Se você estiver interessado especificamente em padrões de design em C ++, tente Design Moderno em C ++ de Andrei Alexandrescu.

Este livro fala sobre como implementar padrões comumente usados como Factory, Singleton e Visitor em C ++. Ele também fala sobre tópicos específicos de C ++, como ponteiros inteligentes, metaprogramação de modelos e design de classes baseado em políticas.

O autor do livro é um especialista autorizado , conhecido por seu

pioneering work on policy-based design implemented via template metaprogramming. These ideas are articulated in his book Modern C++ Design and were first implemented in his programming library, Loki. He also implemented the "move constructors" concept in his MOJO library. He contributed to the C/C++ Users Journal under the byline "Generic<Programming>"...

    
por 15.10.2010 / 22:21
fonte
0

O livro original, "Padrões de Projeto: Elementos do Software Orientado a Objetos Reutilizáveis" é um bom recurso para padrões de projeto orientados a objetos.

Existem muitos outros livros por aí. Quando preciso de uma referência rápida e meu livro do GoF está fora de alcance, a Wikipedia normalmente tem informações suficientes sobre esses e outros padrões de design.

Esses são os principais que eu uso. Também deve ser notado que as pessoas começaram a aplicar o formato padrão a outras coisas, como gerenciamento de projetos.

Se você quiser saber sobre antipadrões, saiba que há dois livros, "AntiPatterns: Refatoração de Software, Arquiteturas e Projetos em Crise", bem como "Refatoração: Melhorando o Design do Código Existente" que tem uma seção sobre código cheira, outro nome para antipadrões.

    
por 15.10.2010 / 22:53
fonte