Category: Desenvolvimento

Por que GUIs precisam de pelo menos 2,5 iterações: Uma crítica ao desenvolvimento de software enxuto

2025-06-03
Por que GUIs precisam de pelo menos 2,5 iterações: Uma crítica ao desenvolvimento de software enxuto

Este artigo critica as limitações do desenvolvimento de software enxuto, argumentando que sua analogia do desenvolvimento de software a uma linha de montagem de fábrica é fundamentalmente falha. O desenvolvimento de software é mais parecido com um processo de design, exigindo experimentação iterativa para descobrir o que os usuários realmente querem. Usando o desenvolvimento de GUI como exemplo, o autor destaca como a construção de GUIs frequentemente envolve várias iterações antes de atingir um resultado satisfatório, muito diferente do fluxo linear de uma linha de produção de fábrica. O conceito de 'desperdício' no desenvolvimento de software enxuto se mostra difícil de aplicar ao software, negligenciando a importância da exploração e descoberta. O autor argumenta que o desenvolvimento de software bem-sucedido se assemelha a um processo de descoberta, não de fabricação, exigindo uma compreensão profunda das necessidades do usuário e melhoria contínua por meio de iteração.

Desenvolvimento desenvolvimento enxuto

Design de Software de Informação: O Triunfo dos Gráficos, a Falha da Interação?

2025-06-03

Em seu artigo, Bret Victor questiona os princípios tradicionais de design de software, argumentando que a maior parte do software (software de informação) se concentra na apresentação de informações, e não na interação. Ele defende o design de software de informação baseado no design gráfico, reduzindo a interação do usuário por meio de visualizações inteligentes e reconhecimento de contexto. O artigo utiliza exemplos como horários de trens, livrarias online e listagens de filmes para contrastar os designs interativos tradicionais com abordagens guiadas pelo design gráfico. Propõe métodos de inferência de contexto usando detecção ambiental e dados históricos. Victor faz um apelo para que a indústria de design de software priorize a comunicação visual, revolucionando o design de software de informação para experiências de usuário mais intuitivas e eficientes.

Desenvolvimento Design Gráfico

IA nas Humanidades: Uma Espada de Dois Gumes

2025-06-03
IA nas Humanidades: Uma Espada de Dois Gumes

Este artigo explora o profundo impacto da IA generativa na educação humanística. O autor argumenta que ignorar a influência da IA é tolice, pois os modelos de linguagem de IA dependem do conhecimento e das habilidades humanísticas. A IA demonstra um imenso potencial em tradução de idiomas, classificação e outras áreas, enquanto as habilidades humanísticas são cada vez mais cruciais para a própria pesquisa de IA. Por meio da experiência pessoal de desenvolver jogos educacionais com temas históricos, o autor mostra as aplicações da IA no ensino, mas também aponta que o mau uso da IA pode levar à diminuição do engajamento dos alunos e exacerbar as desigualdades educacionais. Por fim, o autor conclama os educadores a participarem ativamente no desenvolvimento de ferramentas de ensino de IA personalizadas, prevenindo o abuso da IA e mantendo os valores fundamentais da educação de qualidade.

Framework OAuth 2.1 Provider para Cloudflare Workers: Uma biblioteca de segurança assistida por IA

2025-06-03
Framework OAuth 2.1 Provider para Cloudflare Workers: Uma biblioteca de segurança assistida por IA

Esta biblioteca TypeScript implementa o lado do provider do protocolo OAuth 2.1 com suporte a PKCE para Cloudflare Workers. Ela atua como um wrapper, automatizando o gerenciamento de tokens e a autenticação do usuário. Os desenvolvedores escrevem handlers fetch regulares; a biblioteca cuida da autenticação. É agnóstica em relação ao gerenciamento de usuários e frameworks de IU, armazenando apenas hashes, não segredos. Curiosamente, o desenvolvimento da biblioteca envolveu o modelo de IA Claude, com a revisão de segurança dos engenheiros da Cloudflare validando o potencial da IA no desenvolvimento de software. A biblioteca também apresenta uma abordagem inovadora para o gerenciamento de tokens de atualização, equilibrando segurança e resiliência a erros transitórios.

