Git Product home page Git Product logo

github-blog-reactjs-ignite2022's People

Contributors

marciovz avatar

Watchers

 avatar

github-blog-reactjs-ignite2022's Issues

Como fazer um commit - Conventional Commits

Commits padronizados servem para ajudar você e sua equipe a entender melhor o que foi feito no desenvolvimento

* Texto de Gustavo Henrique da Silva,
Application Development Analyst na Accenture

Já precisou entrar no seu github para procurar noscommits qualquer alteração que tenha feito e se deparou com algo mais ou menos assim?

posts

No início eu não sabia que existiam boas práticas para escrever um commit, então acabava escrevendo desse jeito: “Start”, “Melhorias” e “Update”. Sempre que precisava buscar algo, ficava perdido, sem achar as alterações que queria. Isso aconteceu até eu descobrir o Conventional Commits.

O que é Conventional Commits?

Conventional commits é um padrão de escrita de mensagens de commit que segue uma estrutura específica para facilitar a geração de changelogs automatizados, melhorar a comunicação entre desenvolvedores e ajudar a manter o histórico do repositório organizado.

Esse padrão está alinhado com o semver (semantic versioning), descrevendo recursos (features), correções (fixes) e alterações (changes) efetuadas nos commits. Entre os benefícios desse padrão, podemos citar:

  • Criação automatizada de CHANGELOGs
  • Histórico estruturado
  • Facilita a criação de relatórios
  • Facilita a entrada de novos desenvolvedores
  • Facilita a comunicação entre os desenvolvedores

Como usar o padrão

O padrão é baseado em um prefixo específico (tipo), um escopo opcional, um espaço em branco, uma mensagem curta, uma descrição detalhada opcional e um rodapé, ficando da seguinte forma:

TIPO: [DESCRIÇÃO_DO_COMMIT]

[

CORPO_DO_COMMIT

]

[RODAPE_DO_COMMIT}

Tipos

Os prefixos em "Conventional Commits" são labels utilizadas para identificar o tipo de mudança feita em um commit. O objetivo dos prefixos é fornecer uma maneira padronizada de identificar o tipo de mudança em um repositório, o que pode ser útil para equipes de desenvolvimento de software. Aqui você pode conferir alguns dos tipos existentes:

Feat

Cria um novo recurso no código.

Fix

Corrige um bug no código.

Style

Mudanças que não afetam o significado do código (espaço em branco, formatação falta de ponto-e-vírgula, etc).

Refactor

Uma alteração que não corrige um bug, nem adiciona um novo recurso.

Test

Adicionando testes ausentes ou corrigindo testes existentes.

Docs

Apenas a documentação.

Chore

Alterações no processo de compilação ou ferramentas e bibliotecas auxiliares, como geração de documentação.

Perf

Mudança de Código que melhora performance.

Build

Alterações que afetam o sistema de compilação ou dependências externas (npm, gulp, broccoli).

Ci

Alterações em nossos arquivos e scripts de configuração de CI (Travis, Circle, github actions).

Exemplo:

feat

Escopo

O escopo do commit é uma parte opcional, curta e de fácil compreensão. É nela que iremos dizer qual parte do código foi modificada e como indicar que fizemos alterações apenas na camada de Client de um serviço.

Exemplo:

feat(usuario):

Descrição

A descrição, juntamente com o tipo, é uma das partes mais importantes do padrão: é aqui que deve ser descrito, de maneira clara, sucinta e simplificada, o que foi realizado no commit. É recomendado que essa parte tenha, no máximo, 70 caracteres, para que não se estenda muito.

Exemplo:

feat(usuario): criação da tela de login

Corpo

O corpo é a parte da mensagem de commit que fornece detalhes adicionais sobre as alterações feitas no código. Ele é opcional, mas é recomendado, especialmente quando as alterações são complexas ou precisam de contexto adicional. O corpo do commit deve ser escrito em uma ou mais linhas e deve fornecer informações suficientes para que outros desenvolvedores possam entender o que foi mudado e por quê.

A descrição curta e o corpo do commit, juntos, formam a mensagem de commit completa.

Exemplo:

feat(usuario): criação da tela de login	
- criação da tela
- validação do e-mail
- validação da senha

Rodapé

