Como melhorar as habilidades em arquitetura de software [fechado]

9

Qual é a melhor maneira de melhorar suas habilidades em arquitetura de software? Ensinamos padrões de design na universidade e vejo muitos livros com exemplos simples e diretos, mas além deles, como você pode aprender uma boa arquitetura? Em outras palavras, como evoluir para um grande arquiteto? Quais são os pré-requisitos?

Adam Lear
fonte
4
Experimente a escola de pancadas fortes ... a sério.
Job

Respostas:

20
  1. Rede . Conheça alguns bons arquitetos. Fale com eles. Aprenda com eles e tire idéias deles.

  2. Leia vorazmente . Existem centenas de livros sobre arquitetura de software (inclusive vários bons). Leia o tópico e leia os tópicos relacionados (arquitetura de construção, estruturas de gerenciamento, engenharia elétrica, arquitetura operacional, etc.).

  3. Arquitetura de estudo . Existem milhares de plataformas e produtos por aí. Olhe para eles. Dissecar suas partes. Um dos meus melhores aprendizados desde o início foi analisar grandes arquiteturas (veja os pequenos idiomas, arquivos compactados e estruturas simples na fonte original do Doom, por exemplo).

  4. Pense, desenhe, tente . Pratique suas habilidades de design em problemas imaginários. Problemas divertidos. Problemas interessantes.

  5. Faça . Trabalhe em sistemas reais. Embarque-os. Sinta a dor causada por suas más decisões, a dor que você causa aos desenvolvedores e aprenda com ela. Uma boa arquitetura consiste em equilibrar o que você recebe, como chega lá e quanto custa.

Bruce Alderson
fonte
Quais são os melhores recursos na sua opinião?
26710 Geek
Eu recomendo que as pessoas aprendam a julgar os recursos, pois encontrar um bom material (e saber o que é) é um problema difícil. Posso dizer que você deve olhar para os livros didáticos canônicos em algum momento (aqueles que definem o domínio) e, em seguida, o que outras pessoas consideram grandes arquiteturas. Você pode não concordar com o cânone ou com as grandes arquiteturas conhecidas, mas é um lugar para começar a pensar.
precisa
6

Pessoalmente, eu diria que aprendi mais com pura tentativa e erro do que com a leitura. Você pode se surpreender com quantas das idéias malucas que você revelou serem boas e com o número de idéias brilhantes que acabam sendo terríveis. Mas você nunca sabe disso até tentar. Isso é tão verdadeiro quando você começa a escrever o código como na metade do processo. Não se apegue a uma arquitetura que não funcione apenas porque é o que você já decidiu.

Por fim, dedique algum tempo para pensar em sua solução. Faça o possível para não ouvir colegas de trabalho e gerentes que o pressionam a não pensar nas coisas e começar a codificar.

Jason Baker
fonte
+1 Pensar é fundamental, tente esboçar seu pensamento com a UML. Considerando o problema o mais concreto possível. Eu acho que o design deve levar duas vezes tanto tempo quanto de codificação
didxga
2

Um programador pensa em resolver o problema; um arquiteto pensa em manter a solução, limita a implementação que impõe à solução, áreas da implementação para melhorar conforme o tempo permitir, áreas da implementação que podem ser deixadas de fora ou reduzidas em escopo se o cronograma cair, dependências (internas e externas) ) que podem impactar o desempenho da implementação e o que pode ser feito para limitar a exposição ao risco, o treinamento necessário para novos usuários do sistema, a documentação que está sendo desenvolvida e as alterações necessárias à medida que a implementação se desvia da solução prevista e como o as partes interessadas sentem o progresso que está sendo feito e a aplicabilidade da implementação ao problema real que está sendo resolvido.

Ser um arquiteto exige que você seja capaz de se comunicar de maneira eficaz, organize seus pensamentos e planos em um cronograma viável, decomponha um problema em partes implementáveis, construa protótipos de peças tecnicamente desafiadoras e coordene a implementação das peças para que tudo termine no prazo.

Aprenda a esquematizar sua solução usando o Enterprise Architect , Visio ou lápis e papel. Conforme mencionado em outras respostas, obtenha um mentor de arquiteto e compartilhe seus diagramas de solução com eles para revisão. Ouça o feedback e revise seus diagramas.

Aprenda a criar agendas realistas. Comece a acompanhar quanto tempo leva para implementar as coisas e acompanhe o quão perto você está de estimar corretamente quanto tempo leva.

Divida sua próxima tarefa em pedaços pequenos antes de começar a codificar e acompanhe as etapas que deixou de fora. Aprenda a antecipar áreas problemáticas e prototipá-las antes de começar a codificar a solução final.

O artigo ligado por Pierre 303 ao longo de esta resposta a uma pergunta semelhante a pena acrescentar aqui também:

Quem precisa de um arquiteto de Martin Fowler

Larry Smithmier
fonte