Desenvolvimento

MonsterUI: Construindo interfaces de usuário web modernas em Python puro

2025-06-03
MonsterUI: Construindo interfaces de usuário web modernas em Python puro

Cansado de alternar entre HTML, CSS e Python para construir interfaces de usuário web básicas? O MonsterUI está aqui para resolver isso! Construído sobre o FastHTML, ele permite que você crie aplicativos web bonitos e responsivos usando apenas Python. Aproveitando bibliotecas modernas como Tailwind, FrankenUI e DaisyUI, o MonsterUI fornece componentes pré-estilizados e padrões inteligentes, mantendo o acesso total ao Tailwind CSS. Ele simplifica o estilo, permitindo que você se concentre em recursos em vez de lembrar classes de utilitário. Os recursos incluem temas, componentes básicos, estilo de texto semântico, auxiliares de layout inteligentes, padrões comuns de IU e componentes de nível superior para maior produtividade.

Desenvolvimento Framework de IU

Amazon disponibiliza curso de verificação de programas baseado em Dafny

2025-06-02

A Amazon tornou público materiais didáticos para verificação de programas usando Dafny. O curso vai além da programação básica em Dafny, explorando suas capacidades como assistente de prova. Ele é estruturado em três partes: a Parte 1 apresenta a linguagem de programação Dafny; a Parte 2 explora o Dafny como um assistente de prova, cobrindo métodos de prova formais como dedução natural; e a Parte 3 aplica esse conhecimento à verificação de programas, cobrindo programas funcionais, imperativos e orientados a objetos. Este recurso é adequado tanto para iniciantes quanto para desenvolvedores experientes em Dafny, oferecendo uma abordagem abrangente à verificação de programas.

Desenvolvimento prova formal

Modelagem Extrema no MongoDB: Verificação de Conformidade na Prática

2025-06-02

Engenheiros do MongoDB experimentaram com especificações TLA+ e duas técnicas de verificação de conformidade (verificação de rastreamento e geração de casos de teste) para verificar se as implementações de seus produtos correspondem às especificações. O experimento de verificação de rastreamento, realizado no servidor MongoDB, teve como objetivo validar a implementação do protocolo de consenso Raft; o experimento de geração de casos de teste, no SDK móvel MongoDB, teve como objetivo validar o algoritmo de transformação operacional. Os resultados mostraram que a verificação de rastreamento falhou devido à dificuldade de capturar instantâneos do estado de um programa multithread e discrepâncias entre a especificação e a implementação, enquanto a geração de casos de teste descobriu com sucesso um erro no algoritmo e atingiu 100% de cobertura de ramificação. O artigo resume as lições aprendidas e apresenta avanços recentes no campo, destacando a importância da verificação contínua de conformidade para a adoção generalizada do TLA+.

Programação Assistida por LLM: Hype ou Revolução? A Perspectiva de um Programador Veterano

2025-06-02
Programação Assistida por LLM: Hype ou Revolução? A Perspectiva de um Programador Veterano

O programador veterano Thomas Ptacek refuta a ideia de que as ferramentas de programação de IA são apenas uma moda passageira. Ele argumenta que, embora o código gerado por LLM não seja perfeito e exija revisão e refinamento humanos, ele aumenta dramaticamente a eficiência da codificação, especialmente para tarefas repetitivas. Usando agentes, os LLMs podem lidar autonomamente com a escrita de código, testes e depuração, reduzindo significativamente a carga de trabalho do programador. O autor afirma que os LLMs não devem substituir os programadores, mas sim se tornar assistentes poderosos, aumentando a eficiência geral do desenvolvimento, especialmente ao lidar com grandes quantidades de trabalho repetitivo.

(fly.io)
Desenvolvimento programação de IA

A Arte de Agrupar Valores de Atributos em HTML: Tornando o Código Mais Legível

2025-06-02
A Arte de Agrupar Valores de Atributos em HTML: Tornando o Código Mais Legível

