Processo de Criação de Projetos
Ter a ideia de um projeto costuma ser a tarefa mais fácil. Imaginamos todo o cenário, todas as utilidades e idealizamos um mundo interativo entre os usuários felizes e satisfeitos com a nossa mais nova plataforma. Todavia fazer a arquitetura é a parte mais difícil pois temos não só de saber (ou ter uma breve noção) quais as linguagens de programação que melhor se encaixem na nossa ideia, pensar em qual modelo de design de arquitetura (design pattern) será o ideal a se implementar.
Pensando nisso, decidi criar um artigo e um projeto simultaneamente para que eu possa melhorar as minhas capacidades de programação e arquitetura, por estar pondo por escrito e também para os que estão começando, possam entender e ver de perto este processo muitas vezes macabro.
PROJETO CUCA RACHA
Sem muito dificultar, vou criar um projeto (cuca racha) que nada mais é que uma plataforma web de receitas. Então vou começar pelos passos que costumo seguir (uma convenção de criação):
User Stories – São as descrições de todas funcionalidades no ponto de vista do usuário. Então para isso pensamos: “Como [tipo de usuário], eu quero [uma ação] para que [um benefício].” Exemplo: Como usuário comum, eu quero procurar por receitas para que eu possa ter novas ideias para o jantar.
Features – Anotar e separar por nomes todas as ações possíveis vindas dos user stories para que com esses dados, separados e catalogados, possa seguir ao próximo passo.
Flowchart – Essa é uma das partes mais complicadas de todo o projeto pois é nessa parte que juntamos todos os passos, ferramentas, features e mostramos através de um flowchart qual será o caminho que devemos seguir. No exemplo que dei no user stories acima, seria algo como:
O usuário faz um busca por uma receita, será então feito uma análise na base de dados e irá mostrar as receitas disponíveis pelos critérios da busca. O usuário escolhe uma das receitas disponíveis, e o sistema então recolherá os dados da receita escolhida e mostrará no ecrã as informações. E também, de acordo a quantidade de receitas disponíveis, irá mostrar uma páginação.
Architecture – Com os primeiros flowcharts criados, conseguimos agora imaginar um tipo de arquitetura que melhor faz sentido ao nosso projeto. Com o tempo e com um certo número de portfólio já criados, começa por já ser automático bater o martelo, sobre qual design de arquitetura (design pattern) iremos usar. Neste cenário de projeto, vamos por exemplo usar o modelo MVC (Model-View-Controller).
Development Step – É a parte de criação dos códigos, design e implementação de toda a arquitetura e flowcharts criados até o momento.
FINALIZANDO E PENSANDO SOBRE O PROJETO
Na grande maioria dos casos, as features, os flowcharts, os códigos, os designs e até mesmo a arquitetura, vão se alterando conforme o projeto vai se construindo e ficando mais robusto. Pois é quase que impossível acertarmos desde o início exatamente como o projeto vai ser desenvolvido. Muitos testes vão sendo lançados, feedbacks construtivos, falhas de implementação, bugs e até mesmo novas funcionalidades vão aparecendo. Para exemplificar, eis as modificações do primeiro flowchart apresentado como ficou após a conclusão:
Sendo pequeno ou grande o projeto que vá construir, é importante que siga uma linha de raciocínio, convensões de design e arquitetura, para que acabe por se tornar cada vez mais fácil, prático e intuitivo. Clichê ou não, a prática de facto leva a perfeição.
Vou deixar abaixo o link do projeto no github para que possa ver de perto a implementação desde projeto que acabamos de conversar. Espero que esse artigo tenha sido útil de alguma forma. ✌️
Github Projeto (CucaRacha): https://github.com/fernandogiroto/CucaRacha