Mengapa Anda tidak membutuhkan perpustakaan JavaScript baru

 – Beragampengetahuan
9 mins read

Mengapa Anda tidak membutuhkan perpustakaan JavaScript baru – Beragampengetahuan

Perpustakaan dapat naik ke bintang -bintang dalam beberapa bulan, dan itu hanya akan runtuh dalam beberapa bulan dan secara bertahap menurun. Kami semua melihat apa yang terjadi di dunia pengembangan perangkat lunak.

Tetapi selama bertahun -tahun, saya telah menyadari bahwa alat yang selalu dibutuhkan selalu bersama kami. Solusi panjang.

Contents

Pesona perpustakaan baru

Saya akan menjadi orang pertama yang mengakui bahwa saya telah tertarik ke perpustakaan baru yang sebelumnya saya bersinar. Pada awal 2018, saya memimpin tim untuk memperbaiki bangunan front -end kami. Kami telah menambahkan banyak alat manajemen negara yang modis dan kerangka kerja komponen UI untuk menentukan bahwa mereka akan menyederhanakan alur kerja kami. Kemasan kami.

Pada awalnya, rasanya seperti kami mengendarai gelombang inovasi. Kemudian, sekitar enam bulan muncul. Beberapa perpustakaan sudah ketinggalan zaman. Beberapa orang ditinggalkan oleh pemelihara. Setiap kali kami meninjau ketergantungan, tampaknya kami memperhitungkan frekuensi patch keamanan dan konflik versi daripada frekuensi fitur baru.

Sakit kepala pemeliharaan membuat Crystal menjadi hal yang jelas: setiap ketergantungan baru adalah janji Anda untuk memelihara dan memperbarui kode orang lain.

Biaya ketergantungan yang sebenarnya

Saat kami menggunakan pustaka baru, kami tidak hanya akan menambahkan fungsi. Kami juga menanggung risiko besar. Ini hanya beberapa biaya tersembunyi yang sering diabaikan:

Overhead pemeliharaan

Perpustakaan baru tidak hanya akan memasuki proyek Anda, tetapi juga mempertahankan stabilitas selamanya. Mereka perlu memperbaiki kerentanan keamanan, memperbarui kompatibilitas dengan alat lain, dan bekerja keras ketika versi utama diperkenalkan. Jika Anda tidak di atas pembaruan ini, Anda dapat mengangkut kode yang tidak aman atau kargo ke produksi.

Konflik Versi

Bahkan alat yang kuat seperti NPM dan benang tidak dapat memastikan bahwa ketergantungan Anda sepenuhnya harmonis. Perpustakaan mungkin memerlukan versi tertentu dari paket perangkat lunak, yang bertentangan dengan persyaratan perpustakaan lain. Memecahkan ketidakkonsistenan ini mungkin merupakan proses yang menghabiskan waktu.

Efek kinerja

Karena perpustakaan depan -end, ukuran tas yang dibundel sangat meningkat. Perpustakaan profesional dapat menambahkan lusinan atau ratusan ribu ribu ke beban efektif JavaScript akhir Anda, yang membuatnya lebih berat, yang berarti bahwa waktu pemuatan lebih lambat dan pengalaman pengguna buruk.

Celah keamanan

Dalam ulasan pelanggan baru -baru ini, 60 % kerentanan aplikasi mereka berasal dari paket perangkat lunak pihak ketiga dan biasanya mengandalkan banyak lapisan dalam ketergantungan pohon. Terkadang, untuk memperbaiki perpustakaan, jarang memperbarui beberapa paket perangkat lunak yang saling bergantung.

Saya dan saya membutuhkan orang kencan dalam proyek. Hal yang modis untuk dilakukan adalah menginstal beberapa perpustakaan fungsional dan dengan cepat memasukkannya. Sebagai gantinya, kami menggunakan objek tanggal kami sendiri untuk melakukan pemilihan ringan kami sendiri di Vanilla Javascript. Ini adalah bagian kecil dari ukurannya. Keputusan kecil ini membuat kami tidak dapat memperbarui sakit kepala, konflik, atau masalah pengabaian di perpustakaan dalam beberapa bulan.

Kekuatan Vanilla Javascript

