Há pouco tempo, um internautas me perguntou sobre o uso de requisitos e marinhos no front-end. Perguntei -lhe se sua empresa tinha uma biblioteca JavaScript ou uma estrutura JavaScript escrita por si mesma antes. Sua resposta não foi nada. Ele acabou de ouvir que os requisitos e o mar são coisas novas e novas tecnologias, que são muito valiosas, então ele queria usá -lo.
O problema desse internautas me levou a pensar na tecnologia de carregamento do módulo JavaScript. No último artigo, dei a estrutura básica de uma biblioteca JavaScript que escrevi. De fato, uma das razões para escrever este artigo é que eu quero usar tecnologia como requerjs ou SEAJs para redesenhar o modelo básico da minha biblioteca JavaScript. Depois de conhecer essa tecnologia em profundidade, descobri que o uso do sistema de carregamento do módulo para resolver o problema de dissociar o código comum e o código comercial na biblioteca JavaScript está incorreto. O escopo do sistema de carregamento do módulo é resolver o problema de dependência entre diferentes bibliotecas JavaScript, em vez de ajudá -lo a desenvolver uma biblioteca JavaScript.
Então, o que é um sistema de carregamento do módulo JavaScript?
O sistema de módulos é usado principalmente para resolver o problema de conflito de nomenclatura objetos de operação em diferentes bibliotecas JavaScript e o problema de dependência entre diferentes bibliotecas JavaScript. O sistema de carregamento do módulo é destinado a aplicativos de front-end amplo ou aplicativos gigantes da Web front-end.
Geralmente, em páginas gigantes de aplicativos front-end da Web, a página possui funções muito ricas e negócios complexos. Além disso, com o passar do tempo, as funções da página geralmente mudam, o que leva a desenvolvedores de front-end geralmente desenvolvendo módulos funcionais para novas funções. No entanto, as funções entre vários módulos funcionais nos negócios reais também podem se penetrar, dependem um do outro e têm relacionamentos complexos. Quando a página for complexa, a relação entre cada biblioteca frontal será difícil de gerenciar e controlar, e o sistema de carregamento do módulo será útil neste momento.
Para a maioria dos programadores, não há muitas oportunidades para suportar independentemente um aplicativo front-end da Web tão grande, e há muitas oportunidades para desenvolver aplicativos de front-end de pequeno e médio porte. Por exemplo, projetos da Web em nível corporativo, existem muito poucos tipos de bibliotecas JavaScript usadas nesses projetos, e as dependências de cada biblioteca são fáceis de controlar, portanto, não há necessidade de introduzir nenhum sistema de gerenciamento de módulos. Mesmo as páginas da Web de muitas empresas de Internet pequenas e médias provavelmente não são tão complicadas quanto as dos front-ends de aplicativos da Web em nível corporativo, portanto é fácil gerenciar o relacionamento entre seus módulos ou bibliotecas de JavaScript. De fato, as aplicações pequenas e médias acima são todas para cenários certos ou específicos. Portanto, eu pessoalmente acho que, diante de tais projetos de front-end da Web, podemos finalmente formar uma biblioteca JavaScript independente. As características desta biblioteca devem ser semelhantes às de um tipo de biblioteca: uma biblioteca principal além de várias bibliotecas de plug-in. O objetivo da biblioteca principal é resolver o problema da generalidade e deve ser reutilizável e migrado. O objetivo da biblioteca plug-in está frequentemente relacionado ao código comercial. No entanto, para distinguir o escopo da biblioteca principal e da biblioteca plug-in, adicionei a função de espaço para nome à biblioteca.
Tecnologia de carregamento do módulo JavaScript e a tecnologia Hadoop têm algumas semelhanças, ou seja, ambas são tecnologias para sistemas super gerais e só podem desempenhar seu papel em determinadas condições. Portanto, essas tecnologias são lançadas a partir de grandes empresas da Internet, porque grandes empresas de Internet devem resolver problemas depois que seus aplicativos se tornarem maiores e mais complexos. Quando seu sistema ainda está na infância, você deve ser cauteloso ao usar essas tecnologias. Devemos encontrar a maneira mais simples e eficaz de resolver nossos problemas reais. Se você acha que esse sistema se tornará maior no futuro, mantenha a interface para usar essas tecnologias no futuro. Se for usado muito cedo, é muito provável que, quando a escala do sistema se expanda, o custo de refatorar seu código será maior.
Para sistemas de carregamento de módulos, o cenário mais adequado é resolver o problema de desacoplar entre grandes módulos de aplicativos front-end da Web. Se apenas escrevermos um novo arquivo JavaScript e usar a tecnologia de carregamento do módulo imediatamente, isso não é um pouco de tecnologia de abuso. Antes de usar uma determinada tecnologia, não devemos considerar apenas como usá -la ou como ela é usada, mas também devemos pensar se é valioso usá -lo.
Por fim, quero dizer que acho que os front-ends de pequeno e médio porte são usados para implantação de produção. Como o JavaScript não é o mais complexo, é melhor empacotar todos os arquivos JavaScript externos em um arquivo externo JavaScript. Essa vantagem é que ele reduz o número de solicitações HTTP. O uso da tecnologia de carregamento do módulo tornará muito problemático os arquivos de embalagem e até não pode ser feito (módulos como requerjs e SEAJs são todos baseados em arquivos, e cada módulo é um arquivo independente), o que é contrário à solução do objetivo de reduzir o HTTP.