O rodapé também é uma parte opcional da mensagem de commit que pode ser usado para fornecer informações adicionais sobre as alterações feitas no código. Ele geralmente é colocado após o corpo da mensagem e é separado do corpo por uma linha em branco. O rodapé do commit pode ser usado para incluir informações como números de ticket de suporte, links para relatórios de bugs ou outros recursos relacionados.

Exemplo:

feat(usuario): criação da tela de login
- criação da tela
- validação do e-mail
validação da senha
Closes #123

Como praticar

Para facilitar a aplicação desse padrão existem ferramentas que podem te auxiliar bastante.

Husky
Cria um Hook para validar o commit com o CommitLint.

CommitLint
Tem como objetivo ajudar você e seu time a aderir o padrão convencional de commits validando o commit quando ele é efetuado.

Commitzen
Ajudar a escrever o commit com todas as informações necessárias, te ajudando a não esquecer nada.

Às vezes é um pouco chato instalar e configurar ferramentas. Por isso, criei um script que pode ser usado para criar o projeto do zero e configurar as três ferramentas.

Requisitos para executar o script:
Ter YARN instalado
Básico de Shel Script

Observação: o Yarn pode ser substituídos por NPM

Aqui você vai encontrar o script criado para configurar um repositório do zero com as ferramentas que comentei acima, assim você só vai precisar se preocupar em executar o comando.

Se você quiser saber um pouco mais, pode acessar as documentações utilizadas aqui:

E aí, o que achou ?

Espero que tenha gostado!

npm: pacotes, pacotes e pacotes

Repositório hospeda cerca de 1,3 milhão de pacotes, atingindo métricas de até 75 bilhões de downloads mensais

npm é uma sigla para Node Package Manager, cuja tradução direta é bem simples: Gerenciador de Pacotes Node.

É um recurso incluído e recomendado para usuários de Node.js, framework de desenvolvimento back end em JavaScript.

O nome já é auto explicativo, no entanto, vamos destrinchar as peculiaridades da ferramenta um pouco além disso.

Somos uma plataforma completa de aprendizado contínuo em programação

npm é duas coisas

Segundo a comunidade Node.js, npm é, em tese, duas coisas: um repositório online para a publicação de projetos open-source em Node.js e uma linha de comando (código) utilizada para criar interações entre repositórios, instalação de pacotes, gerenciamento de versões e dependências.

O seu repositório hospeda cerca de 1,3 milhão de pacotes, atingindo métricas de até 75 bilhões de downloads mensais. Este recurso pode ser explorado na página oficial da ferramenta e a instalação de qualquer pacote é expressa em uma única linha de comando.

Isaac Z. Schlueter

Criado e desenvolvido em 2010 pelo engenheiro Isaac Z. Schlueter, na época que o Node.js ainda era uma ferramenta emergente. Naquele momento, o cenário de programação back end em JavaScript estava começando a ser desenvolvido e aperfeiçoado pela comunidade.

Segundo Isaac, nesta discussão histórica, publicada em 2013 no GitHub, ele desenvolveu o npm porque:

"tinha visto o empacotamento de módulos ser feito de maneira terrível e brilhante, e queria ter certeza de que o Node não acabaria com algo como Pear."

npm, Inc

Os números não deram trégua: o recurso foi uma ferramenta crucial para o ambiente JS durante os próximos anos. Com o sucesso do ecossistema back end JavaScript — liderado pela comunidade Node.js —, em 2014 Isaac criou a empresa npm, Inc para formalizar a gestão da ferramenta e sua expansão cada vez mais significativa.

Em 2020, o GitHub (já como subsidiária da Microsoft) comprou a npm, Inc com o objetivo de melhorar a infraestrutura do gerenciador de pacotes, além de agregar ainda mais para a experiência de desenvolvimento e da comunidade.

Aqui você vai encontrar o caminho para estar entre os melhores

Parte crítica do mundo JavaScript

Nat Friedman, CEO do GitHub, ao anunciar a compra reconheceu que "npm é uma parte crítica do mundo JavaScript", justamente por sua participação referência durante estes 10 anos de maturidade e contribuição open source.

GitHub é uma subsidiária da Microsoft desde 2018, numa compra estimada no valor de US$ 7,5 bilhões.

Apesar de ser uma atitude recente da Microsoft, uma das leituras possíveis é que a gigante está investindo cada vez mais no ecossistema de código aberto JavaScript.

video