Sepuluh tahun yang lalu, Hyundai Javascript hampir tidak kompeten. Banyak fungsi (seperti lodash atau momen) sekarang perlu menjadi bagian dari bahasa-atau Anda dapat menggunakan beberapa baris kode untuk disalin. Misalnya:

// Instead of installing Lodash to remove duplicates:

const uniqueItems = [...new Set(items)];



// Instead of using a library for deep cloning:

const clonedObject = structuredClone(complexObject);

Akrab dengan perpustakaan standar yang sering dapat menggantikan seluruh fungsi bisnis publik. Saat ini, metode JavaScript yang dibangun telah menangani sebagian besar tugas umum, jadi tidak perlu membutuhkan sejumlah besar kode eksternal.

Kapan Menggunakan Perpustakaan Eksternal

Ini bukan untuk mengatakan bahwa Anda tidak boleh menginstal paket pihak ketiga. Kuncinya adalah untuk membedakan kekuatan-ke-ketahuan kapan masalahnya cukup besar atau cukup profesional, dan itu dapat memperoleh manfaat dari perpustakaan yang terpelihara dengan baik setelah pengujian yang baik. Misalnya:

  • Kompleksitas kunci: Kerangka kerja seperti React telah membuktikan keberanian untuk mengelola keadaan UI yang kompleks dalam aplikasi skala besar.
  • Waktu daftar: Terkadang, daya tarik jangka pendek dapat digunakan untuk menggunakan solusi kuat yang dapat digunakan, dan itu berarti memperkenalkan perpustakaan tepercaya alih -alih membangun semua konten dari awal.
  • Komunitas dan pemeliharaan: Perpustakaan POP dengan rekam jejak panjang dan kontribusi aktif (seperti D3.J untuk visualisasi data) mungkin lebih aman, terutama ketika mereka memecahkan masalah yang baik.

Kuncinya adalah mengevaluasi rasio biaya -efektifItu

  1. Dapatkah saya menggunakan API mesin ini atau skrip kustom kecil untuk diselesaikan?
  2. Apakah saya percaya bahwa program pemeliharaan perpustakaan?
  3. Apakah itu menyelesaikan masalah inti atau hanya memberikan kenyamanan kecil?
  4. Akankah tim saya benar -benar menggunakan fitur yang cukup untuk membuktikan bahwa berat tambahan itu masuk akal?

Hindari strategi yang ketergantungan yang tidak perlu

Untuk membuat proyek Anda dirampingkan dan dipelihara, ada beberapa praktik terbaik di sini:

1. Pertama -tama evaluasi metode -in built -in

Jika tidak ada kode pihak ketiga, berapa banyak tugas yang dapat diproses JavaScript modern, Anda akan terkejut. Menghabiskan waktu untuk menjelajahi fungsi ES baru, seperti metode array, peta/koleksi, asinkron/menunggu, dan untuk API Intl yang terlokalisasi.

2. Rekam pilihan Anda

Jika Anda memperkenalkan perpustakaan baru, silakan catat alasan Anda dalam beberapa kalimat. Nyatakan masalah yang dipecahkan, Anda mempertimbangkan alternatif dan keseimbangan apa pun. Jika ada masalah di masa depan, pemeliharaan masa depan (termasuk diri masa depan) akan menghargai latar belakang.

3. Ulasan ketergantungan reguler

Pindai paket Anda setiap kuartal. Apakah perpustakaan ini masih dipertahankan? Apakah Anda benar -benar menggunakan fungsinya? Bersihkan sejumlah kecil proyek ini untuk menghilangkan berat badan untuk mengurangi kemungkinan cacat keselamatan.

4. Ketergantungan positif dan ketergantungan dan pemisahan ketergantungan

Alat konstruksi, kerangka kerja uji, dan paket perangkat lunak non -produksi lainnya dimasukkan ke dalam devddies Anda. Simpan dependensi produksi berdasarkan konten yang benar -benar perlu Anda jalankan saat runtime.

Situasi perpustakaan inti

Saya baru -baru ini bekerja sama dengan tim ini untuk memiliki beberapa bagan canggih dan persyaratan visual. Meskipun pustaka grafik yang lebih baru berjanji untuk permukaan animasi dan komponen UI yang digunakan dalam kotak, kami masih memutuskan untuk menggunakan D3.js, yang merupakan orang yang tegas dalam ruang visual. Kedewasaan perpustakaan, dokumen terperinci dan komunitas besar memberikan dasar yang stabil untuk grafik khusus kami. Dengan membangun secara langsung dalam prinsip -prinsip dasar D3, kita dapat sepenuhnya mengontrol visualisasi akhir, sehingga menghindari lebih sedikit keterbatasan abstrak.