Este artigo apresenta uma maneira aprimorada de organizar atributos de classe HTML. Ao adicionar espaços, quebras de linha ou outros caracteres dentro do valor do atributo de classe, diferentes classes CSS podem ser agrupadas de forma mais clara. Por exemplo, usando `[card] [section box] [bg-base color-primary]` ou `card | section box | bg-base color-primary` em vez de `card-section-background1-colorRed`. Embora essa abordagem não seja isenta de limitações (os otimizadores podem remover espaços, os pré-processadores podem reorganizar os valores), ela pode melhorar a legibilidade e a manutenibilidade do código, especialmente em projetos grandes. O autor também demonstra maneiras mais criativas de melhorar a legibilidade de atributos de classe usando emojis ou comentários, lembrando os leitores da importância da compreensão do código e do trabalho em equipe.

Desenvolvimento

Exploração de Dia Zero em CoreAudio do macOS: Uma Análise Detalhada

2025-06-02
Exploração de Dia Zero em CoreAudio do macOS: Uma Análise Detalhada

Em abril de 2025, a Apple corrigiu uma falha no CoreAudio que estava sendo ativamente explorada: CVE-2025-31200, uma vulnerabilidade de corrupção de memória. Um pesquisador de segurança analisou meticulosamente a falha, comparando versões antigas e novas de binários e identificando a função problemática: apac::hoa::CodecConfig::Deserialize. A vulnerabilidade decorria do tratamento incorreto do tamanho de um array durante a análise de dados de áudio. Ataques poderiam explorar isso para leitura/escrita fora dos limites, causando uma queda do sistema. Através de engenharia reversa e análise dinâmica, o pesquisador reproduziu a vulnerabilidade, revelando seu método de exploração. Ela se aproveita do Apple Positional Audio Codec (APAC), usando um arquivo de áudio manipulado para controlar tamanhos de arrays e obter acesso à memória fora dos limites. Embora resultasse em uma queda, o potencial desta vulnerabilidade para ataques mais sofisticados é significativo.

Desenvolvimento Dia zero

Vanta: Analisador de Comportamento de Pacotes Leve – Um Obrigado de um Estudante

2025-06-02
Vanta: Analisador de Comportamento de Pacotes Leve – Um Obrigado de um Estudante

Vanta é um analisador de comportamento de rede leve, rápido e baseado em linha de comando que reconstrói fluxos em nível de protocolo e extrai atividades estruturadas de dados capturados. Ao contrário de ferramentas GUI completas como o Wireshark, o Vanta prioriza clareza, estrutura e simplicidade, tornando-o ideal para scripts personalizados e configurações mínimas. Ele suporta análise de HTTP, DNS e TLS (com impressão digital parcial), reconstrói automaticamente fluxos bidirecionais e gera resumos JSON limpos. Desenvolvido em um MacBook Air M1 por um estudante de graduação como um agradecimento às universidades que apoiaram estudantes internacionais.

Desenvolvimento

Onlook: Um Editor de Código Visual Primeiro, de Código Aberto, para Designers

2025-06-02
Onlook: Um Editor de Código Visual Primeiro, de Código Aberto, para Designers

Onlook é um editor de código visual primeiro, de código aberto, construído com Next.js e TailwindCSS, permitindo que designers editem diretamente no DOM do navegador e vejam as alterações de código em tempo real. Ele possui assistência de IA, ajustes de layout de arrastar e soltar e a capacidade de clicar com o botão direito em um elemento para ir diretamente para sua localização no código. Atualmente em desenvolvimento ativo, o Onlook recebe contribuições da comunidade.

Desenvolvimento

Procuramos Engenheiro de Backend Sênior: Defenda o Campo de Batalha do Cérebro

2025-06-02
Procuramos Engenheiro de Backend Sênior: Defenda o Campo de Batalha do Cérebro

A Piramidal procura um engenheiro de software experiente para construir e manter a infraestrutura de backend para sua plataforma principal de dados neurais. O candidato ideal possui 5+ anos de experiência em empresas orientadas a produto, proficiência em Python e outras linguagens de backend, contêinerização/orquestração (por exemplo, Kubernetes), bancos de dados relacionais (por exemplo, Postgres/MySQL) e tecnologias web (por exemplo, JavaScript, React). Ele colaborará estreitamente com engenheiros de ML e clientes internos, criando interações e automações de usuário seguras, eficientes e agradáveis. A empresa se dedica a usar a tecnologia para maximizar o potencial humano, defendendo a liberdade cognitiva e se opondo à mercantilização e manipulação de mentes.