Saiba mais:

Para quem gostaria de ter uma introdução básica sobre o que é e como funciona o npm, recomendo esta leitura rápida, disponível no blog da Hostinger, escrita por Andrei Longen.

Este vídeo, em inglês, publicado pela freeCodeCamp.org também é uma boa referência inicial.

Marcadores

Fundamentos-da-programação
Felipe Buzzi
Content writer @ Rocketseat

Python: linguagem popular com berço na comédia inglesa

Ocupando o pódio entre as gigantes do mercado, Python conquistou a programação com sua estrutura madura, referência e humor

Muitas coisas aconteciam simultaneamente no mundo durante a década de 70, principalmente na tecnologia: basta dizer que o primeiro email foi enviado em 1971, por Ray Tomlinson. O que aconteceu também foi a estreia da sketch televisa de humor, Monty Python’s Flying Circus, na BBC britânica, em 1969. Esse pequeno evento televisivo influenciou gerações, incluindo — sim — programadores.

Você já deve ter pego a referência com o tema do artigo, certo? Em 1991, vinte anos depois, influenciado pelos roteiros surreais do seriado inglês, Guido van Rossum decidiu nomear a linguagem que desenvolvia em homenagem ao humor: então surge o Python.

Um fato histórico que une comediantes, tecnologia e programadores.

Acelere cada etapa de sua carreira em programação

Monty Python's Flying Circus (Intro) S2 (1970)

30 anos de tecnologia, humor e comunidade

Em poucas palavras e seguindo a definição deles, Python é uma linguagem de programação interpretada, interativa e orientada a objetos. Em tese é uma linguagem que combina velocidade com tipagem dinâmica e forte, “fácil-para-ler”.

Isso é apenas a superfície da tecnologia, já que existem fatores que influenciaram o seu crescente uso no mercado da programação.

Exatamente no meio entre JavaScript e Java, Python ocupa o pódio entre as gigantes que o mercado procura, e conquistou a programação com a sua estrutura madura — de mais de 30 anos — referência, humor e comunidade.

Maneira óbvia de resolver o problema: matemática e filosofia

Toda a filosofia da tecnologia é baseada no Zen of Python, uma coleção de 19 princípios que influenciam o design e a experiência de programar usando a linguagem.

“Beautiful is better than ugly, explicit is better than implicit, simple is better than complex”.
Guido van Rossum trabalhou na linguagem desde a década de 80 até 2018, quando se afastou do projeto. Antes de criar o Python, Guido fazia parte do time de desenvolvimento da linguagem ABC, na Holanda. Segundo ele — e com base nas demandas da época — existem três fundamentos que o guiaram no desenvolvimento do Python: legibilidade, extensibilidade e manutenção.

A filosofia central da tecnologia é baseada na frase: “deve haver uma - e de preferência apenas uma - maneira óbvia de resolver o problema”.

Data science e machine learning

Segundo o HackerRank Survey de 2020, 49,5% das empresas procuram por programadores com Python entre as habilidades, perdendo apenas para o JavaScript, com 53,6%.

Não há dúvidas sobre a referência do Python dentro da comunidade e do mercado, no entanto, há certos nichos que vale ressaltar sobre a usabilidade da tecnologia e seu ecossistema. Apesar de ser reconhecida por trabalhar bem com outras linguagens e ter um vasto uso, incluindo desenvolvimento web, o Python conquistou, ao longo da última década, espaço dedicado dentro do gerenciamento de dados em redes sociais e machine learning.

Universo Python

Escolha popular

Em 2017, Python chamou a atenção por ser considerada a linguagem que mais crescia dentro da comunidade, segundo o Stack Overflow. A conclusão deles foi que havia um crescimento da tecnologia no meio dos setores de data science, machine learning e pesquisa acadêmica, bastava ver os números de perguntas relacionadas ao Pandas, biblioteca para manipulação de dados e análise.

Como consequência disso, as frameworks de desenvolvimento web com base no Python, como Django e Flask, também cresceram. Vários motivos explicam a preferência, entre eles as filosofias citadas anteriormente. Se querem ficar bem por dentro dos números do Stack Overflow, basta ver o survey deles de 2019.

Conhecimento e bagagem

