domingo, 5 de abril de 2020

4 anos depois de fazer PDS


Se eu fosse fazer o Cidade Ajuda HOJE e dicas de tecnologias

Ressalva: Para não ficar simplesmente no achismo, eu estou refazendo o projeto do zero.

Explorando novos horizontes, decidi recriar o projeto com outras tecnologias. Estou mexendo desde o frontend até o backend e sem medo digo que daria pra fazer o projeto em cerca de 2 meses de desenvolvimento. Para tal proeza recriei usando Django para o backend e React para o frontend. Além disso, uma coisa que mudaria é que não desenvolveria pra duas plataformas separadamente (web e mobile nativo), usaria tecnologias como PWA ou React Native, para agilizar o desenvolvimento.

Usar Django para o backend

Com Django estou conseguindo reconstruir, a parte da API (django-rest) do Cidade Ajuda, em poucos dias (sem escrever muito e nenhum SQL). Fora que ele já vem com um painel do administrador praticamente pronto. Sei que algumas pessoas podem ficar com receio de largar o Java ou C#, mas vejo que pivotar para Python e usar Django traz agilidade ao projeto.

Uso do React para o frontend

As equipes que quiserem usar o React terão o privilégio de poderem escrever de forma funcional e orientada a objetos. Fora isso, já existem várias bibliotecas que agilizam o desenvolvimento (por exemplo Material UI). Além disso, eles podem criar em forma de PWA e ter apenas um "site" que funciona igual a um app ou utilizarem react-native-web e assim poderem tanto gerar um site quanto app nativo.

Ferramentas de deploy

Um dos problemas mais chatos do GLYBIF foi eu ter feito deploy no meu computador e ter de lidar com toda a questão de domínio, criptografia e tudo mais (tive que pedir pra uma pessoa de outra equipe pra fazer isso, pois na época a NET não liberava a porta 443). Usando as tecnologias já citadas, é possível ter deploy contínuo; a Zeit possui um serviço chamado Now que é bastante usado para colocar o frontend (o githubpages também pode ser utilizado); e o Heroku pode ser usado pro backend. Ambos os serviços já geram certificados, são gratuitos e possuem integração com o github.

Erros comuns

De vez em quando vejo os projetos que estão sendo feitos e é muito interessante ver gente errando em coisa básica e é muito estranho, pois o que não falta é material na internet, nos blogs de projetos anteriores e até mesmo no Dicas Ivan. Alguns dos problemas que já vi:

  • Projetos não seguindo a estruturas de pasta determinada pelo professor;
  • Arquivos com nome v1, v2, etc;
  • Vídeos sem legenda;

E evitar esses problemas é simples, basta imprimir os critérios que tem no site, grifar o que é relevante ( sim eu fiz isso na época e eram cerca de 6/7 páginas). E no repositório da equipe tem diversos scripts para automatizar as coisas. Além disso fiz um projeto para poder gerar o Gource de modo visual (https://github.com/LorhanSohaky/GourceGUI)


Obs: Um erro que cometíamos até a presente publicação era a utilização de usuário genérico. Foi extremamente difícil encontrar as credencias do e-mail da equipe, para que fosse possível fazer esta publicação.

Coisas que levo pra vida depois de PDS

Apesar de acharmos que algumas coisas não utilizaremos mais, muitas coisas podem ser utilizadas. E eu passei por isso na prática, não acredito que hoje uso LaTeX!

LaTeX

Mesmo depois de passada a matéria utilizo LaTeX, pois me trouxe muita facilidade. Ao entrar na faculdade tive de fazer alguns trabalhos no padrão ABNT, desde de relatórios até artigos científicos. A experiência que tive em PDS me tirou da estaca zero, assim tendo menos dificuldades do que as pessoas que nunca tinham visto isto; e outra coisa que foi de extrema ajuda foi o template que o Ivan disponibilizou, pude adaptar para usar nos meus trabalhos atuais.

Graças ao LaTeX, hoje tenho um currículo escrito em LaTeX e que está num controle de versão, ou seja, tenho um currículo em que só preciso me preocupar com o conteúdo e tenho o benefício dele estar versionado.

Fora isso, já fiz apresentações usando-o também e pode de grande ajuda, pois já estará em PDF e poderá colocar comentários (que nem no Powerpoint).

Controle de versão

Depois de ver os benefícios do controle de versão, não consigo ficar sem ele, uso em trabalhos da faculdade, projetos pessoais, currículo, guardar alguns códigos, etc;

Documentação

Os repositórios possuem boas documentações, já revisitei alguns deles pra me darem uma "visão" de como escrever sobre determinado tópico.

Hábito de leitura de coisas técnicas

 Antes preferia ver vídeos sobre determinado assunto, mas de PDS, comecei a ler mais documentações e atigos do que assistir vídeos. Um hábito que me ajudou muito na época em que estava fazendo essa matéria era ler a documentação do POSTGRES durante o trajeto de casa até o IFSP e isso me foi de grande ajuda, pois relembrei algumas coisas de banco de dados, mas principalmente em lidar com operações geométricas, como verificar se um ponto está dentro de um polígono.

"Know how"

Graças a tantos erros e acertos cometidos, hoje eu sei bastante do que fazer, do que não fazer e como fazer. Alguns exemplo disso são:
  • Como gerar certificado (HTTPS) para um site;
  • Como ter meu próprio servidor disponível na internet;
  • Não desistir na primeira dificuldade;
  • Acesso remoto;
  • Tratamento de erros;

E isso só foi possível graças ao fato do Ivan não dar a resposta de imediato e deixar você quebrar a cabeça por alguns dias.

Gource

Esse software é muito útil para ver o progresso de um projeto e tenho um caso prático disso;  estava numa empresa júnior e durante um período a minha equipe estava desmotivada, pois por mais que estivéssemos fazendo várias mudanças no produto, parecia pouca coisa; então foi aí que me veio a ideia de gerar um vídeo do gource para mostrar o tanto que evoluímos e foi notório o sorriso nos  rostos da equipe.

Linux 

Na época apanhei bastante para o Linux (cheguei a formatar meu computador 3 vezes), mas hoje não largo ele. Não entrarei no mérito de falar o motivo de usar Linux, mas alguns pontos que podem ser levados em consideração:
  • Diversas empresas na área de TI usam Linux pela facilidade (as máquinas da minha faculdade também usam Linux);
  • Diversos tutoriais e artigos são feitos focados no Linux;
  • Quando estava usando Windows, meu computador não aguentava rodar o NetBeans e o servidor do projeto, já com Linux já consegui rodar o NetBeans com o servidor; e rodar o Android Studio com Emulador Android.

Aproveitem essa matéria para experimentarem coisas novas! Não se limitem!

2 comentários: