Aprendendo a codificar? Primeiro, aprenda a resolver o problema.

Geshan Manandhar Blocked Unblock Seguir Seguindo 4 de janeiro Imagem de Unspalsh

A maioria dos tutoriais que você leu ou assistiu agora geralmente faz uma coisa, alimentá-lo com colher.

Isso é “OK” para aprender uma coisa nova, mas não é bom quando você precisa resolver uma tarefa real.

Uma tarefa geralmente envolve atingir um objetivo superando um problema. Este post revela a "dica" mais importante para todos os engenheiros de software iniciantes.

TL; DR

Primeiro, resolva o problema. Em seguida, escreva o código. John Johnson

Em outras palavras, trabalhe a solução no papel em etapas. Então comece a escrever o código para isso. Não se envolva no código e no design do software primeiro.

Então, o que acontece?

Muitas vezes ouço iniciantes e engenheiros de software júnior dizerem: “Eu poderia seguir o tutorial e pensar que entendi o conceito. Mas quando tentei fazer algo semelhante no meu projeto de estimação, não consegui. ”

Isso acontece por dois motivos.

Primeiro, você perdeu sua linha de pensamento em algum lugar e não conseguiu estabelecer uma cadeia.

Segundo, você estava tão envolvido no código que o principal problema que você estava tentando resolver ficou fora de foco.

Esse problema também acontece para engenheiros de software e até engenheiros de software sênior.

O bom é que, com a experiência, você sabe quando parar ou fazer uma pausa. Em seguida, volte ao problema com uma receita diferente e encontre uma solução mais rápida.

Muitos de vocês podem se identificar com isso: vocês estavam tentando arduamente consertar um problema por horas. Você fez uma pausa ou dormiu, e na próxima sessão a solução estava lá em minutos.

Isso não é magia. Isso está olhando para o problema de outro ponto de vista.

Vamos ilustrar com um exemplo

Você tem que fazer uma tarefa – por exemplo, criar um reembolso com pagamentos.

Você recebe o esquema do banco de dados. Essa é uma tarefa de back-end e você precisa criar uma API de POST / reembolsos que possa criar o reembolso e seus pagamentos relacionados. A estrutura do banco de dados é como abaixo:

Um reembolso sempre tem um motivo, como "mercadorias danificadas" ou "entrega atrasada".

Você poderia discutir a carga útil da API com um dos membros da equipe. Você pode concordar com a carga útil JSON abaixo:

O cenário habitual

O que a maioria dos engenheiros de software iniciantes fará é iniciar a varredura da base de código, se houver uma. Eles imediatamente começarão a escrever algum código. Se houver alguma cultura de teste, talvez eles escrevam algum código de teste automatizado.

É aí que a maioria dos iniciantes e até mesmo alguns experientes engenheiros de software escorregam. Não escreva código quando você não tiver resolvido o problema.

O passo apropriado

O passo mais apropriado é sentar e resolver o problema no papel em etapas.

Então você se pergunta o que precisa fazer. Você cria um plano em etapas e ajusta-o.

Se você tiver alguém sênior em sua equipe, poderá validar suas etapas e obter feedback.

Isso também diminuirá o tempo de revisão do código. Vocês dois já concordaram com a modalidade da solução.

Então, como fazê-lo

A tarefa descrita anteriormente é escrever uma API de criação / POST, na qual os reembolsos com pagamentos podem ser criados.

Cada reembolso pode ter no máximo dois pagamentos. Uma é do tipo 'dinheiro' e a outra é do tipo 'crédito'. Também pode ser um reembolso com apenas um pagamento em dinheiro ou crédito. É assim que eu teria escrito os seguintes passos no papel:

  1. Crie um método para obter os dados do controlador enviado pelo usuário
  2. Valide toda a entrada para valores, tipos de reembolso e motivos.
  3. Se toda a validação passar, gere um número alfanumérico aleatório de comprimento 10 que não exista na tabela de reembolso (verificação recursiva)
  4. Se a validação falhar em responder com uma mensagem de falha de validação adequada, decida sobre a estrutura de resposta
  5. Inicie uma transação no banco de dados
  6. Insira os valores relacionados ao reembolso de refund_nr , reason_reason , is_premium_customer na tabela de refund
  7. No sucesso da inserção, obtenha o id da última inserção
  8. Com o reembolso_id, insira valores relacionados ao pagamento de fk_refund, fk_item, amount, is_cash à tabela de payment
  9. Se tudo correu bem cometer a transação do banco de dados
  10. Se houve algum problema, a transação do banco de dados de rollback
  11. Responda com mensagem de sucesso ou falha, dependendo do sucesso da transação do banco de dados com estrutura adequada
  12. Ligue o controlador e este método

Siga o plano em etapas, agora escreva o código

Depois de ter um plano passo a passo, você pode começar a escrever código. Em seguida, você pode aprofundar os nomes dos métodos, como obter a conexão com o banco de dados e outros detalhes.

Dependendo do idioma e estrutura, você também pode decidir onde deve ficar o código de validação.

Você pode até escrever testes se a empresa e a cultura o apoiarem e incentivarem.

Quando sua solução é evidente em sua mente e você tem um plano de ação passo-a-passo no papel, agora você pode escrever código.

Você pode até dividir as partes de maneiras que serão mais fáceis de concluir e conectar.

Por exemplo, a lógica de teste pode ser algo que pode ser escrito separadamente e testado por conta própria. É pensar em partes independentes que podem ser ligadas juntas para formar a solução.

Conclusão

Quando você enfrenta sua próxima tarefa, não comece a escrever código desde o início.

Primeiro, consiga o problema e planeje uma solução com etapas. Isso é melhor feito longe de uma tela no papel.

Depois, refine sua solução e discuta com alguém. Quando estiver satisfeito, traduza essa solução para o código. Isso é um pouco metódico, mas muito eficaz.

O código é sempre um meio para a solução, não a solução em si.

Se você chegou até aqui, por favor, deixe-me algumas "palmas" :).

Obrigado pela leitura!

Originalmente publicado em geshan.com.np .