A gente viu que Python está no mercado há anos, não é nenhuma novidade dentro da tecnologia. Concluímos que sua aplicação está cumprindo objetivos dentro de um nicho: o mercado de data science e machine learning, impulsionado nos últimos anos com a maturidade desse setor e de novas demandas. De novo, o embate de qual é a melhor linguagem é contra produtivo, você deve avaliar diversos fatores dentro dos ecossistemas.

A programação é complexa e nada é tão simples.

As únicas coisas que são vantajosas, em todas as situações, é o conhecimento e a bagagem de informações que você acumulou ao longo do tempo. A história da tecnologia não para.

Marcadores

Felipe Buzzi
Content writer @ Rocketseat

Código Limpo: reflexão e prática

Um conjunto de filosofias extremamente importantes e populares no ecossistema

Desenvolvimento de software possui diversas bases teóricas que definem o comportamento da programação e ajudam a padronizar métodos de criação. Os livros possuem um papel fundamental para a compreensão dessas bases, eles estão localizados no que definimos de “tempo da reflexão”, um pouco distantes do “tempo da prática”. Os princípios do Código Limpo fazem parte de um conjunto de filosofias extremamente importantes e populares no ecossistema.

No entanto, principalmente entre iniciantes, ainda existem dúvidas sobre o que é, afinal, um “código limpo” e o que ele representa na prática e na lógica do mercado.

Embarque em nosso foguete e acelere etapas da sua carreira em programação

Robert C. Martin

Robert C. Martin escreveu o livro “Clean Code” em 2009, um pouco antes da virada da década, e desde então serve como referencial fundamental para a consolidação de novos projetos que surgiram entre 2010 e 2020.

Além de ter uma bibliografia referente na área, Robert foi um dos co-autores do manifesto ágil. Ele também definiu os cinco princípios de design SOLID, com o objetivo de tornar o desenvolvimento de software mais compreensível, flexível e sustentável.

Com uma extensa carreira no desenvolvimento de códigos, Robert se dedica em unir os dois tempos, reflexão e prática, para contribuir na qualidade de vida dos programadores e usuários, aproximando a tecnologia com interesses humanos.

Não há regras, nem leis, nem manuais

O desafio aqui é me propor a explicar para você o que é código limpo da maneira mais objetiva possível, sem deixar confusões e, no mínimo, alimentar a sua curiosidade em saber mais sobre o assunto.

E eu confesso que já comecei errado: “clean code” é uma ideia subjetiva reunida com base em princípios de boas práticas, ou seja, não há características definitivas.

Não há regras, nem leis, nem manuais. No entanto, há pistas que podemos encontrar, entre estudos de erros e acertos, do que pode ser considerado um exemplo de código limpo.

Prosa elegante e eficaz

Para definir o que é Código Limpo, nessa palestra disponível no YouTube, Robert cita alguns programadores reconhecidos pela comunidade. Grady Booch define:

“código limpo é simples e direto. Código limpo é lido como uma prosa bem escrita”.

Booch é um dos teóricos responsáveis em criar os fundamentos de projetos orientados a objetos, e abriu portas para novas metodologias de desenvolvimento colaborativo.

A sua definição sobre código limpo está conectada à legibilidade do código, cujo deve ser lido e apreciado como prosa literária.

Bjarne Stroustrup, criador do C++, apresenta uma definição um pouco mais objetiva e reflexiva na prática:

“Eu gosto que meu código seja elegante e eficiente… uma coisa o código limpo faz bem”.
Bjarne apresenta uma visão única ao unir elegância e eficiência dentro do desenvolvimento.

REFATOREI UM CÓDIGO REACT USANDO CLEAN CODE

Adeus, clean code

O programador Dan Abramov, um dos desenvolvedores do núcleo React, no Facebook, escreveu um artigo provocando o conceito de clean code e sobre a busca, quase obcecada, de muitos programadores pelo código elegante.

Você pode conferir o artigo aqui.

Nas palavras de Dan, “código limpo não é um objetivo. É uma tentativa de buscar sentido nessa imensa complexidade de sistemas que estamos lidando”.

Como vocês podem reparar, unir consenso e fechar o conceito numa frase única, objetiva, definitiva, pode gerar uma série de problemas, já que a tecnologia é movida por resultados e subjetividades humanas.

Reflexão carinhosa sobre boas práticas