Três Algoritmos Otimizados para Calcular as Arestas de Malhas Poligonais

2025-06-02
Três Algoritmos Otimizados para Calcular as Arestas de Malhas Poligonais

Esta publicação apresenta três algoritmos equivalentes para calcular as arestas de uma malha poligonal, representando etapas de otimização progressiva para alcançar o mesmo resultado com eficiência crescente. Começando com uma descrição da representação da topologia da malha e conceitos de arestas, detalha três abordagens: um algoritmo baseado em mapa (complexidade O(n log n)), um algoritmo baseado em classificação (complexidade O(n log n)) e um novo algoritmo de valência menor (complexidade O(n)). O autor compara seu desempenho, destacando a natureza inovadora e as aplicações potenciais no desenvolvimento de jogos do algoritmo de valência menor.

Desenvolvimento processamento de malha

A Ascensão e Queda (e Possível Ressurreição?) do Stack Overflow

2025-06-02
A Ascensão e Queda (e Possível Ressurreição?) do Stack Overflow

O Stack Overflow, outrora um refúgio para desenvolvedores, prosperou com uma cultura de ajuda mútua e compartilhamento de conhecimento. No entanto, um sistema de reputação gamificado, sem querer, fomentou a competição em detrimento da colaboração, erodindo lentamente sua comunidade vibrante. O advento da IA exacerba ainda mais essa tendência, levando à reflexão sobre o futuro das comunidades de desenvolvedores. A jornada do Stack Overflow serve como um conto de advertência: plataformas de tecnologia que priorizam comunidades genuínas em vez de mera geração de conteúdo têm maior probabilidade de prosperar, especialmente na era da IA.

Desenvolvimento

ThorVG: Uma biblioteca de gráficos vetoriais multiplataforma liderando a revolução WebGPU

2025-06-02
ThorVG: Uma biblioteca de gráficos vetoriais multiplataforma liderando a revolução WebGPU

ThorVG oferece múltiplas implementações de mecanismos raster, permitindo que você escolha a melhor opção para seu aplicativo e preferências do sistema. Está à frente da curva, especialmente no desenvolvimento web. Aproveitando os shaders de computação e o acesso à GPU moderna de baixa sobrecarga do WebGPU, o ThorVG permite otimização agressiva e aplicativos mais amplos. Ele suporta totalmente os recursos de renderização vetorial por cima do WebGPU e abstrai a aceleração de hardware (Metal, Vulkan, DirectX) para compatibilidade perfeita entre plataformas.

Desenvolvimento

Caçada a Bugs no Iterador de Fontes do Sistema Android: Uma História de Símbolos Ocultos

2025-06-02

Este post de blog relata uma correção de bug surpreendentemente longa. O Android define diferentes níveis de API, com alguns símbolos disponíveis apenas a partir de uma versão específica. O Firefox para Android (Fenix) usa `ASystemFontIterator_open`, disponível apenas a partir da API 29. Para compatibilidade com versões anteriores, o Fenix usa `__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__` e `__builtin_available` para verificações em tempo de compilação e execução. No entanto, o sistema de build do Firefox usa por padrão a visibilidade oculta (`-fvisibility=hidden`), fazendo com que o símbolo fraco `ASystemFontIterator_open` se torne indefinido na biblioteca compartilhada, levando a falhas. A solução foi uma simples alteração para modificar temporariamente a visibilidade padrão ao incluir cabeçalhos do sistema Android.

Desenvolvimento Correção de Bug

Diminuindo o tamanho do diretório de destino do Rust: Um novo sinalizador do compilador

2025-06-02

