얼마 전, 네티즌은 프론트 엔드에서 requireJS와 Seajs를 사용하는 것에 대해 물었다. 귀하의 회사에 JavaScript 라이브러리 또는 JavaScript 프레임 워크가 이전에 작성되었는지 물었습니다. 그의 대답은 아무것도 아니었다. 그는 방금 Just와 Seajs가 새로운 것과 새로운 기술이며 매우 가치가 있다고 들었 기 때문에 사용하고 싶었습니다.
이 네티즌의 문제로 인해 JavaScript 모듈 로딩 기술에 대해 생각하게되었습니다. 마지막 기사에서, 나는 내가 쓴 JavaScript 라이브러리의 기본 구조를 주었다. 실제로이 기사를 작성하는 이유 중 하나는 javaScript 라이브러리의 기본 모델을 재 설계하기 위해 요구 사항 또는 SEAJS와 같은 기술을 사용하고 싶기 때문입니다. 이 기술을 깊이 알게 된 후 모듈 로딩 시스템을 사용하여 JavaScript 라이브러리에서 공통 코드 및 비즈니스 코드를 분리하는 문제가 잘못되었습니다. 모듈 로딩 시스템의 범위는 JavaScript 라이브러리를 개발하는 방법을 돕지 않고 다른 JavaScript 라이브러리 간의 종속성 문제를 해결하는 것입니다.
그렇다면 JavaScript 모듈 로딩 시스템이란 무엇입니까?
모듈 시스템은 주로 다른 JavaScript 라이브러리에서 작동 객체의 명명 충돌 문제와 다른 JavaScript 라이브러리 간의 종속성 문제를 해결하는 데 사용됩니다. 모듈 로딩 시스템은 대형 웹 프론트 엔드 애플리케이션 또는 거대한 웹 프론트 엔드 애플리케이션을 목표로합니다.
일반적으로 거대한 웹 프론트 엔드 애플리케이션 페이지 에서이 페이지에는 매우 풍부한 기능과 복잡한 비즈니스가 있습니다. 또한 시간이 지남에 따라 페이지의 기능은 종종 변경되어 프론트 엔드 개발자가 종종 새로운 기능을위한 기능 모듈을 개발하게됩니다. 그러나 실제 비즈니스의 다양한 기능 모듈 사이의 기능도 서로 침투하고 서로 의존하며 복잡한 관계를 가질 수 있습니다. 페이지가 복잡하면 각 프론트 엔드 라이브러리 간의 관계는 관리하고 제어하기가 어렵고 모듈 로딩 시스템은 현재로서 사용됩니다.
대부분의 프로그래머에게는 대형 웹 프론트 엔드 애플리케이션을 독립적으로 견딜 수있는 기회가 많지 않으며 중소형 웹 프론트 엔드 애플리케이션을 개발할 수있는 많은 기회가 있습니다. 예를 들어, 엔터프라이즈 레벨 웹 프로젝트에는 이러한 프로젝트에 사용되는 JavaScript 라이브러리 유형이 거의 없으며 각 라이브러리의 종속성을 쉽게 제어 할 수 있으므로 모듈 관리 시스템을 도입 할 필요가 없습니다. 많은 중소형 인터넷 회사의 웹 페이지조차도 엔터프라이즈 레벨 웹 애플리케이션 프론트 엔드의 웹 페이지만큼 복잡하지 않으므로 모듈이나 JavaScript 라이브러리 간의 관계는 관리하기 쉽습니다. 실제로, 위의 중소 및 중간 응용 프로그램은 모두 특정 또는 특정 시나리오를위한 것입니다. 따라서 저는 그러한 웹 프론트 엔드 프로젝트에 직면하여 마침내 독립적 인 JavaScript 라이브러리를 형성 할 수 있다고 개인적으로 생각합니다. 이 라이브러리의 특성은 메인 라이브러리 및 여러 플러그인 라이브러리 유형과 유사해야합니다. 메인 라이브러리의 목적은 일반적인 문제를 해결하는 것이며 재사용 가능하고 마이그레이션되어야합니다. 플러그인 라이브러리의 목적은 종종 비즈니스 코드와 관련이 있습니다. 그러나 기본 라이브러리와 플러그인 라이브러리의 범위를 구별하기 위해 네임 스페이스 기능을 라이브러리에 추가했습니다.
JavaScript Module Loading Technology와 Hadoop 기술은 유사점, 즉 초대형 시스템의 기술이며 특정 조건에서만 역할을 수행 할 수 있습니다. 따라서 이러한 기술은 대규모 인터넷 회사에서 출시됩니다. 대규모 인터넷 회사는 응용 프로그램이 점점 커지고 복잡해지면 문제를 해결해야하기 때문입니다. 시스템이 아직 초기 단계에있을 때는 종종 이러한 기술을 사용하는 데 신중해야합니다. 실제 문제를 해결하는 가장 간단하고 가장 효과적인 방법을 찾아야합니다. 이 시스템이 미래에 더 커질 것이라고 생각한다면, 앞으로 이러한 기술을 사용하기 위해 인터페이스를 유지해야합니다. 너무 일찍 사용되면 시스템 스케일이 확장되면 리팩토링 비용이 더 높아질 가능성이 높습니다.
모듈 로딩 시스템의 경우 가장 적합한 시나리오는 대형 웹 프론트 엔드 애플리케이션 모듈 간의 분리 문제를 해결하는 것입니다. 새로운 JavaScript 파일을 작성하고 모듈로드 기술을 즉시 사용하는 경우 약간의 남용 기술이 아닙니다. 특정 기술을 사용하기 전에 사용 방법이나 사용 방법을 고려해야 할뿐만 아니라 사용하는 것이 가치가 있는지 생각해야합니다.
마지막으로, 중소형 웹 프론트 엔드가 생산 배포에 사용된다고 생각하고 싶습니다. JavaScript가 가장 복잡하지 않기 때문에 모든 외부 JavaScript 파일을 JavaScript 외부 파일로 패키지하는 것이 가장 좋습니다. 이 장점은 HTTP 요청 수를 줄이는 것입니다. 모듈로드 기술을 사용하면 파일을 패키지에 매우 번거롭게 할 수 있으며, 조정할 수 없으며 (요구 사항 및 Seajs와 같은 모듈은 모두 파일을 기반으로하고, 각 모듈은 독립적 인 파일입니다) HTTP를 줄이기위한 목적을 해결하는 것과 상반됩니다.