Para compreender o que é código limpo basta observar e refletir com atenção — e carinho — suas boas práticas. Muitos profissionais da área eventualmente vão passar por um momento de reflexão e observar seus princípios — com suas respectivas subjetividades e objetivos em mente.

Concordamos que pode ser um passo fundamental para quem precisa expandir novas rotas dentro da programação e compreender melhor a fluidez do conhecimento e da tecnologia.

Em 2015, bem no começo do canal, o Filipe Deschamps fez um vídeo para comentar a sua leitura sobre “Código Limpo” e pontuar os princípios da filosofia.

CLEAN CODE #1: Introdução

Sobre reflexão e boas práticas, o Diego Fernandes, aqui na Rocketseat, fez um Code/Drops no passado para explorar os princípios da programação, entre eles o DRY, KISS e YAGNI. Você pode ver o vídeo aqui.

Marcadores

Felipe Buzzi
Content writer @ Rocketseat

Boas práticas para devs em início de carreira

As principais lições e dicas compiladas para quem está começando na programação ou migrando para a área.

*Texto por Camila Coelho

Hoje devs são peças fundamentais de todo negócio, estão nas startups e nas pequenas e médias empresas que buscam soluções tecnológicas para seus produtos e serviços.

Em uma busca rápida, é possível encontrar centenas de notícias e pesquisas que apontam a falta de mão de obra qualificada na área. A conclusão das matérias é a mesma: sobram vagas no Brasil e chovem oportunidades internacionais.

Quem se destaca pode nadar de braçada nesse oceano de possibilidades. Nesse artigo estão reunidos todos os ensinamentos para você iniciar sua carreira em programação com o pé direito.

Defina sua jornada

Antes de tudo, você precisa saber para onde está indo. Iniciantes na programação costumam se perder em meio a tanta informação. Você precisa ter objetivos bem definidos para traçar a melhor rota de evolução na carreira.

Certifique-se de ter uma base sólida nos fundamentos da programação. Só depois de conhecer o básico, você saberá para onde seguir. Esse curso gratuito ensina programação desde o marco zero, para quem nunca teve contato com tecnologia e ajuda a consolidar conhecimentos padrões.

Escolha uma linguagem

Conhecer uma única tecnologia profundamente vai te ajudar mais que saber várias superficialmente. Isso não significa que você nunca poderá aprender outras no futuro, apenas que vai direcionar seu foco para um objetivo de aprendizagem.

Dominando uma linguagem você se aproxima de empresas que costumam buscar por pessoas que cumpram papéis específicos em um time de tecnologia.
Acompanhando a evolução das ferramentas que usa, você não deixa que suas aplicações fiquem ultrapassadas e continua relevante para o mercado.

Organize seus estudos

Tenha em mente que a tecnologia está em constante evolução, devs precisam continuar estudando mesmo depois de ingressar no mercado. Ter o hábito de se dedicar aos estudos irá fazer toda a diferença no seu crescimento de carreira.

Crie um cronograma de estudos

Defina um plano de estudos que faça parte da sua rotina da melhor forma possível. Dicas para construir seu cronograma de estudos:

  • Entenda sua rotina. Faça um planejamento realista. Liste suas tarefas, refeições, obrigações e reserve um tempo de foco profundo para se dedicar ao código.
  • Organize seu cronograma conforme pequenos objetivos. Separe seu tempo para absorver conteúdos, praticar, testar e revisar o que aprendeu nos últimos dias.
  • Use ferramentas de organização. Plataformas como o Notion são ótimas opções para planificar sua agenda e para documentar seus materiais de estudo, links úteis e ideias de projetos.
  • Aplique a técnica Pomodoro. Esse método te ajuda a aproveitar tempos de estudo sem nenhuma interrupção, intercalando com momentos de descanso. Cronometre 25 minutos de estudos, quando o tempo terminar, faça uma pausa de 5 minutos e retome os estudos por mais 25 minutos.

Tenha constância nos estudos

Ter frequência nos estudos é mais relevante para o seu aprendizado que focar por grandes períodos de tempo.

Estudar todos os dias o ajudará a fixar conhecimentos ao manter-se em contato recorrente com o que precisa aprender. É preferível que você estude por um período de tempo menor por dias recorrentes, que por muitas horas em um único dia da semana.

Pratique e Pratique

