Skip to content

Instantly share code, notes, and snippets.

@SkyaTura
Last active February 27, 2024 00:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SkyaTura/a96f26ca80853c9bde89ecd5835cf756 to your computer and use it in GitHub Desktop.
Save SkyaTura/a96f26ca80853c9bde89ecd5835cf756 to your computer and use it in GitHub Desktop.
Material de Desenvolvimento

Introdução

Este projeto será desenvolvido inteiramente em TypeScript, um superconjunto de JavaScript que incorpora tipos estáticos e inferência de tipos para um desenvolvimento mais robusto e organizado. JavaScript, sendo a linguagem dominante para desenvolvimento web, executa tanto em navegadores quanto em servidores, permitindo a unificação da base de código em todo o projeto.

O TypeScript enriquece o ecossistema JavaScript adicionando tipos estáticos, o que facilita o desenvolvimento de aplicações complexas e a manutenção de grandes bases de código, mantendo a flexibilidade e versatilidade do JavaScript.

O projeto adotará uma estrutura de mono-repositório, onde as interfaces visuais e as APIs de backend são desenvolvidas e mantidas juntas, mas operam de forma totalmente isolada, tanto em termos de arquivos de código quanto de runtime e infraestrutura. Serão utilizados frameworks específicos em cada parte do projeto para otimizar o desenvolvimento e garantir eficiência.

Geral

Linguagem de programação: TypeScript

  • TypeScript é um superconjunto de JavaScript que adiciona tipagem estática. Isso permite um desenvolvimento mais seguro e previsível, facilitando a detecção de erros em tempo de desenvolvimento.
  • Documentação oficial: TypeScript
  • Materiais de estudo: TypeScript Deep Dive

Backend

Runtime: Bun.js

  • Bun.js é um novo runtime JavaScript que visa proporcionar uma performance superior, compatibilidade com Node.js e suporte integrado para TypeScript.
  • Documentação oficial: Bun.js
  • Materiais de estudo: Introducing Bun.js

Bibliotecas: TRPC, mongoose

  • TRPC permite a criação de APIs TypeScript fortemente tipadas sem a necessidade de definir manualmente tipos de interface ou validações.
  • Mongoose é uma biblioteca de modelagem de objetos MongoDB para Node.js, que oferece uma solução baseada em esquemas para modelar os dados da aplicação.

Bancos de Dados: MongoDB, MySQL

  • MongoDB é um banco de dados NoSQL orientado a documentos, projetado para facilidade de desenvolvimento e escalabilidade.
  • MySQL é um sistema de gerenciamento de banco de dados relacional, conhecido por sua confiabilidade e ampla adoção.

Frontend

Bibliotecas: Vue.js, Vue Use, Vuetify

  • Vue.js é um framework progressivo para construir interfaces de usuário, focado em ser adaptável e integrável.
  • Vue Use é uma coleção de Composition API utilities para Vue.js, proporcionando uma série de funções reativas comuns e úteis.
  • Vuetify é um framework de componentes Vue.js que segue as especificações do Material Design, oferecendo uma ampla gama de componentes UI prontos para uso.

Framework: Nuxt.js

  • Nuxt.js é um framework baseado em Vue.js para criar aplicações universais, ou seja, aplicações que podem ser renderizadas tanto no cliente quanto no servidor.
  • Documentação oficial: Nuxt.js
  • Materiais de estudo: Nuxt.js Tutorial

Linguagem de template: Pug.js

  • Pug.js (anteriormente conhecido como Jade) é uma linguagem de template de alto desempenho, que compila para HTML e oferece uma sintaxe concisa e legível. No contexto deste projeto, Pug será utilizado dentro de Single File Components (SFC) do Vue, permitindo uma escrita mais elegante e concisa dos templates.
  • Documentação oficial: Pug.js
  • Materiais de estudo: Pug.js Tutorial, Building componentes with Pug

Linguagem de estilo: CSS

  • CSS é a linguagem usada para estilizar documentos HTML. Ela permite o controle preciso do layout de páginas web, incluindo cores, tipografia e muito mais.
  • Documentação oficial: CSS
  • Materiais de estudo: CSS Tutorial

Conclusão

À medida que o projeto evolui, mais tecnologias devem ser adotadas para atender a novas necessidades ou otimizar fluxos de trabalho existentes. É essencial manter as versões e padrões de desenvolvimento atualizados para garantir a segurança, eficiência e compatibilidade da aplicação. Continuaremos a explorar e avaliar novas ferramentas e práticas à medida que avançamos, sempre com o objetivo de melhorar a qualidade do projeto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment