Pergunta

Quando se trata do uso de padrões de projeto, eu estou supondo que há três tipos de lojas. Aqueles que não saberia um padrão se ele bater-lhes no rosto - estes geralmente preferem a abordagem Ctrl-C / Ctrl-V para code-reutilização. Aqueles que gastam horas por dia procurando o seu código legado na esperança de implementação de mais um grande padrão - estes geralmente passam mais tempo refatoração do código dos programas simples que nunca seria gasto em cem anos de manutenção. E, finalmente, aqueles que andam o caminho do meio usando padrões quando eles fazem sentido, e codificação tudo o que vem em primeiro lugar para o código minimamente exposta.

Eu estou querendo saber se alguém tem bloqueado uma abordagem bem para a incorporação equilibrada de uso padrão no ciclo de vida de desenvolvimento de software. Além disso, qual é o melhor recurso na web por padrões, os seus fatores de motivação, e seu uso adequado?

Graças.

Foi útil?

Solução

Há lotes de diferentes famílias 'padrão' lá fora, mas tendo a sua pergunta seus termos mais amplos ...

Eu recomendo:

Off-line (meus favoritos):

Off-line (popular):

  • GoF Design Patterns
  • Refactoring de Fowler: Aperfeiçoando o Projeto de Código Existente

Outras dicas

Boa uso de padrões depende de conhecimentos e experiências; não há nenhuma fórmula para isso. Uma boa coisa a fazer é ter alguém que é experiente na aplicação de padrões criteriosamente para rever regularmente o código de todos os outros na equipe para se certificar de que eles não estão uso excessivo ou subutilização padrões de projeto. Eles não são receitas pré-cozido -. Eles precisam de habilidade para aplicar de forma eficaz e que tem de ser aprendida

O meu primeiro e melhor exposição aos padrões de projeto foi o Portland Pattern Repository .

O uso de "padrão" depende em alto grau de

  1. a língua utilizada
  2. objetivos um como para achive.

Design teste padrão pode ser nomeado superestimada em linguagens como C ++, Java e outros. Eles escondem os introduz inflexibilidade com todos os tipos de problemas de digitação. Aqui está um link sobre o padrão de "sobreviver" em línguas menos restritivas: http://norvig.com/design-patterns/

Outro exemplo é o programmming orientada aspecto, em que com as coisas esforço poder foram "introduzidas" em uma língua não é "projetado" para ele.

A filosofia por trás das ferramentas usadas tem uma grande influência também. Basta comparar digamos PHP ou Visual programas e soluções básicas médios em Smalltalk, Lisp comum, Haskell e similares.

Os elementos de sintaxe ter um grande impacto também. Você verá toneladas de loops semelhantes digamos que em C, C ++ (iteradores), mas se você olhar para languags que suporte a funções de ordem superior você só vai encontrar alguns loops.

Você então tem que ver o caminho que as pessoas fazem a programação de acesso, até baixo ou de cima para baixo, o crescimento fragmentado ou construção de pyramides, ou quaisquer outras preferências individuais

Eu sugiro a leitura do link mencionado, e depois verificar implementações em "diferentes" línguas ....

Saudações Friedrich

Todo mundo está usando padrões o tempo todo. Eles só pode não saber. Mesmo uma coisa simples como 'iterar sobre uma lista' é um padrão.

Eu acho que a melhor maneira de incorporar padrões em seu ciclo de trabalho, é apenas para usá-los, e se referir a eles pelo nome quando discuti-las e ao comentar seu código. Felizmente, isso vai resultar em uma expansão de conhecimento.

Assim, digamos, por exemplo, você viu que o que você está fazendo é um grande ajuste para Observer. Você diz ao seu colega "Ei, isso vai ser muito fácil de fazer se fizermos este objeto observador, e esse objeto seu assunto."

Ou o seu colega vai entender imediatamente - que é padrões economizando seu tempo -. Ou você começa a educá-los, e próxima vez você menciona Observer eles vão entender imediatamente

E, ao mesmo tempo, você está espalhando o conhecimento, e eles vão detectar oportunidades para usar os novos padrões que aprenderam de você. Isso vai nos dois sentidos, é claro. Da próxima vez que poderia ser -los ensino você um novo padrão.

Tudo isso se baseia em seu colega não ser do tipo que balança a cabeça e finge entender algo quando não o fazem. Você precisa deles para dizer: "Ei, você mencionou Observer, eu não acho que sei o que é."

Eu acho que o melhor recurso web contendo informações sobre padrões e refatoração - http://sourcemaking.com

Eu sou um grande fã da série e ter lido muitos dos seus livros, por isso eu recomendo cabeça First design Patterns . Você pode lê-lo on-line através da O'Reilly Safari Bookshelf , mas a cópia impressa vem com um cartaz grandes padrões muito .

Eu não poderia concordar mais com o comentário acima. Eu uso de padrões de projeto onde eu possa, mas sempre contar com o resto da minha equipe para realmente entender os benefícios de um padrão particular. Caso contrário, você acaba com código feio e um invólucro leve, que lembra um pouco o padrão.

Como um aparte http://www.developer.com tem alguns artigos por mês que dizem respeito padrões de design e suas aplicações. Boa sorte!

Eu acho que eu teria que recomendar Refactoring:. Aperfeiçoando o Projeto de Código Existente

Refatoração: Aperfeiçoando o projeto de Código existente
(fonte: 2020ok.com )

A abundância de exemplos de como implementar uma utilização sensata de padrões.

A definição e resposta original é a origem do conceito, em projeto . Este livro trata do conceito em um nível muito theortical, ao invés da fala de gestão que se infiltrou na área. Sua visão é que os padrões de design são nomes apenas para expressões comuns; eles enumerar alguns e justificar suas posições.

Eles evitar o "O padrão de design que eu deveria usar" tipo de pergunta, ao invés lidar com problema como "Am I pisar naturalmente em uma área bem conhecida? Se assim for, os outros podem experiência me ajuda?". padrões de projeto, para mim, não são como componentes pré-fabricadas você cola em conjunto para fazer uma solução. Eles são apenas repositórios de orientação para quando você se deparar com uma situação semelhante a um os outros têm combatido, e dar nomes para permitir que as pessoas referem-se às situações gerais na conversa.

Projeto padrões são engraçado em que você só sabe onde usar um padrão quando você entender completamente o padrão aplicável. Coisas como Estratégia, Observer, Iterator você pode, aftera pouco de prática, o uso sem pensar muito difícil. Se você estiver em C # você usa o Iterator o tempo todo (IEnumerable ...) sem pensar nisso como um padrão.

Na minha opinião, esses padrões simples são os melhores padrões. Você já tem um trabalho a fazer, e tentar encaixar o seu problema em um padrão após o outro quando isso não acontece muito fit é um desperdício de seu tempo, e resulta em mau código.

O meu conselho é olhar para os diagramas UML para um padrão, e se é bastante simples, em seguida, tentar e aprender bem o suficiente para que você possa recuperá-lo mais tarde. Um padrão com um contrato mais simples é provável que seja mais útil com mais freqüência.

Eu iria com o Gang of Design Patterns de Quatro me

reservar

Eu concordo com essas referências, mas não é novato amigável. Para padrões de projeto rápidas de aprendizagem início o caminho mais fácil:

Head First: padrão de design

Em seguida, seu pode verificar os livros mais avançados, uma vez que você tem a grande imagem (um monte de exemplos práticos; -))

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top