Mentalitas-dalam merangkul inti, perpustakaan yang diverifikasi alih-alih mengejar inti dari semua produk baru, hadiah yang dapat dipertahankan dan bermanfaat bahwa kami tidak meluangkan waktu untuk menyesuaikan data kami dengan sistem kepemilikan atau men-debug fungsi kue semi-baked, Tetapi kita harus fokus pada kebutuhan produk nyata dan mempertahankan kepercayaan diri pada D3 yang stabil dan mendukung.

Peningkatan

Perpustakaan tidak hanya harus mempertahankan biaya, tetapi juga mempengaruhi kinerja aplikasi Anda. Dalam proyek terbaru, kami hanya mengganti ukuran paket bundel awal dengan menghapus ceruk dan mengganti kode mesin. Angka -angka ini menceritakan kisah ini.

  • Waktu pemuatan turun dari 3.2s ke 1.4s.
  • Waktu untuk interaksi telah ditingkatkan hampir setengahnya.
  • Tingkat penggunaan memori turun sekitar 30 %.

Hasil ini tidak berasal dari optimasi lanjut, tetapi dari perilaku sederhana yang menghilangkan ketergantungan yang tidak perlu. Dalam era pengguna yang meningkat, manfaat kinerja saja dapat membuktikan bahwa metode minimum masuk akal.

Konstruksi jangka panjang

Perangkat lunak tidak akan pernah statis. Perpustakaan penting hari ini mungkin merupakan penyimpanan yatim piatu besok. Kode yang andal dan stabil cenderung berasal dari pengembang.

Mengambil otentikasi sebagai contoh: Menggunakan ratusan paket perangkat lunak yang memproses aliran login pengguna, menggulung sistem sederhana dengan sedikit ketergantungan dapat menyebabkan beberapa ulasan yang lebih mudah, lebih transparan, dan lebih sedikit kerugian di perpustakaan eksternal. Kode ini mungkin sedikit terperinci, tetapi juga eksplisit, dapat diprediksi, dan langsung di bawah kendali Anda.

Pengajaran dan Pertumbuhan Tim

Salah satu perkiraan penggunaan perpustakaan yang lebih sedikit adalah bagaimana menumbuhkan keterampilan yang lebih kuat untuk menyelesaikan masalah dalam tim. Penting untuk mengimplementasikan fungsi untuk memaksa pengembang memiliki pemahaman yang mendalam tentang konsep inti ketika debugging, penyesuaian kinerja, dan bahkan mengevaluasi teknologi baru di masa depan, ini akan membawa dividen. Terlalu banyak mengandalkan abstraksi orang lain dapat mencegah pertumbuhan dan mengubah kemampuan kemampuan menjadi “operator bingkai”.

sebagai kesimpulan

Lain kali Anda mempertimbangkan untuk memasang kit tren lain, itu akan mencerminkan apakah itu memecahkan kebutuhan mendesak Anda atau hanya untuk hal baru. Karena pengalaman telah mendorong pikiran saya, setiap ketergantungan baru adalah kehidupan. Ini adalah cara untuk memastikan penggunaan fungsi -dalam, perpustakaan yang baik, dan pemahaman mendalam tentang fundamental untuk memastikan aman dan lebih mudah untuk mempertahankan solusi cahaya.

Pada akhirnya, perpustakaan “membosankan” tetapi dapat diandalkan (kadang -kadang hanya vanilla javascript) seringkali lebih baik daripada tes waktu daripada pemula yang berkilauan. Inovasi yang seimbang dan pragmatisme adalah simbol pengembang yang berpengalaman. Dalam kerangka kerja dan era pengemasan yang tak ada habisnya, menyadari kapan Anda bisa mendapatkan alat yang sudah Anda miliki, itu mungkin keterampilan paling berharga dari semua orang.

rencana pengembangan website



metode pengembangan website

jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website

#Mengapa #Anda #tidak #membutuhkan #perpustakaan #JavaScript #baru

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *