Ao dar manutenção em um código verifiquei uma série de importações de módulos que estavam sendo feitas sem que haja necessidade.
O que isso pode gerar?
Antes de responder a pergunta vamos ao código antigo.
import { NgModule } from '@angular/core';
import {
InputStatusModule,
AplsSectionModule,
AplsSideMenuModule,
AplsCommonModule,
AplsCellAcoesModule,
AplsCellFiltroModule,
AplsPreloaderModule
} from '@apollus/common';
import {
AplsRadioModule,
AplsButtonModule,
AplsTooltipModule,
AplsTableModule,
AplsSelectModule,
AplsSortModule,
AplsInputModule,
AplsPaginatorModule,
AplsCheckboxModule,
AplsTabsModule,
AplsProgressSpinnerModule,
AplsMenuBoxModule
} from '@apollus-ngx/orfeu';
import { GestaoEpiMenuRouting } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.routing';
import { GestaoEpiMenuComponent } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.component';
import { GestaoEpiMenuGuard } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.guard';
import { ResponsavelVisitanteModule } from '../resposavel-visitante/responsavel-visitante.module';
import { PessoasServicoModule } from '@apollus/modulos/cadastro/servicos/pessoas/pessoas-servico.module';
import { GestaoEpiConfiguracaoModule } from '../gestao-epi-configuracao/gestao-epi-configuracao.module';
@NgModule({
declarations: [GestaoEpiMenuComponent],
imports: [
GestaoEpiMenuRouting,
AplsSideMenuModule,
AplsSectionModule,
AplsCommonModule,
AplsTooltipModule,
AplsTableModule,
AplsSortModule,
AplsButtonModule,
AplsInputModule,
AplsPaginatorModule,
AplsCellAcoesModule,
InputStatusModule,
AplsSelectModule,
AplsCheckboxModule,
AplsCellFiltroModule,
AplsTabsModule,
AplsPreloaderModule,
AplsRadioModule,
AplsProgressSpinnerModule,
AplsMenuBoxModule,
ResponsavelVisitanteModule,
GestaoEpiConfiguracaoModule,
PessoasServicoModule
],
providers: [GestaoEpiMenuGuard]
})
export class GestaoEpiMenuModule {}
Após refactoring o mesmo módulo ficou dessa maneira:
import { NgModule } from '@angular/core';
import { AplsCommonModule } from '@apollus/common';
import { AplsMenuBoxModule } from '@apollus-ngx/orfeu';
import { GestaoEpiMenuRouting } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.routing';
import { GestaoEpiMenuComponent } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.component';
import { GestaoEpiMenuGuard } from '@apollus/modulos/so/telas/gestaoepi/gestao-epi-menu/gestao-epi-menu.guard';
import { ResponsavelVisitanteModule } from '../resposavel-visitante/responsavel-visitante.module';
import { GestaoEpiConfiguracaoModule } from '../gestao-epi-configuracao/gestao-epi-configuracao.module';
@NgModule({
declarations: [GestaoEpiMenuComponent],
imports: [GestaoEpiMenuRouting, AplsCommonModule, AplsMenuBoxModule, ResponsavelVisitanteModule, GestaoEpiConfiguracaoModule],
providers: [GestaoEpiMenuGuard]
})
export class GestaoEpiMenuModule {}
Ok! O que essas importações desnecessárias podem gerar além de linhas de códigos?
A imagem abaixo apresenta um comparativo das requisições (Antes e Depois).
Tivemos uma diferença de 8,45 kb na transferência de dados. Pode parecer pouco, mas nós como bom programadores devemos pensar SEMPRE em otimização.
Agora respondendo a pergunta inicial ‘O que isso pode gerar?’
- Linhas de códigos a mais
- Tempo de build maior
- Perda no desempenho
Ao trabalharmos com o conceito de Web Components temos a responsabilidade de carregar apenas aquilo que está sendo utilizado na tela.
Até a próxima. 🙂