Não tem jeito, programação é uma disciplina prática. Apenas codando que você vai conseguir desenvolver suas habilidades técnicas. A teoria virá a partir da prática, não ao contrário. Praticar também vai te ajudar a desenvolver o pensamento crítico necessário para resolver problemas e priorizar tarefas.

Conte com a comunidade

Se envolver em comunidades será um divisor de águas para sua carreira. Ajudar outras pessoas desenvolvedoras vai fazer com que você fixe melhor seu aprendizado. A comunidade vai te dar suporte frente a problemas desafiadores para você.

Evoluir em comunidade também é uma ótima oportunidade para você se preparar para trabalhar em um ambiente de Pair Programming.

Pair Programming é uma técnica de desenvolvimento ágil em que devs trabalham em pares, em uma única estação de trabalho. Em algum momento da sua carreira você vai ter contato com o trabalho em par, use a comunidade para sair na frente e se preparar para ele.

Dica: abra em nova aba ou favorite esse guia prático de como contribuir para o ecossistema de tecnologia. Ele tem dicas super úteis para você que está começando a programar.

Networking é tudo!

Em toda e qualquer carreira, fazer Networking é uma das principais estratégias de visibilidade para profissionais. Em desenvolvimento não seria diferente.

Ao passo que ganha relevância na comunidade, melhores oportunidades chegarão até você. Ou talvez, você possa encontrar aquela pessoa que vai criar sociedade com você para empreender conforme seus objetivos, e se conectar com profissionais que você conhece as competências.

Desenvolva suas soft skills

Soft Skills são as habilidades comportamentais, aquelas que vão além dos seus conhecimentos técnicos. Não negligencie suas habilidades de comunicação, atitude, pensamento crítico, criatividade e outras que não podem ser substituídas pelo domínio da programação.

Parece complicado para quem se acostumou a lidar apenas com a sua própria tela, a boa notícia é que você verá o desenvolvimento dessas habilidades fluir sempre que você estiver presente em comunidade, compartilhando conhecimento.

Impulsione sua carreira

Pense na sua carreira profissional como uma marca. Sua marca precisa ser sólida, ter credibilidade e ser divulgada. Para se destacar no início da sua carreira ou em qualquer outra etapa dela, avance por alguns atalhos como Eventos de Tecnologia, Hackathons e Projetos Pessoais.

Eventos de tecnologia - Basta acompanhar as comunidades para ficar por dentro dos principais eventos de tecnologia. Desde workshops, para você aprender praticando, a empreendedorismo e conversas, para você acompanhar o avanço da tecnologia. O Networking é outro ponto positivo de fazer parte dos eventos sempre que possível.

Hackathons - Esses são eventos que podem ser definidos como uma disputa prática para profissionais de tecnologia. Os Hackathons te ajudam a ganhar experiência no desenvolvimento de soluções em grupo, indo da ideação ao produto final.

Projetos pessoais - Os projetos pessoais são uma forma de você desenvolver suas habilidades técnicas, criatividade e pensamento crítico. Tudo que você construir se torna bagagem para seu currículo e casos reais para o seu portfólio.

Importante, adicione tudo que você fizer ao Github e escreva um bom README.

Todos seus projetos contam como experiência para seu portfólio, independentemente da complexidade. Como toda sua evolução, a construção do seu portfólio também começa com um primeiro passo e vai avançando de nível.

Mesmo que você acredite que não tem por onde começar, comece. Com o tempo seu conhecimento e projetos vão ganhando forma.

Tá sem ideia de projetos e já quer começar a se desafiar? Entre no Discover, você terá acesso a dezenas de desafios com instruções de como realizá-los.

182924207-e2786154-bafa-407c-93d0-fca2207b6df8

TypeScript: por trás do superset de JavaScript

Um conjunto de ferramentas JavaScript que adicionou tipagem e novos recursos na linguagem

Faz algum tempo já que estamos encantados com o TypeScript e já inserimos a tecnologia em nossa programação diária. Entre iniciantes ainda existe muitas dúvidas sobre o que significa, na prática, TypeScript e quais são suas diferenças com o JavaScript.

Os que já estão mais adaptados com ele, no entanto, podem não saber de detalhes, ou curiosidades, relevantes sobre a trajetória do TS dentro do mercado de trabalho.

O conteúdo de hoje vai se aproximar de uma conversa mais técnica para tentar responder algumas perguntas e compreender, afinal, quais foram os impactos do TypeScript em nossos códigos.

