Belum lama ini, seorang netizen bertanya kepada saya tentang menggunakan kebutuhan dan pelaut di front-end. Saya bertanya kepadanya apakah perusahaan Anda memiliki perpustakaan JavaScript atau kerangka kerja JavaScript yang ditulis dengan sendirinya sebelumnya. Jawabannya bukan apa -apa. Dia baru saja mendengar bahwa persyaratan dan pelaut adalah hal -hal baru dan teknologi baru, yang sangat berharga, jadi dia ingin menggunakannya.
Masalah netizen ini menyebabkan saya memikirkan teknologi pemuatan modul JavaScript. Dalam artikel terakhir, saya memberikan struktur dasar perpustakaan JavaScript yang saya tulis. Bahkan, salah satu alasan untuk menulis artikel ini adalah bahwa saya ingin menggunakan teknologi seperti persyaratan atau pelaut untuk mendesain ulang model dasar perpustakaan JavaScript saya. Setelah saya mengetahui teknologi ini secara mendalam, saya menemukan bahwa menggunakan sistem pemuatan modul untuk menyelesaikan masalah decoupling kode umum dan kode bisnis di pustaka JavaScript tidak benar. Lingkup sistem pemuatan modul adalah untuk memecahkan masalah ketergantungan antara perpustakaan JavaScript yang berbeda, daripada membantu Anda bagaimana mengembangkan pustaka JavaScript.
Jadi apa itu sistem pemuatan modul JavaScript?
Sistem modul terutama digunakan untuk menyelesaikan masalah konflik penamaan objek operasi di perpustakaan JavaScript yang berbeda dan masalah ketergantungan antara perpustakaan JavaScript yang berbeda. Sistem pemuatan modul ditujukan untuk aplikasi front-end web besar atau aplikasi front-end raksasa.
Secara umum, di halaman aplikasi front-end raksasa, halaman ini memiliki fungsi yang sangat kaya dan bisnis yang kompleks. Selain itu, seiring berjalannya waktu, fungsi halaman sering berubah, yang mengarah ke pengembang front-end yang sering mengembangkan modul fungsional untuk fungsi baru. Namun, fungsi antara berbagai modul fungsional dalam bisnis yang sebenarnya juga dapat saling menembus, saling bergantung, dan memiliki hubungan yang kompleks. Ketika halamannya rumit, hubungan antara setiap perpustakaan front-end akan sulit untuk dikelola dan dikendalikan, dan sistem pemuatan modul akan berguna saat ini.
Bagi sebagian besar pemrogram, tidak ada banyak peluang untuk secara mandiri menanggung aplikasi front-end web yang sebesar itu, dan ada banyak peluang untuk mengembangkan aplikasi front-end kecil dan menengah. Misalnya, proyek web tingkat perusahaan, ada sangat sedikit jenis perpustakaan JavaScript yang digunakan dalam proyek-proyek tersebut, dan dependensi dari setiap perpustakaan mudah dikendalikan, sehingga tidak perlu memperkenalkan sistem manajemen modul apa pun. Bahkan halaman web dari banyak perusahaan internet kecil dan menengah mungkin tidak rumit seperti front-end aplikasi web tingkat perusahaan, sehingga hubungan antara modul atau perpustakaan JavaScript mudah dikelola. Faktanya, aplikasi kecil dan menengah di atas adalah semua untuk skenario tertentu atau spesifik. Oleh karena itu, saya pribadi berpikir bahwa dalam menghadapi proyek front-end web semacam itu, kita akhirnya dapat membentuk perpustakaan JavaScript yang independen. Karakteristik perpustakaan ini harus mirip dengan jenis perpustakaan: perpustakaan utama ditambah beberapa perpustakaan plug-in. Tujuan perpustakaan utama adalah untuk menyelesaikan masalah umum, dan itu harus dapat digunakan kembali dan dimigrasi. Tujuan perpustakaan plug-in sering terkait dengan kode bisnis. Namun, untuk membedakan ruang lingkup perpustakaan utama dan perpustakaan plug-in, saya menambahkan fungsi namespace ke perpustakaan.
Teknologi pemuatan modul JavaScript dan teknologi Hadoop memiliki beberapa kesamaan, yaitu, keduanya adalah teknologi untuk sistem super besar, dan mereka hanya dapat memainkan peran mereka dalam kondisi tertentu. Oleh karena itu, teknologi ini diluncurkan dari perusahaan internet besar, karena perusahaan internet besar harus menyelesaikan masalah setelah aplikasi mereka menjadi lebih besar dan lebih kompleks. Ketika sistem Anda masih dalam masa pertumbuhan, Anda harus sering berhati -hati dalam menggunakan teknologi ini. Kita harus menemukan cara paling sederhana dan paling efektif untuk menyelesaikan masalah aktual kita. Jika Anda berpikir sistem ini akan menjadi lebih besar di masa depan, maka Anda harus mempertahankan antarmuka untuk menggunakan teknologi ini di masa depan. Jika digunakan terlalu dini, sangat mungkin bahwa ketika skala sistem berkembang, biaya refactoring kode Anda akan lebih tinggi.
Untuk sistem pemuatan modul, skenario yang paling cocok adalah menyelesaikan masalah decoupling antara modul aplikasi front-end web besar. Jika kami hanya menulis file JavaScript baru dan segera menggunakan teknologi pemuatan modul, ini bukan sedikit teknologi penyalahgunaan. Sebelum menggunakan teknologi tertentu, kita tidak boleh hanya mempertimbangkan cara menggunakannya atau bagaimana itu digunakan, tetapi kita juga harus memikirkan apakah itu berharga untuk menggunakannya.
Akhirnya, saya ingin mengatakan bahwa saya pikir front-ujung web kecil dan menengah digunakan untuk penyebaran produksi. Karena JavaScript bukan yang paling kompleks, yang terbaik adalah mengemas semua file JavaScript eksternal ke dalam file eksternal JavaScript. Keuntungan ini adalah mengurangi jumlah permintaan HTTP. Menggunakan teknologi pemuatan modul akan membuatnya sangat merepotkan untuk mengemas file, dan bahkan tidak dapat dilakukan (modul seperti Persyaratan dan Seajs semuanya didasarkan pada file, dan setiap modul adalah file independen), yang bertentangan dengan memecahkan tujuan mengurangi HTTP.