Akhir-akhir ini, saya terobsesi dengan "modularisasi", termasuk artikel dan PPT, dan saya terpaksa memikirkan banyak hal terkait. Untuk memilah pemikiran saya tentang "modularitas" selama periode ini, sebagian besar didasarkan pada pengalaman dan pemahaman saya sendiri tentang pekerjaan rekonstruksi halaman sampai batas tertentu, dan saya berharap saya dapat mempelajari hal baru dengan meninjau masa lalu.
"Modular" hanyalah sebuah nama trendi untuk teknologi dan metode yang telah kita gunakan di masa lalu, sama seperti "Ajax". Namun, seiring tren perkembangan rekonstruksi halaman, orang-orang semakin memperhatikannya, dan tanpa sadar mereka sering berbicara tentang "modularitas", tetapi apakah Anda benar-benar memahami apa itu "modularisasi"?
Apa itu modularitas?
Ada 28 penafsiran "modularitas" dalam CNKI. Terlihat bahwa pemikiran “modular” banyak digunakan. Penjelasan yang paling mendekati "modularisasi" dalam rekonstruksi halaman mungkin adalah penjelasan dalam pengembangan perangkat lunak.
Pertama-tama mari kita lihat bagaimana entri Baidu menjelaskan “ modularitas ”:
Modularisasi mengacu pada proses membagi sistem perangkat lunak menjadi beberapa modul lapis demi lapis dari atas ke bawah ketika memecahkan masalah yang kompleks. Setiap modul melengkapi sub-fungsi tertentu, dan semua modul dirangkai dengan cara tertentu menjadi satu kesatuan untuk menyelesaikan fungsi yang dibutuhkan oleh keseluruhan sistem. Modul memiliki atribut dasar berikut: antarmuka, fungsi, logika, dan status. Fungsi, status, dan antarmuka mencerminkan karakteristik eksternal modul, dan logika mencerminkan karakteristik internalnya. Dalam arsitektur perangkat lunak, modul adalah unit yang dapat digabungkan, didekomposisi, dan diganti.
Ada juga beberapa buku terkait, dan siswa yang tertarik dapat mencarinya. Perlu ditegaskan bahwa yang kita pelajari adalah cara berpikir.
Mengapa produksi halaman harus bersifat modular?
Konten situs bertambah dan kode menjadi membengkak, yang secara bertahap memengaruhi pengalaman klien (terutama kecepatan pembukaan) dan efisiensi pemeliharaan. Apakah ada cara untuk mengatasi masalah ini?
Kita dapat dengan mudah memikirkan: mengurangi redundansi kode, meningkatkan penggunaan kembali kode, kompresi gambar, dll., tetapi bagaimana cara mencapainya? Pemikiran modular dapat diselesaikan, yang secara efektif dapat mengurangi redundansi kode dan meningkatkan penggunaan kembali kode. Yang lebih penting, hal ini dapat mendukung pemeliharaan multi-orang dan mengurangi biaya pemeliharaan. Metode penulisan CSS lebih fleksibel dan dapat dengan mudah menyebabkan penggabungan kode. Penggunaan modularisasi juga dapat mengurangi penggabungan sampai batas tertentu, yang juga berguna untuk menemukan bug. Oleh karena itu, kita harus lebih memperhatikan dan menggunakan "pemikiran modular" untuk menulis situs pada tahap awal situs.
Sebagian besar pengoptimalan kinerja situs yang sering kami sebutkan sebelumnya juga melibatkan "modularisasi", seperti meningkatkan penggunaan kembali kode, meningkatkan efisiensi pengembangan, dll. Ada banyak keuntungan dari "modularisasi". Saya akan mencantumkannya secara singkat:
Meningkatkan penggunaan kembali kode, meningkatkan efisiensi pengembangan, mengurangi biaya komunikasi, mengurangi penggandengan, mengurangi risiko rilis, mengurangi waktu pencarian bug dan biaya perbaikan, meningkatkan toleransi kesalahan halaman, mengimplementasikan iterasi cepat dengan lebih baik, dan mendukung rilis skala abu-abu dengan lebih baik. Poin yang paling penting, menurut saya , adalah "peningkatan" Tingkat penggunaan kembali kode", yang juga merupakan salah satu fitur terpenting dari modularitas.
Bagaimana cara mencapai "modularitas"?
Masalah utama di sini adalah "modularitas" HTML dan CSS. Kita dapat melihat cara menerapkan skinning:
Nama kelas yang sama, ganti file (JS)
File yang sama, ubah nama kelas (JS)
Dari sini kita dapat melihat implementasi antarmuka HTML dan CSS:
Untuk mengimplementasikan antarmuka ini dengan lebih baik, tiga metode nama kelas yang diperkenalkan oleh CSS harus memiliki konvensi, aturan, dan spesifikasi yang relevan (interaksi, desain, halaman, pengembangan), misalnya: semua status saat ini menggunakan nama kelas yang sama "nonce " , semua pertunjukan berwarna abu-abu menggunakan nama kelas asli diikuti dengan "_n", implementasi Tab, dll. Dengan adanya konvensi, aturan, dan spesifikasi ini, kode HTML dapat dengan mudah dibuat template dan disatukan dengan spesifikasi antarmuka.
Ada dua kesalahpahaman yang perlu dipahami terlebih dahulu:
Modularisasi tidak berarti dapat digunakan di lokasi mana pun (segmen kode yang termodulasi juga memiliki batasan cakupan yang berlaku dan memerlukan lingkungan yang menyediakan aturan antarmuka)
Modularisasi bukan berarti tidak dapat diubah (segmen kode yang termodulasi dapat dimodifikasi sesuai kebutuhan sebenarnya)
Modul yang sepenuhnya independen ditempatkan dalam proyek yang sama. Karena proyek memiliki kinerja dan kesatuan interaktifnya sendiri, harus ada bagian yang serupa di antara modul. Bagian-bagian ini dapat diusulkan sebagai definisi umum untuk mengurangi redundansi , dan tidak mungkin untuk dipisahkan sepenuhnya. Oleh karena itu, poin yang sangat penting dalam modularisasi adalah "penggandengan moderat". Dengan definisi publik, maka perlu dilakukan penyesuaian implementasi gaya modul, dan penyesuaian ini juga akan mempengaruhi implementasi "antarmuka".
Karena artikel ini terutama membahas tentang cara berpikir modular, detail implementasi spesifiknya akan dibahas di artikel mendatang. Untuk konten terkait, Anda dapat membaca tulisan sebelumnya " Modularisasi dari Desain Furnitur IKEA ". Selamat berdiskusi bersama.