Diretórios de destino grandes são uma frustração comum para desenvolvedores Rust. Esta publicação apresenta um novo método para reduzir significativamente o seu tamanho. Um novo sinalizador de compilador, `-Zembed-metadata=no`, combinado com um novo sinalizador Cargo, `-Zno-embed-metadata`, evita o armazenamento redundante de metadados nos arquivos `.rlib` e `.rmeta`. Os testes mostram uma redução de até 36,3% no modo de lançamento. Este recurso é atualmente instável (nightly), com planos para torná-lo o padrão, mas as preocupações com a compatibilidade com versões anteriores precisam ser consideradas cuidadosamente.

Desenvolvimento

A pilha Ruby on Rails do AttendList: Um mergulho profundo

2025-06-02
A pilha Ruby on Rails do AttendList: Um mergulho profundo

AttendList, um rastreador de presença para o Google Meet, utiliza um backend Ruby on Rails que interage com uma extensão do Chrome. Este artigo detalha a infraestrutura e as escolhas de gems por trás do AttendList, cobrindo tudo, desde trabalhos em segundo plano, autenticação e blogs até implantação e recursos extras. A pilha principal inclui PostgreSQL, Redis, Sidekiq e RSpec. A autenticação utiliza Devise com Google OAuth, empregando um fluxo de autorização incremental. A camada de visualização usa Tailwind CSS e ViewComponents. O desempenho e o perfil são gerenciados por Bullet e Rack Mini Profiler. O autor também descreve sua solução de hospedagem econômica usando servidores Hetzner e a plataforma de implantação Hatchbox.

Desenvolvimento

Cuss: Biblioteca de Detecção de Palavras de baixo Calão Multilíngue

2025-06-02
Cuss: Biblioteca de Detecção de Palavras de baixo Calão Multilíngue

Cuss é uma biblioteca de código aberto que fornece listas de palavras obscenas em vários idiomas, juntamente com uma classificação de confiança. Não se destina à construção de filtros de obscenidades (o que o autor desaconselha), mas sim para pesquisa de processamento de linguagem natural. A biblioteca suporta vários métodos de instalação (npm, esm.sh, etc.) e inclui várias versões de idiomas (inglês, árabe, espanhol, francês, italiano, português, etc.). Cada palavra recebe uma classificação de 0 a 2, indicando a probabilidade de seu uso como obscenidade. Além disso, a biblioteca contém outras listas de palavras, como palavras da moda, palavras comuns, etc.

Desenvolvimento detecção de obscenidades

arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

2025-06-02
arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

arXivLabs é uma estrutura experimental que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Indivíduos e organizações envolvidos abraçam os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os compartilham. Tem uma ideia para um projeto que beneficiará a comunidade arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Kan: O Assassino de Trello de Código Aberto?

2025-06-02
Kan: O Assassino de Trello de Código Aberto?

Kan é uma ferramenta de gerenciamento de projetos de código aberto que visa ser uma alternativa robusta ao Trello. Ele possui quadros Kanban, colaboração em equipe, importação do Trello, filtro de etiquetas, comentários, logs de atividades, com modelos e integrações planejadas para o futuro. O código é aberto e contribuições são bem-vindas!

Desenvolvimento alternativa ao Trello

Desemprego em Ciência da Computação: O Fim do Boom?

2025-06-02
Desemprego em Ciência da Computação: O Fim do Boom?

Apesar de sua popularidade, a ciência da computação apresenta uma taxa de desemprego surpreendentemente alta. Um relatório recente a coloca em sétimo lugar entre as principais especializações de graduação, com 6,1% de desemprego. O boom da tecnologia impulsionou a demanda, mas as demissões subsequentes em gigantes como Amazon e Google mudaram a situação. Especialistas atribuem isso a um excesso de graduados que carecem de experiência prática, juntamente com as crescentes exigências da indústria e um mercado de nível de entrada em queda. A narrativa de 'ficar rico rápido' em torno da codificação está em conflito com as duras realidades econômicas.

Desenvolvimento demissões de tecnologia

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-06-02
arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

arXivLabs é uma estrutura que permite que colaboradores desenvolvam e compartilhem novos recursos do arXiv diretamente em nosso site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os respeitam. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Tmux: Um mergulho profundo no multiplexador de terminal

2025-06-02
Tmux: Um mergulho profundo no multiplexador de terminal

