Aprenda a organizar suas ideias.
SE TU É APRESSADO E QUER VER DIRETO UM EXEMPLO, procure no conteudo (Veja um exemplo), mas recomendo que leia tudo.
iniciar um projeto mas não conseguiu sair do lugar?
Começou escrevendo um monte de código e no fim das contas as coisas não saiam bem?
Se sim, é porque tu está iniciando de forma incorreta, está escrevendo código sem pensar. Isso mesmo, tu escreve o que passa pela cabeça, mas não organizou as ideias antes de escrever.
O segredo para um projeto (de qualquer tamanho) ser produzido, é organizar suas ideias, e aqui vai a dica.
Pense antes de codificar.
Sei que para quem está aprendendo a ansiedade de programar é grande, mas o problema disso é que tu não irá conseguir formular um bom projeto, pois a etapa de pensar e se organizar é a mais importante.
Sendo assim antes de iniciar a codificação faça as seguintes etapas (vou partir do princípio que tu já tem o problema, agora só precisa resolvê-lo):
-
Escreva detalhadamente qual é o problema que tu está tentando resolver.
-
Identifique se esse problema é possível resolver de forma manual (a maioria do problema é possível resolver de forma manual, provavelmente o que você fará é tentar automatizar a solução)
-
Escreva como é feito a solução manual para o problema
-
Desenhe um fluxograma da solução (isso vai te ajudar na hora de programar). Se o problema for muito grande, você pode dividir a solução em partes, assim tendo um fluxograma para cada etapa da solução.
Após fazer essas etapas podemos começar a pensar na parte técnica.
Ainda não é hora de programar
Ainda não, sei que está com muita pressa para escrever seus códigos, mas neste momento tu precisa ver como resolver o problema tecnicamente. E aqui vai mais algumas dicas:
-
Identifique qual plataforma você irá trabalhar (web, windows, aplicativo mobile, etc).
-
Se para resolver o problema precisar fazer algo que nunca ouviu falar, estude um pouco antes.
2.1 Pratique o que estudou em um contexto bem menor, assim você identificará se de fato o que foi estudado resolverá essa etapa do problema. -
Identifique qual linguagens de programação irá usar (se terá uma API e Front-end web ou Aplicativo), ou se será uma aplicação web sem necessidade de um front separado (PHP, .NET com RAZOR, etc)
-
Não se preocupe com design patterns (padrão de projetos), faça o mais simples possível. Se for em PHP por exemplo, pode fazer em um arquivo único (por favor mais experientes, não me xinguem, mas esse projeto primeiro precisa sair do papel). Ou se usa um framework, não tenha medo de colocar tudo na controller. Lembre, você está aprendendo e esse é o primeiro projeto. Mas entenda que é importante que você tenha ciência de que está fazendo da forma “incorreta”, para na versão 0.0.2, você começar a trabalhar na estruturação do seu projeto.
Agora vamos programar
Pronto, agora que
- tu conhece a plataforma
- já estudou
- Sabe qual linguagem de programação vai usar
- ainda não está preocupado com os padrões de projetos
Pode começar a codificar.
Inicia se possível pelas regras de negócio, pois assim tu vai fazendo e validando se está correto, depois que todas elas estiverem prontas pode partir para o front-end.
Veja um exemplo
Abaixo vou mostrar um exemplo de um projeto que fiz, e como ele foi concebido. Talvez dessa forma ajude a vocês organizarem melhora suas ideias.
PARTE 1 Pense antes de codificar.
MEU PROBLEMA: Eu gosto muito de jogos, e estou com problema na hora de comprar um jogo. Pois para comprar está muito caro.
-
Escreva detalhadamente qual é o problema que tu está tentando resolver.
R - Preciso de alguma forma ter a possibilidade de pagar mais barato nos jogos, 300 reais em um jogo não está dando certo. -
Identifique se esse problema é possível resolver de forma manual (a maioria do problema é possível resolver de forma manual, provavelmente o que você fará é tentar automatizar a solução)
R - Sim, é possível pesquisando os jogos. -
Escreva como é feito a solução manual para o problema.
R - Conheço diversos sites que vendem jogos para PC, tem a STEAM, EPIC, NUUVEM, ENEBA, CD KEYS, entre outros. Porém toda vez que vou comprar um jogo, ter que abrir por volta de 8 sites para pesquisar o valor é um saco. -
Desenhe um fluxograma da solução (isso vai te ajudar na hora de programar). Se o problema for muito grande, você pode dividir a solução em partes, assim tendo um fluxograma para cada etapa da solução.
R -
PARTE 2 Ainda não é hora de programar
-
Identifique qual plataforma você irá trabalhar (web, windows, aplicativo mobile, etc).
R - Como é um site leve e não tenho dinheiro para pagar 100 dolares todo ano para apple para ter meu app na loja, vou criar um site que sai mais barato. Consigo hospedar a API gratuitamente no AZURE e o front-end na Netlify. -
Se para resolver o problema precisar fazer algo que nunca ouviu falar, estude um pouco antes.
R - Para resolver o problema vou precisar de alguma forma fazer o codigo acessar o HTML de site por site e ler o HTML pegando os valores que preciso (NOME e o PREÇO DO JOGO).
Pelo que li o nome disso é WEB SCRAPPING, eu programo em csharp, deixa eu ver se é possivel.
Identifiquei que é possivel fazendo requisição HTTPCLIENT e usando o html agility pack que é uma biblioteca para auxiliar na leitura do HTML.2.1 - Pratique o que estudou em um contexto bem menor, assim você identificará se de fato o que foi estudado resolverá essa etapa do problema.
R - Vou criar um projetinho console aplication e vou ver se consigo usando isso que estudei ler um HTML uma div especifica com uma classe especifica. Como exemplo vou testar no site da NUUVEM.
Que legal funcionou, posso seguir em frente então. -
Identifique qual linguagens de programação irá usar (se terá uma API e Front-end web ou Aplicativo), ou se será uma aplicação web sem necessidade de um front separado (PHP, .NET com RAZOR, etc)
R - Vou fazer em Cshap a API (vai que eu resolva fazer um aplicativo em flutter, criando uma API posso reaproveitar ela no app). O front-end vou fazer em HTML, CSS e Javascript puro. Depois posso usar um framework web caso queira no futuro. -
Não se preocupe com design patterns (padrão de projetos), faça o mais simples possível. Se for em PHP por exemplo, pode fazer em um arquivo único (por favor mais experientes, não me xinguem, mas esse projeto primeiro precisa sair do papel). Ou se usa um framework, não tenha medo de colocar tudo na controller. Lembre, você está aprendendo e esse é o primeiro projeto. Mas entenda que é importante que você tenha ciência do que está fazendo da forma “incorreta”, para na versão 0.0.2, você começar a trabalhar na estruturação do seu projeto.
Essa etapa 4 para vocês terem uma ideia, a primeira versão não tinha autenticação para salvar os jogos (salvava apenas no local storage), não tinha middleware de autenticação nem de erro, não usava injeção de dependência nem inversão de controle, tudo era instanciado no código, não tinha teste unitário.
Mas depois que o projeto inicial ficou pronto, antes de eu adicionar mais funcionalidades, aí sim fui ajustar o padrão de projeto deixando ele mais profissional.
Ainda tem muito a melhorar, mas o projeto está da seguinte forma (clique aqui para ver)
Tem muita coisa a melhorar como o layout, remover os jogos que estão com valores zero (porque acabou), etc. Mas já é funcional e economizei já muito dinheiro com ele rsrs.
Pessoal espero que esse texto ajude vocês e caso tenham alguma dúvida, podem deixar nos comentários.