Como posso praticar padrões de design e refatoração de maneira deliberada? [fechadas]

10

Eu estava lendo o livro Refatorando para padrões e me perguntando como posso ter a chance de praticar as habilidades, porque sem a prática deliberada de novas maneiras de refatorar e usar padrões, minhas habilidades não melhorarão.

Mas o trabalho de escritório exige que eu termine cada tarefa o mais rápido possível. Na maioria das vezes, o design e a arquitetura do projeto não são controlados por mim, só posso seguir o estilo semelhante ao código existente. Às vezes, há um projeto com um design ruim, mas também há outro desenvolvedor cuja habilidade de design é melhor do que eu e ele já tem todo o plano para refatorar o projeto, de modo que estou apenas seguindo o plano dele. Como obtenho oportunidades para praticar?

rwong
fonte

Respostas:

6

Bem, para ser franco, você não pode esperar por uma oportunidade, batendo à sua porta. Se você está muito inclinado a praticar a habilidade, seria ótimo se você pudesse vir com seus projetos, independentemente do que o chamado desenvolvedor mais qualificado tenha. Basta lançar suas idéias e ter uma boa conversa sobre como a minha seria útil para este projeto ruim existente. Talvez você fracassasse nas primeiras tentativas, mas aprenderia muito e (também viu o seu chamado colega desenvolvedor mais qualificado também teria algo a aprender com você).

Em resumo, coloque seus desenhos também em cima da mesa e saiba o quanto você é bom ou ruim, não há como avaliar sua habilidade.

V4Vendetta
fonte
3

Prática, prática, prática. Projetos de hobby são definitivamente uma boa ideia. E se você quiser aprender, geralmente é melhor trabalhar no projeto de código aberto de outra pessoa , para aprender com os padrões que ela emprega.

Eu sugiro olhar para codificar dojos e códigos de katas . A idéia por trás desse conceito é que, praticando em problemas de práticas gerenciáveis ​​bem definidos, você estará melhor equipado quando surgirem problemas em seu próprio código. (Os sites explicam isso melhor do que eu, verifique-os definitivamente.)

Ponto lateral: Uma coisa essencial que não é exatamente um padrão são os hábitos adequados quando se trata de testar.

Além disso, último comentário: o trabalho de escritório exige que você conclua cada tarefa o mais rápido possível. Se você trabalha muito rápido e cria muitos bugs, não concluiu a tarefa , pois precisará voltar mais tarde. Isso é retrabalho. Se você não dedicar o tempo necessário para aprender a maneira correta de fazer as coisas, criará mais trabalho para si mesmo a curto prazo e não aprenderá os padrões adequados para melhorar a longo prazo. Vale a pena para você e para o seu empregador praticar padrões de design adequados. (Dito isto, os padrões de design geralmente podem ser usados ​​em excesso e abusados ​​por pessoas que os praticam com zelo excessivo ou sem entendimento de fundo, mas esse é um ponto separado.)

Carpeliam
fonte
O retrabalho é uma espécie de assunto interessante. 37signals.com/rework é um livro decente sobre o assunto.
Carpeliam #
11
Ah, mais um comentário, e isso acompanha os padrões de outras pessoas. Use as pessoas em seu escritório como um recurso. Se eles têm planos de refatorar algo, peça-lhes que expliquem seu processo de pensamento e os force a ensiná-lo. Se o seu escritório não está focado no seu desenvolvimento profissional pessoal, há um problema.
Carpeliam #
+1 para a observação de quando uma tarefa é concluída.
Péter Török
1

Eu acho que você tem as seguintes opções:

  • Considere praticar em horário de folga - apenas permaneça no trabalho e experimente refatorar o código sem enviar o código ao VCS. Para praticar deliberadamente, você não precisa confirmar as alterações. Você precisa reproduzir um procedimento até que ele se torne sua segunda natureza.
  • Considere dominar as habilidades de comunicação para discutir com seus colegas de trabalho qual refatoração é mais apropriada. Conversação crucial é realmente útil para entender a mecânica de uma comunicação.
  • Pet project - crie um projeto pet e pratique suas habilidades. Não precisa ser muito útil. Seu objetivo é praticar habilidades de programação.
  • Considere propor seus serviços no projeto de código aberto - isso é mais vantajoso para a prática deliberada, pois você pode obter feedback
Alexey
fonte