Comentários
- Eu ' não tenho certeza se é isso que você ' estou pensando, mas encontro muito material de desenvolvimento inteligente no Forrst .
- Que tal um título de " Fontes de referência para padrões de projeto
ou " Recursos de padrão de design " (já que eu não ' t mean " referência " apenas " consulta sob demanda ") e mover todas as coisas da lista para o corpo (ou removê-las)?
Resposta
Padrões de design: elementos de software orientado a objetos reutilizáveis chega muito perto da minha definição de um livro canônico sobre padrões de design. De acordo com seu artigo da wikipedia (grifo meu):
A data de publicação original de o livro foi publicado em 21 de outubro de 1994 com direitos autorais de 1995 e, em julho de 2010, o livro estava em sua 38ª impressão . O livro foi disponibilizado ao público pela primeira vez na reunião OOPSLA realizada em Portland, Oregon, em outubro de 1994. Ele tem sido altamente influente no campo da engenharia de software e é considerado uma fonte importante para a teoria e prática de design orientado a objetos. Mais de 500.000 cópias foram vendidas em inglês e em 13 outros idiomas .
Ward Cunningham , um pioneiro dos padrões de design, mantém um catálogo online dos padrões do livro no WikiWikiWeb . E de acordo com o artigo da Wikipedia sobre padrão de design (novamente, ênfase minha):
Design patterns ganhou popularidade na ciência da computação depois que o livro Design Patterns: Elements of Reusable Object-Oriented Software foi publicado em 1994 pela chamada “Gang of Four” (Gamma et al.).
Existem vários outros livros referenciados no mesmo artigo que notável no gênero:
- Arquitetura de software orientada a padrões Volume 1: Um sistema de padrões , por Douglas Schmidt, Michael Stal, Hans Rohnert e Frank Buschmann,
- Patterns of Enterprise Application Architecture de Martin Fowler,
- Padrões de integração empresarial: projeto, construção e implantação de soluções de mensagens ., Por Hohpe, Gregor e Bobby Woolf, e
- Use Head First Design Patterns , de Eric T. Freeman, Elisabeth Robson, Bert Bates e Kathy Sierra.
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 online dos padrões incluídos no livro, com descrições mínimas.
Eu também folheei os Padrões de design do Head First, 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 :
Use a cabeça primeiro é uma série de livros de instrução introdutórios a muitos tópicos, publicados por O “Reilly Media. Ele enfatiza uma combinação não ortodoxa, visualmente intensa e envolvente do leitor de quebra-cabeças, piadas, design e layout não padronizados e um estilo conversacional envolvente para mergulhar o leitor em um determinado tópico.
O termo “padrão de design” é um tanto vago, já que toda solução reutilizável geral pode ser considerada um padrão de design. 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, os livros Gang of Four e Fowler. Os padrões de design não seguem um processo de desenvolvimento único, eles são soluções de software normais s que são imensamente reutilizáveis e são extremamente difíceis de identificar .
Mas se você comparar os catálogos online de ambos os livros com o conteúdo de livros específicos de um idioma, você notará que eles são frequentemente usados como modelos. Então, eu diria que ambos os livros estão muito próximos de serem canônicos referências, com o livro GoF sendo o mais importante de uma perspectiva histórica, embora ambos os livros sejam limitados a programação orientada a objetos .
Comentários
- +1. Na verdade, eu queria dar a você +5, mas, infelizmente, ' não é permitido.
- Toda a série de arquitetura de software orientada a padrões é sobre padrões em diferentes tipos de sistemas – O Volume 1 é sobre padrões arquitetônicos e padrões que cruzam domínios, o Volume 2 é sobre sistemas simultâneos, o Volume 3 é sobre gerenciamento de recursos em sistemas em rede / distribuídos, o Volume 4 é sobre sistemas distribuídos e o Volume 5 também é sobre linguagens de padrão como referência para os outros 4 volumes. Dada a pergunta, acho que o Volume 5 também pode ser aplicável, mas não ' não gastei muito tempo com ele … ainda.
- @Yannis este e o head first geralmente são baseados em linguagens estáticas. Existem bons livros para linguagens dinâmicas como python.
- @ ravi404 norvig.com/design-patterns
Resposta
Livro The Gang of Four – Design Patterns: Elements of Reusable Object- Software Orientado é provavelmente a coisa mais próxima que temos de um padrão da indústria em padrões de design.
Para uma introdução mais acessível, Use a Cabeça: Design Padrões também é bom. Não se desanime com a capa “na moda”, pois é uma boa leitura e provavelmente o ajudará a compreender os conceitos do livro GoF muito mais facilmente se você lê-lo primeiro.
Resposta
A qualquer momento, em algum lugar do mundo, alguém luta com os mesmos problemas de design de software que você. Você sabe que não quer reinventar a roda (ou pior, um pneu furado), então olha para os Design Patterns – as lições aprendidas por aqueles que enfrentaram os mesmos problemas. Com Design Patterns, você aproveita as melhores práticas e experiências de outras pessoas, para que possa gastar seu tempo em … outra coisa. Algo mais desafiador. Algo mais complexo. Algo mais divertido.
Você quer aprender sobre os padrões que importam – por que usá-los, quando usá-los, como usá-los (e quando NÃO usá-los). Mas você não quer apenas ver a aparência dos padrões em um livro, você quer saber como eles se parecem “na natureza”. Em seu ambiente nativo. Em outras palavras, em aplicativos do mundo real. Você também quer aprender como os padrões são usados na API Java e como explorar o suporte de padrão integrado do Java em seu próprio código.
Você quer aprender os princípios reais de design OO e por que tudo que seu chefe disse sobre herança pode estar errado (e o que fazer em vez disso). Você quer aprender como esses princípios ajudarão na próxima vez que você estiver em um riacho sem um padrão de design.
Mais importante, você quer aprender a “linguagem secreta” dos Padrões de Design para que possa segurar o seu próprio com seu colega de trabalho (e impressionar os convidados do coquetel) quando ele casualmente menciona seu uso incrivelmente inteligente de Command, Facade, Proxy e Factory entre goles de um martini. Você vai facilmente contra-atacar com seu profundo entendimento do motivo de Singleton Não é tão simples quanto parece, como o Factory é tão frequentemente mal interpretado, ou sobre a relação real entre Decorator, Facade e Adapter.
Com Head First Design Patterns , você evitará o constrangimento de pensar que Decorator é algo do programa “Espaços comerciais” …
Comentários
- Isso. É ' uma leitura muito acessível e mudou a forma Abordo completamente a engenharia de software.
- toda a série head first é ótima, especialmente para desenvolvedores iniciantes.
- Eu amo o livro, mas odeio a capa! Um colega não programador de o meu passou pelo meu escritório outro dia, viu o livro e disse " Padrões com a cabeça Designer ? Você está entrando no ramo da moda? "
- @Pete Por que a capa pode trazer mais problemas. Ela aparentemente vive uma vida dupla. fishbowl.pastiche. org / 2005/08/12 / …
Resposta
Sim, existe um livro bem conhecido sobre desig padrões n: Padrões de design: elementos de software orientado a objetos reutilizáveis e os autores são frequentemente chamados de “a gangue dos quatro” (GoF) e são referenciados em quase todos textos sobre padrões de projeto.
Comentários
- Também Martin Fowler ' livro do: amazon.com/Patterns-Enterprise-Application-Architecture-Martin/…
- Este é não um livro sobre padrões de projeto. É ' é um catálogo de padrões. Há ' uma breve introdução aos padrões de design no início, mas não ' não acho que a introdução seja suficiente.
- @J ö rgWMittag Há ' s isn ' um processo único de criação de design padrões, padrões de design são soluções reutilizáveis relativamente pequenas. Os padrões de design são criados através dos processos normais de desenvolvimento de software, o que os diferencia é sua imensa reutilização. O único processo exclusivo relevante é identificar uma solução como um padrão de design, e os catálogos fazem isso perfeitamente.
Resposta
Padrões de design: elementos de software orientado a objetos reutilizáveis
De wikipedia :
Padrões de projeto: elementos de software orientado a objetos reutilizáveis é um livro de engenharia de software que descreve soluções recorrentes para problemas comuns em software Projeto. Os autores do livro são Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides com um prefácio de Grady Booch. Os autores são frequentemente chamados de Gang of Four, GoF ou Go4. O livro é dividido em duas partes, com os dois primeiros capítulos exploram os recursos e armadilhas da programação orientada a objetos e os capítulos restantes descrevem 23 padrões clássicos de design de software. O livro inclui exemplos em C ++ e Smalltalk.
Resposta
Um dos melhores sites de padrões de design que existe é o Wiki de Ward, o primeiro wiki. Consulte http://c2.com/cgi/wiki?HistoryOfPatterns para uma boa página inicial.
Em 1987, Ward e Kent estavam fazendo consultoria para o Semiconductor Test Systems Group da Tektronix, que estava tendo problemas para finalizar um projeto. Eles decidiram experimentar o material de padrão que estavam estudando. Como Alexander, que disse que os ocupantes de um edifício deveriam projetá-lo, Ward e Kent permitiram que representantes dos usuários (um treinador e um engenheiro de campo) concluíssem o projeto.
Ward criou uma “linguagem” de cinco padrões que ajudou os designers novatos a tirar proveito dos pontos fortes de Smalltalk e evitar suas fraquezas …
Ward e Kent ficaram surpresos com a elegância (reconhecidamente espartana) da interface que seus usuários projetaram. Eles relataram os resultados de este experimento no OOPSLA 87 em Orlando. Eles escreveram uma posição de painel e apresentaram no workshop de Norm Kerth sobre De onde vêm os objetos? Eles falaram de padrões até ficarem com o rosto azulado muito acordo, mas sem padrões mais concretos, ninguém estava se inscrevendo.
Enquanto isso, Erich Gamma estava ocupado escrevendo e refletindo sobre o design orientado a objetos em ET ++ como parte de sua tese de doutorado. Erich percebeu que estruturas ou padrões de design recorrentes eram importantes. A questão realmente era como capturá-los e comunicá-los.
Bruce Anderson deu uma palestra no TOOLS 90 na qual ErichGamma estava presente; Erich gostou da conversa. Bruce apresentou um artigo na EcoopOopsla90 (Ottawa) e publicou um BOF chamado Toward an Architecture Handbook , onde ele, Erich Gamma, Richard Helm e outros discutiram sobre padrões.Essa foi a primeira vez que Richard e Erich se encontraram, e eles perceberam que compartilhavam ideias comuns sobre as principais ideias por trás da criação de software OO reutilizável.
Pouco antes do ECOOP “91 Erich Gamma e Richard Helm, sentados em um telhado em Zurique em um dia escaldante de verão, reuniu o início muito humilde do catálogo de padrões que eventualmente se tornariam DesignPatterns …
As coisas realmente começaram a acontecer no workshop OOPSLA que Bruce dirigiu em 1991 Coincidentemente, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides estavam todos lá; mais tarde, eles se tornariam a Gang of Four que escreveu o livro Design Patterns …
Resposta
Acho que a Refatoração para padrões pode ser útil simplesmente porque descreve como determinado design / código pode ser refatorado para padrões no livro GoF. Isso pode ajudar a superar a curva de aprendizado inicial. Ah, e também contempla “felicidade de padrões” 🙂
Você também pode achar os primeiros três volumes de Arquitetura de software orientada a padrões uma boa leitura.
Resposta
Este site de 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 gerais ao chegar ao padrão.
- Trechos 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.
Comentários
- O site SourceMaking parece simplista à primeira vista, mas ' s realmente uma ótima referência. Além dos padrões de design, alguns dos antipadrões de & gerenciamento de projetos de desenvolvimento e arquitetura são hilários. As soluções refatoradas podem realmente ajudá-lo a salvar uma reunião que ' está saindo dos trilhos. (Nada mal para uma referência de design pattern)
Resposta
O livro original, “Design Patterns: Elements of 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 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 uso. Também deve ser observado que as pessoas começaram a aplicar o formato de padrão a outras coisas, como gerenciamento de projetos.
Se você quiser saber sobre os antipadrões, dos quais você deve estar ciente, há dois livros, “Antipadrões: software de refatoração, arquiteturas e projetos em crise”, bem como “Refatoração: aprimorando o design do código existente”, que tem uma seção sobre odores de código, outro nome para antipadrões.
Resposta
“Agile Principles, Patterns and Practices in C #” de Robert C. Martin. 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 alguns conceitos excelentes, mesmo se você não optar pela abordagem DDD completa.
* Ubiquitous Language * Code first approach (vs. DB first) * etc.
Resposta
Se você está interessado especificamente em padrões de design em C ++, experimente Design C ++ moderno por Andrei Alexandrescu.
Este livro fala sobre como implementar o commonl y usou padrões como Factory, Singleton e Visitor em C ++. Ele também fala sobre tópicos muito específicos de C ++, como ponteiros inteligentes, metaprogramação de modelo e design de classe baseado em políticas.
O autor do livro é um especialista autorizado , conhecido por seu
trabalho pioneiro em design baseado em políticas implementado por meio de metaprogramação de modelo. Essas ideias são articuladas em seu livro Modern C ++ Design e foram implementadas pela primeira vez em sua biblioteca de programação, Loki. Ele também implementou o conceito de “mover construtores” em sua biblioteca MOJO. Ele contribuiu para o Jornal Usuários C / C ++ com a assinatura “Genérico < Programação >” …
Comentários
- você se importaria de explicar mais sobre o que faz e o que faz ' s bom para? " Respostas apenas de link " não são bem-vindas na Stack Troca
- @gnat: como ' é isso?
- bem, sua edição recente certamente parece uma melhoria para mim.Embora os leitores da resposta provavelmente se beneficiem de uma explicação mais detalhada de quem é Aleksandresku
- @gnat: já que você obviamente sabe quem ele é, sinta-se à vontade para editar minha resposta.