Ferramentas
Identificando algumas ferramentas e serviços na construção de projetos que ainda utilizo ou que tive gosto de ter tido contato, para isso, separei o conteúdo em quatro partes buscando organizar cada método.
- Em primeiro, selecionei algumas linguagens que fazem parte da bagagem necessária para aprendizagem e elaboração dos projetos, houveram diversas outros que acabei tendo contato, entretanto, identifiquei algumas que realmente precisavam estar nesta seleção e justifiquei para o melhor entendimento.
- Acredito que nesta seção eu tenha compartilhado pouco sobre o tanto de coisas legais que tive o prazer de utilizar, porém as principais se encontram no tópico 2.
- Da mesma forma, foram selecionados três bancos que são prioridades quando penso na criação dos serviços, tanto em projetos web/mobile quanto em programação de SGBD (construção de funções, triggers e transactions), testes de escala com a finalidade de analisar o desempenho.
- Por fim, considerei trazer os servidores e plataformas que são essenciais ou dispositivos que utilizo por prazer, como por exemplo, Arduino e Raspberry.
Linguagens de programação
- A linguagem C foi essencial para minha abstração lógica, com ela tive o primeiro contato com a programação, é uma linguagem de baixo nível, o que garante a construção de projetos de alta performance, pioneira entre quase todas do mercado e ainda muito genuína.
- Possui muitas bibliotecas que facilitam na construção de estruturas, e pensando assim, meu contato com C++ foi nesta aprendizagem, seleciono por ainda utilizar nos projetos Arduino.
- Atualmente busco utilizar Python para projetos que antes desenvolvia em C, acreditando no bom desempenho, simplicidade e por ser mais intuitiva.
- Embora seja de alto nível, com extenso conjunto léxico, Java foi a primeira linguagem de orientação que tive contato. Ainda lembro de algumas coisas, mas cada projeto é uma dissertação. system.out.println(“puts print cout”). hehe
- Não é minha linguagem primária entra as ferramentas, porém, sempre considero ampliar os conhecimentos nela, considerando ser uma das melhores no mercado (back-end).
- Reconheço as diversas “features” do Javascript, ainda assim, é uma das minhas preferidas, adoto sempre que necessário.
- Nodejs é minha primeira opção, em tudo que posso eu finco node js, acredito que encontrei um norte quando comecei, evitanto todo aquele lance do Apache/XAMPP, sei lá, parece que tirei uma tonelada das costas/libs.
- Minha relação com CSS é de amor e ódio, perco horas quando tenho que armonizar meus templates.
- Embora seja apenas uma linguagem marcação de texto, nunca me esqueço do dia que renderizei meu primeiro layout com Html. Acredito ser uma skill comum a todos nos, sujeitos programadores.
- Em razão de ter lançado Html como uma linguagem válida, fiz questão de trazer também o Markdown, qual estou utilizando para criação deste portfolio, mesmo este possuindo parte das tags Html.
Bancos de dados
- Postgres é um ótimo SGBD e com ele tive um contato mais ampliado em banco de dados, também acredito ser pouco complexo, enfim, gostei dos resultados em testes de escala, ou seja, possui bom desempenho.
- Utilizei o MySQL para alguns projetos de desenvolvimento, é um SGBD bem adotado pela comunidade, porém, eu costumo fazer uso através do Apache, utilizando do XAMPP. Também possui bom desempenho e garante diversas funcionalidades, aliás, possui uma interface amigável na plataforma, o que garante a possibilidade de pessoas com certa dificuldade com cmdl estarem criando projetos com ele.
- Tive pouco contato com NoSQL, sendo o MongoDB o único banco qual utilizo, importante salientar que acho interessante a utilização do modelo, atualmente listo o Atlas do MongoDB em nuvem uma boa opção.
Sistemas, softwares e práticas
- Utilizado em todos os projetos para o versionamento de forma flexivel e segura, recurso frequentes: clone, pull, push e merge.
- Utilizei na simulação/construção de circuitos que continham muitas portas lógicas, como por exemplo, multiplexador, somadores e subtratores, ou que precisam de registradores na implementação.
- O BRmodelo serviu na construção dos modelos conceituais, representando o relacionamento das entidades (atributos e métodos dos projetos).
- Serviu nas modelagens UMLs, permitindo a projeção dos modelos estáticos, fornecendo icons/buttons/lines para todas as entidades/atributos e representações como: usuários e administradores, possui diversas operacionalidades e interface amigável.
- Utilizado durante minha pesquisa, é um SaaS que opera como broker (corretor) do MQTT, possui código aberto, é o broker mais leve do protocolo MQTT.
- Auxilia na construção de layouts, grids e templates, dentre as opções, a lib Bootstrap Twitter sempre é uma das ferramentas que procuro incluir nos projetos visando a simplicidade e os containers responsivos.
- React e React Native são os front frames que tenho adotado na construção dos meus projetos, acredito que a facilidade de construir templates com estas App Views sejam legais, até busquei outras ferramentas com recursos parecidos, mas o bundler do React superou as demais testadas quanto a análise léxica.
- O VS Code é uma IDE que inclui muitas operacionalidades, já faz algum tempo que utilizo somente ela, possui boa integração de serviços, como por exemplo: git, docker, heroku, enfim, o que permite certa fluidez na produção.
- Práticas seguras nas rotas de transferências, ou conjunto de restrições na arquitetura de rotas (GET, POST, PUT e DELETE).
- Os métodos ágeis são recomendações/normas qual acredito ser fundamental atualmente, tive contato com modelo scrum com sprints semanais, mas penso positivamente sobre outros modelos, como, Kanban, XP, etc.
- O Arena Simulation permitiu a projeção de modelos com finitos ou infinitos servidores, possui diversas funcionalidas. Incluindo a execução de projetos com tempos discretos, e implementações de métodos, como por exemplo: método de Mont Carlo.
- Permite a criação de todas as etapas da construção de linguagens de máquina, ou seja, como a máquina vai interpretar as entradas posteriormente, exemplos: LALR (Look-Ahead de decidibilidade canônica), SLRs (ações, sendo estas: state, left or right), etc. Auxilia na construção de compiladores.
- Utilizei o AdonisJS apenas para conhecer a ferramenta (lib), achei legal pelo fato de o pacote garantir a configuração inicial de um projeto node, gerando as dependências e configurações, tanto do express, ou o cors quanto do BD com diretórios para migrações já montados, ou seja, facilita muito para acelerar a aprendizagem de Javascript e Typescript, entretanto, para os devs mais antigos, essa funcionalidade chega ser contextada, quase um no code para iniciar o projeto, afinal, de certa forma estes estão habituados a desenvolver todas as etapas dos serviços existentes na API, o que garante também o maior entendimento do projeto quando assim feito, particularmente, gostei do pacote.
- O Sequelize foi o único ORM que tive contato, gosto bastante e sempre que posso utilizo a ferramenta, gosto das migrações com ele e também da quantidade de querys que facilitam as chamadas no banco de dados.
Dispositivos, plataformas API's e servidores
- Meu preferido, embora tenha limitações de memória, anualmente eu procuro utilizar, afinal, sempre existem projetos (mesmo que residênciais) a serem elaborados.
- Com o Dbeaver fiz testes de conexões e importação e exportação de dados massivos de um BD, aliás, o software é muito integro para estas funcionalidades.
- Esta plataforma foi muito útil na criação de notebooks e assim como o Jupyter, foi útil para aprendizagem de máquina, permitindo a criação de alguns robozitos, porém, o Colab, por ser um serviço leve e em nuvem acabei utilizando mais vezes.
- O Google Cloud Platform foi um dos servidores que usei apenas para testes que surgiram em meio a graduação, ainda estou nos primeiros contatos mas pretendo me aprofundar mais na utilização dos recursos.
- Juro que já contextei a AWS, mas é a pioneira e atualmente uma das minhas plataformas preferidas, quando preciso de uma VM ou serviços quaisquer em cloud, penso sempre na Amazon Web Services.
- Através do servidor Apache consegui configurar muitos outros serviços intermediado pelo http, considero um dos servidores mais integrativos para testar diferentes protocolos e serviços atualmente.
- Utilizei pouco o Docker, entretanto, considero a adoção de containers um diferencial atualmente, em razões de segurança e controle do projeto, podendo ser utilizada de forma distribuída.
- Expo foi um dos achados deste ano (2022), que me fez abandonar a maioria dos recursos de desenvolvimento mobile já utilizados, ou seja, android studio, ionic e outros (importante salientar que produzi pouco para mobile), acredito que me identifiquei por possuir recursos híbridos (IOS, Android) e conter um bundler simples/leve, uma plataforma intuitiva em nuvem, etc.
- Acredito que todo dev adepto a depuração dos services tem contato com o Postman, é uma API simples. Aliás, como prefiro desenvolver o back-end, acredito que tive uma familiarização rápida com o Postman.
- Assim como o Postman, o Insomnia atende muito bem para depuração dos end-points. Sendo uma API simples e completa.
- utilizo o Heroku para deployar/buildar apps, entretanto, considerei utilizar somente para os back-end/api. A plataforma tem atendido perfeitamente todas as minhas necessidades atualmente.
- Utilizei o Netlify para deploy front-end. Testei outras plataformas e realmente achei uma simplicidade em deployments com o Netlify, um exemplo é não ter que utilizar webpacks fora do projeto, como por exemplo inclusão do babel.
- Utilizo o Vercel para deploy das aplicações com React, simples, intuitivo, ótimo de usar, atendeu muito bem em todas as vezes que precisei, utilizo e indico, melhor referência de versionamento em nuvem atualmente.
- O Github é o único servidor qual tenho upado meus projetos, penso em migrar para o Gitlab sempre, mas pelo hábito contínuo no Github.
- o Firebase é uma das APIs que mais me encantam, razões: gerador de links, autenticação, tokenização, etc. Tenho incluído bastante nos meus projetos. Para ser sincero, ainda não encontrei outra plataforma que sirva com as mesmas disponibilidades/services.
- O RPi é um dos dispositivos que mantenho executando boa parte do tempo, atualmente, o meu ta com OS Lakka para emular alguns consoles, ainda existem desafios para implementação na máquina, por razão deste possuir um hardware com certa capacidade, se comparado aos demais.