Tmux é um poderoso multiplexador de terminal que permite gerenciar várias sessões de terminal, janelas e painéis simultaneamente. Pense no tmux como um gerenciador de terminal: um servidor gerencia várias sessões; cada sessão contém várias janelas; cada janela pode ser dividida em vários painéis, cada um executando um programa ou shell separado. Múltiplos clientes podem se conectar à mesma sessão simultaneamente. Uma tecla de prefixo (normalmente Ctrl+b) permite controlar e gerenciar facilmente os componentes do tmux para um gerenciamento eficiente do terminal.

Desenvolvimento multiplexação de terminal

Consistência de Banco de Dados: Além do Básico

2025-06-02
Consistência de Banco de Dados: Além do Básico

Este artigo mergulha nos desafios de manter a consistência transacional do banco de dados em ambientes de alta concorrência. Usando um exemplo do Spring Boot, o autor demonstra como a paginação padrão e as verificações de idempotência podem levar a inconsistências de dados (linhas ausentes ou atualizações duplicadas) ao processar um grande volume de dados de vendas. O artigo explica detalhadamente os níveis de isolamento do banco de dados (READ UNCOMMITED, READ COMMITED, REPEATABLE READ, SERIALIZABLE) e as estratégias de bloqueio otimista/pessimista. Por fim, empregando o nível de isolamento REPEATABLE READ e o bloqueio otimista, o autor resolve eficazmente as inconsistências de dados e melhora significativamente o desempenho.

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-06-02
arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no nosso site. Indivíduos e organizações que trabalham com o arXivLabs adotaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os respeitam. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Agente iPhone: Controle seu dispositivo iOS com GPT-4.1

2025-06-02
Agente iPhone: Controle seu dispositivo iOS com GPT-4.1

O PhoneAgent é um aplicativo iOS que utiliza o modelo GPT-4.1 da OpenAI para controlar seu iPhone em vários aplicativos. Acessando a árvore de acessibilidade, ele pode executar tarefas como enviar mensagens, baixar aplicativos e fazer ligações. Ele usa o framework de teste de interface do usuário do Xcode, não requer jailbreak, mas é experimental e possui limitações conhecidas, como lidar com tarefas de longa duração e animações. O aplicativo envia o conteúdo do aplicativo para a API da OpenAI e se comunica com os testes de IU por meio de um servidor TCP.

Desenvolvimento

HIP: Uma API de tempo de execução portátil de código único para GPUs AMD e NVIDIA

2025-06-02
HIP: Uma API de tempo de execução portátil de código único para GPUs AMD e NVIDIA

HIP é uma API de tempo de execução C++ e linguagem de kernel que permite aos desenvolvedores criarem aplicativos portáteis para GPUs AMD e NVIDIA a partir de um único código-fonte. Recursos-chave incluem alto desempenho com pouca sobrecarga, suporte para programação C++ de código único (incluindo modelos, lambdas, etc.) e a capacidade de aproveitar as melhores ferramentas de desenvolvimento em cada plataforma. A ferramenta HIPIFY automatiza a conversão de CUDA para HIP, enquanto a otimização manual é possível para ajuste específico da plataforma. O HIP suporta novos projetos e oferece fácil portabilidade de código CUDA existente, embora não seja uma substituição direta e exija algum trabalho manual para portabilidade e otimização completas.

Desenvolvimento Programação de GPU

“Apenas JavaScript?”: É mais complicado do que você pensa

2025-06-02

No mundo da programação, “Apenas JavaScript” é uma frase muitas vezes usada incorretamente. Este artigo explora as complexidades do JavaScript, apontando que muitos arquivos .js aparentemente simples, na verdade, dependem de APIs do navegador, variáveis de ambiente Node.js, compilação JSX, pré-processadores, anotações de tipo TypeScript e muito mais. A escolha do ambiente de execução e da cadeia de ferramentas afeta muito a executabilidade do código. O autor usa uma série de exemplos para ilustrar que apenas o código JavaScript "vanilla", separado de ambientes de execução e cadeias de ferramentas específicas, pode ser realmente chamado de “Apenas JavaScript”.

Desenvolvimento Desenvolvimento Back-end
1 2 69 70 71 73 75 76 77 214 215