Vamos tornar a web ótima novamente

imagem

A web moderna é um sistema dinâmico complexo que está constantemente em movimento. Como observado em muitos artigos, torna-se muito difícil acompanhar todas as alterações, à medida que novas ferramentas e estruturas aparecem quase todos os dias. O conhecimento se torna obsoleto antes mesmo de ter um ponto de apoio. Obviamente, tudo isso é um resultado óbvio do rápido desenvolvimento e crescimento, mas isso inevitavelmente adiciona complexidade aos desenvolvedores da Web e aumenta o limiar de ingresso na profissão.

Chega ao ponto do absurdo que você precise configurar o babel primeiro, depois o webpack e, em seguida, lidar com as configurações específicas da estrutura escolhida para criar um formulário simples de entrada de dados do usuário ... E isso provavelmente é muitas palavras novas para um iniciante na equipe encarregada dessa tarefa simples . Não, provavelmente o projeto já estará configurado e configurado, e o iniciante certamente não ficará sozinho à mercê do destino, dizendo brevemente para que serve. Mas vale a pena reconhecer que realmente se tornou muito complicado e parece que gastamos uma parte significativa do tempo em todos esses sistemas de compilação e lutamos com a configuração.

Mas vamos tentar lembrar - sempre foi assim? Os criadores da web sonharam com esse futuro? Não, caramba, e novamente não! Afinal, alguns ninguém, geralmente feio, cheio de truques e truques, mas a web era diferente - simples e compreensível! Aqui nós adicionamos um script, aqui está um estilo e aqui está o layout da nossa página. Então, o que deu errado, tudo realmente ficou tão ruim? Afinal, o javascript e toda a Web só cresceram e melhoraram, a linguagem se tornou mais forte e mais expressiva, a modularidade apareceu, a vantagem de vários modelos de arquitetura tornou-se óbvia e, no entanto - onde está essa antiga simplicidade? Nós realmente a perdemos para sempre?

imagem
(Magnífico homem-aranha)

A resposta é realmente bastante simples e direta. A Web realmente cresceu e se tornou mais complicada, agora não é incomum encontrar um aplicativo multimídia completamente escrito para a tecnologia da Web ou um jogo 3D em um navegador, o que era impensável há 10 anos. Mas o principal problema é que muitas vezes queremos da Web que ela ainda não está pronta para nos fornecer - as mais recentes tecnologias e padrões, modelos de arquitetura experimental, tudo é apenas o mais novo e o mais moderno e, é claro, deve funcionar em qualquer lugar e para todos, e por favor, rapidamente . E então uma gangue selvagem liderada por webpack aparece em cena e começa a corrigir a bola. E agora você já está desligado de configurações complexas e seu projeto dura cerca de um minuto e meio e pesa cinquenta megabytes. Finito la comedia. A luta com a configuração começa na tentativa de reduzir um pouco mais o desempenho e reduzir o tamanho. E então que tipo de desenvolvimento e implementação de idéias pode ser discutido, se gastarmos a maior parte do tempo nas configurações da linha de montagem. Admita quem é o especialista da sua equipe no webpack?

imagem

Não estamos acostumados a isso, mas chegamos a um acordo de que isso é normal, mas de que outra forma? Estávamos pendurados em tipos e estruturas, corporativismo, segurança - você não pode nem discutir. Mas para onde foi essa facilidade e simplicidade do experimento, para as quais essa linguagem dinâmica de tipo fraco foi concebida? E tudo, não o dela, desapareceu sob as montanhas de pacotes e empresas. Mas realmente nada pode ser feito?

Vale a pena parar e pensar, mas o que estamos fazendo e por quê? Afinal, se usarmos webpack, rollup, parcel (sublinhar conforme necessário) e criar todos esses pacotes ilegíveis que não poderão ser depurados posteriormente, mesmo com mapas de origem, então certamente alguém precisa disso, certo? Sim, tudo é assim, para uma produção rápida e eficaz a partir de pacotes que você não pode chegar a lugar nenhum, e mesmo o novo HTTP2 não facilitou muito a tarefa. É por isso que os desenvolvedores ficam no escritório nas longas noites de outono, permanecendo mais tempo no trabalho e queimando centenas de milhares de quilowatts de energia, pacotes em departamentos, pacotes de empresas, pacotes de todo o mundo transmitindo uma mudança com o movimento do sol. Aconteceu, e essa é a lei. Dura Lex, Sed Lex. Portanto, a verdadeira questão shakespeariana é culpar ou não culpar - ela morre sem ter tempo de quebrar os lábios do jovem Hamlet que abriu o estúdio visual para empilhar outra obra-prima.