O mapa completo para você impulsionar sua evolução

2012

Dizer que TypeScript é uma linguagem pode servir para generalizar a sua adoção e simplificar a referência, no entanto, pode ser um pequeno deslize de definição. Segundo a Microsoft, TS é um superconjunto — superset — de JavaScript que adiciona novos recursos na linguagem, como tipagem.

Ou seja, um conjunto de ferramentas criado e encorpado sobre o JavaScript. Foi desenvolvido por um time de desenvolvimento dentro da Microsoft e seu primeiro release foi em 2012.

Demorou um tempo para ser adotado pelo mercado, mas em 2018 a tecnologia já disputava o pódio entre as linguagens mais amadas dentro do ecossistema de desenvolvimento web, ocupando o quarto lugar.

Atomic Design e Typescript no React Native

Impulso

Algumas coisas podem justificar o impulso da linguagem, que completa oito anos agora em outubro. O ponto definitivo para se tornar referência aconteceu em 2016, quando o Angular, framework da Google, decidiu adotar o TypeScript como linguagem oficial.

Esse evento pode ser ilustrado neste gráfico do Stack Overflow — repare no crescimento do número de perguntas da comunidade nos últimos quatro anos. Em 2020 o TypeScript se coloca em segundo lugar entre as linguagens mais amadas, de acordo com este survey.

Ryan Cavanaugh

Segundo o atual engenheiro líder da equipe que mantém o TypeScript na Microsoft, Ryan Cavanaugh, nesta entrevista para o Stack Overflow, a iniciativa surgiu porque alguns times dentro da empresa, como o TFS e Office, queriam criar aplicações grandes utilizando JavaScript.

Na época essas equipes estavam acostumadas com linguagens estaticamente tipadas, como C++, C# e Java.

“Eles queriam ter essa tipagem estática disponível para escalabilidade e tooling”.

Ao invés de criar uma nova linguagem do zero, no entanto, eles decidiram pegar o JavaScript e adicionar tipagem estática nele para uso imediato. Recomendo vocês darem uma lida com atenção na entrevista de Ryan para saber de detalhes sobre as decisões internas da Microsoft ao desenvolver o TypeScript.

Inseguranças por trás da novidade

Beleza, o TypeScript supriu uma necessidade interna da Microsoft e foi adotado pelo Angular, mas ainda assim, muitos desenvolvedores sentiram um certo receio para experimentar as novas funções da linguagem.

Com o mercado adotando cada vez mais o uso do TypeScript, é normal vir uma bagagem de inseguranças, tanto para quem começa a programar em JavaScript como para quem já está na frente de desenvolvimento.

Afinal, será que não estamos matando as vantagens do JavaScript em ser tão dinâmico e o transformando em um Java, que é estático? A adição dessas tipagens ajudam ou prejudicam na criação de nosso projeto? Bom, acho que a resposta mais honesta é: depende.

Acesse as melhores oportunidades da sua carreira como dev

Nada é tão simples por aqui

Não é muito viável dizer com total garantia que as tipagens inseridas pelo TypeScript no JavaScript vão te ajudar, ou prejudicar. Não é tão simples porque tudo depende de variáveis relevantes, por exemplo: o tempo disponível para o preparo de seu time e a escala que o projeto pode tomar.

Segundo o próprio engenheiro do time, Ryan Cavanaugh, naquela entrevista, “se tipagem estática não é uma escolha certa para você, seja para seu estilo de programar ou para o problema que você está trabalhando em cima, só pule. Tá tudo bem. É okay. Não vou ficar ofendido”.

TypeScript, o início, de forma prática | MasterClass #07

Otimizar o seu conhecimento

No entanto, há considerações importantes. Nós defendemos o uso do TypeScript ao se trabalhar em algumas situações onde o código é open source, para evitar uma centena de problemas, e para projetos que precisam de escala, para otimizar grandes processos de produção.

O melhor jeito de entender o TypeScript é enxergá-lo como uma evolução que pode te ajudar muito em alcançar novas camadas de produtividade e criação no seu desenvolvimento.

Você pode conferir, com detalhes, a nossa visão sobre o assunto neste Masterclass do Diego Fernandes, e ainda conhecer, na prática, as funções do TypeScript.

Marcadores

Felipe Buzzi
Content writer @ Rocketseat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.