imagem
(Tudo bem)

Mas espere, você disse que tudo isso é necessário para a produção, mas e o desenvolvimento? Por que é impossível desenvolver-se confortavelmente como nos velhos tempos, apenas iniciando o servidor e empacotando tudo antes de enviá-lo para produção? E por que geralmente usamos as mesmas ferramentas para produção e desenvolvimento? Por que não usar uma solução personalizada especificamente para o desenvolvimento, porque o que estamos fazendo não é, de alguma forma, particularmente lógico.

E isso realmente não é lógico, e preferimos fazê-lo na ausência de alternativas, ou simplesmente porque estamos acostumados. Mas e se eu disser que você tem uma escolha?

imagem

Conheça hq - um servidor especializado para desenvolver aplicativos da web. hq é um servidor estático em esteróides que entende tudo o que um servidor normal não pode suportar. Deseja o recurso mais recente do padrão javascript, mas seu navegador ainda não o suporta? por favor! Sua biblioteca usa o formato commonjs - não há problema! Com as diversas ferramentas afiadas para trabalhar com cada estrutura específica, o hq suporta todas elas, imediatamente. hq é tão legal que não requer nenhuma configuração, apenas funciona e faz seu trabalho. Nenhum pacote, tudo é diferente do seu, o hq REALMENTE não requer nenhuma configuração, simplesmente não existe, portanto não há para onde ir. Instale uma vez

npm install -g @hqjs/hq

e execute com um comando na raiz do projeto para começar a experimentar imediatamente

hq

Bem, você diz, a velha gangue nos ofereceu a mesma coisa, bem, talvez um pouco mais de configuração, um pouco menos simples, mas tudo é muito parecido, então por que precisamos desse novo Chuck Norris no mundo das virgens? E então eu responderei com o novo lema da casa Greyjoy - "Nós não somos um bandido!". Sim, de fato, não somos bandidos!

imagem
(Casa Greyjoy. Não plantamos Bundlem)

Olá, estou envolvida no desenvolvimento da Web desde os 13 anos e comecei a bater aos 19 anos. Meu amigo me enganou quando fui à garagem dele, onde ele passava dias e noites viajando. Eu perguntei o que você está fazendo? E ele disse que isso é uma coisa nova, agora está muito elegante e legal e eu definitivamente tenho que tentar. No começo, colei os arquivos e tentei um pequeno pacote com o compilador de fechamento e não consegui parar. engolimos, navegamos e depois empacotamos ... Meus pacotes ficaram mais difíceis. Não sabia como parar, entrei em um ciclo que não me permitia sair. Toda vez que eu chegava a um novo projeto, alguém já estava batendo lá e era simplesmente impossível recusar. Nenhum bandido não era prestigioso! Pessoas da profissão e até amigos íntimos recusaram-se a se comunicar e não me ligaram de volta quando descobriram que eu quero parar. Então não havia para onde ir. Mas agora estou limpo! Não sou mais bandido durante o desenvolvimento! Meus amigos e conhecidos pararam de bater comigo, agora isso não é aceito em nossa empresa. E você sabe o que? Eu nunca me senti tão bem! O mundo finalmente começou a brincar com novas cores e o tempo começou a ser tanto no trabalho quanto na família.

Sério, a falta de pacotes simplifica muito a vida. Lembre-se de situações insuportáveis ​​em que é impossível colocar um ponto de interrupção não apenas na expressão, mas também na linha desejada! Ou esses nomes de variáveis ​​gerados pelo webpack __webpack __ @ #% ^ $ !!! Quando você os lê, não é surpreendente ligar para Satanás, mas você não deseja escrevê-los no console e no inimigo, e o que eles têm de mais oposto que estão escondidos atrás de nomes humanos normais, então adivinhe o que mais. Em geral, a depuração geralmente se transforma em inferno, mesmo com mapas de fonte completos. Quantas vezes por dia você jura código dentro de node_modules? Quantas maldições estão caindo na cabeça dos infelizes desenvolvedores de React e Angular porque é impossível entender a mensagem de erro e onde esse erro ocorre? Depois que mudamos para o hq, esquecemos tudo isso como um pesadelo. Há realmente mais tempo, agora você não precisa entender por que não está funcionando ou simplesmente não funciona silenciosamente e de onde veio essa biblioteca de dez megabytes na compilação, agora você pode ver claramente de onde! Houve menos sofrimento, o trabalho ficou mais fácil e acabou por torná-lo um prazer.

imagem
(Essa pessoa é Varg ou está mudando de pele, pode penetrar na consciência dos animais. Agora ele voa com a águia, procurando o inimigo)

A melhor parte é que o hq não parece algo novo e complexo, parece que ele sempre esteve conosco, tudo é tão simples e familiar. hq é um servidor estático que apenas entende você. O início de um novo projeto se torna incrivelmente rápido, um comando no console e você pode começar a experimentar. Estruturas, bibliotecas, formatos, abordagens arquitetônicas - tudo isso não cria mais barreiras, com o hq tudo funciona como nos velhos tempos, de maneira rápida, simples e lógica! Além disso, o projeto de código aberto hq, para que você possa sempre melhorar algo ou adicionar suporte para algum novo formato.

Francamente, encontramos falhas. Anteriormente, quando a construção com o webpack levava vários minutos, era uma desculpa maravilhosa procurar uma xícara de café aromático na cozinha, mas agora tudo funciona tão rápido que simplesmente não há tempo para isso. No entanto, é necessário procurar uma desculpa para um bom café?

imagem

Como isso tudo funciona? Isso pode dar a impressão de que hq é um monstro robusto tecido pelo Dr. Frankenstein a partir de uma variedade de partes diferentes e incoerentes, temperadas com um pouco de magia negra. Mas, de fato, tudo é bastante harmonioso e uniforme. O hq distribui cada arquivo individualmente mediante solicitação, assim como um servidor estático comum. Isso nos dá apenas uma oportunidade limitada de nos livrarmos do código não utilizado, sem agitar toda a árvore, mas economiza muito tempo gasto na análise de dependência. Todas as transformações ocorrem instantaneamente e em tempo real. Além disso, apenas o mínimo necessário é transformado. Se você usa um navegador moderno e segue os padrões da Web, é improvável que seu código seja alterado. Embora você possa confiar nos padrões, não há garantia de que as bibliotecas que você está acostumado façam o mesmo. A maioria deles provavelmente será entregue no formato commonjs, o que não lhes permite trabalhar no navegador como está. O hq cuida disso e converte os módulos commonjs no formato ESM, processa não padrões, mas importa importações bastante comuns (como css ou json) e destrói objetos importados quando necessário. O hq trabalha em conjunto com um navegador da web, usando seu sistema de cache para acelerar a entrega de ativos e transferir apenas arquivos que foram alterados. Ele recarregará a página automaticamente quando você alterar seu código, para poder avaliar instantaneamente o resultado das alterações. O hq pode funcionar com muitas estruturas, mas não depende de seu código. Em vez disso, o hq executa uma série de transformações AST usando plugins babel que foram criados especificamente para o hq, para que ele possa entender e transformar a variedade de tecnologias e abordagens usadas no desenvolvimento em um único padrão suportado pelo navegador.

Assim, apesar de todas as dificuldades e desafios apresentados pela web moderna, o desenvolvimento de projetos pode permanecer simples e intuitivo, como aconteceu no início da tecnologia da web. Experimente o hq agora para melhorar sua experiência de desenvolvimento em um projeto antigo ou use-o para criar um novo projeto empolgante!

npm install -g @hqjs/hq

Source: https://habr.com/ru/post/pt428864/


All Articles