10 Alasan Mengapa Anda Memerlukan Pengoptimuman Kod
Walaupun kita menulis kod, kita terus membuat keputusan dan memilih antara penyelesaian yang sepertinya sepadan pada mulanya. Kemudian ia biasanya ternyata beberapa pilihan menghasilkan program yang lebih cekap daripada yang lain, jadi pencarian untuk amalan pengekodan terbaik dan teknik pengoptimuman secara semulajadi timbul, dan kita mula lihat keseluruhan proses pembangunan sebagai masalah pengoptimuman untuk diselesaikan.
Walaupun masalah pengoptimuman bukanlah satu-satunya pemaju yang selalu berurusan, misalnya terdapat masalah keputusan dan masalah mencari juga, pengoptimuman adalah tugas yang merangkumi tahap perkembangan web yang paling mungkin.
Pengoptimuman kod boleh berlaku pada tahap yang berbeza, bergantung pada sejauh mana pengoptimuman yang kita lakukan adalah untuk kod mesin. Dalam pembangunan web, kami hanya boleh melakukan pengoptimuman peringkat tinggi, sebagai pemasangan-atau pengoptimuman peringkat runtime bukan pilihan untuk kita, tetapi kita masih mempunyai banyak peluang.
Kami boleh mengoptimumkan kod kami pada tahap seni bina dengan corak reka bentuk pintar, di peringkat kod sumber dengan menggunakan amalan pengkodan terbaik dan menggunakan alat yang sesuai, dan kami juga dapat meningkatkan prestasi pasukan kami memperkenalkan panduan gaya pengekodan ke dalam aliran kerja kami.
Apa sahaja teknik yang kita pilih untuk disesuaikan dengannya, ada peraturan yang harus dilakukan setiap usaha pengoptimuman kod: kita selalu harus menjalankan pengoptimalan dengan cara yang tidak mengubah makna kod.
Manfaat pengoptimuman kod tumbuh seiring dengan pertumbuhan projek kami, dan sebagai walaupun pada mulanya projek-projek kecil boleh menjadi besar dengan masa, memperolehi kecekapan pengoptimuman kod pepejal hampir selalu mempunyai hasil positif yang boleh diukur.
1. Base Code Cleaner
Sebagai projek matang, dan semakin ramai pemaju mula bekerja di atasnya, pertindihan dan tumpang tindih biasanya muncul lambat laun, dan tiba-tiba kita menyedari bahawa kita tidak memahami apa yang sedang berlaku.
Ia bukan satu kebetulan bahawa memelihara prinsip DRY (Jangan Ulangi Ulangi) ini adalah salah satu daripada asas pengembangan perisian yang berkesan. Pangkalan kod yang diilhami dengan teliti dan dioptimumkan di mana kami boleh gunakan semula elemen yang sama beberapa kali sentiasa ramping dan rapi, dan dengan itu lebih mudah untuk difahami dan bekerja dengan.
2. Konsistensi yang lebih tinggi
Konsistensi adalah seperti kerja rumah, apabila ia diurus dengan baik tidak ada yang mengetahuinya, tetapi apabila ia diabaikan, seluruh tempat kelihatan kemas, dan kita mendapati diri kita dalam kekacauan.
Memenuhi konsistensi yang lengkap adalah sukar, seperti memastikan keserasian ke belakang akhirnya boleh mendapat jalan penambahbaikan, tetapi memberi perhatian kepada menggunakan garis panduan kod koheren, API serasi, dan standard yang konsisten pasti dapat mengurangkan rasa sakit.
Mengekalkan ketekalan kod dalam fikiran adalah sangat penting apabila kita perlu berurusan dengan kod warisan, atau dalam kes-kes projek yang lebih besar itu melibatkan banyak pemaju.
3. Tapak Lebih Cepat
Mengoptimumkan kod adalah serupa dengan membeli kereta yang lebih cepat. Akibatnya, kod kami melaksanakan lebih cepat, dan tapak atau aplikasi kami menggunakan memori kurang daripada sebelumnya. Walaupun proses pengoptimuman mungkin memerlukan masa dan wang tambahan, hasilnya adalah a pengalaman yang lebih baik, bukan sahaja untuk pemaju tetapi juga untuk pengguna akhir.
Kod yang lebih cepat memerlukan masa beban halaman yang lebih pendek juga, yang merupakan masalah besar dalam kedua-dua dunia pengoptimuman enjin carian dan pemasaran penukaran. Penyelidikan mengatakan bahawa “hampir separuh daripada pengguna web menjangkakan laman web akan memuatkan dalam 2 saat atau kurang, dan mereka cenderung meninggalkan laman web yang tidak dimuat dalam masa 3 saat”, jadi kelajuan jelas bukan kawasan yang kita dapat mengabaikannya dengan selamat.
4. Keterbacaan Kod yang lebih baik
Kebolehbacaan adalah satu aspek penting untuk pemeliharaan kod. Kod padat dengan pemformatan ad hoc sukar dibaca, oleh itu sukar difahami, terutamanya bagi pemaju yang baru dalam projek.
Kita boleh melindungi diri kita daripada kesakitan berurusan dengan kod yang tidak dapat dielakkan jika kami menggunakan teknik pengoptimuman kod tertentu, seperti:
- menggunakan konvensyen penamaan yang koheren dengan nama yang bermakna, seperti BEM
- pemformatan yang konsisten dengan penggunaan logik lekukan, ruang kosong dan jarak menegak
- mengelakkan bunyi bising yang tidak perlu, seperti penjelasan yang jelas dan jelas
Ini adalah sebab mengapa projek besar, seperti WordPress, jQuery, dan Mootools, mempunyai panduan gaya pengekodan yang jelas setiap pembangun yang terlibat perlu mengikuti.
5. Lebih banyak Refactoring
Ia sering berlaku dalam pembangunan web yang kita dapat mewarisi kod dari orang lain, dan dengan cepat memahami bahawa ia adalah jauh dari yang optimum, sama ada dari segi struktur, prestasi, atau pemeliharaan. Perkara yang sama boleh berlaku dengan projek-projek kami yang terdahulu yang kami tulis ketika kami mempunyai pengalaman yang kurang dalam pengaturcaraan.
Dalam kes lain matlamat perubahan projek yang luar biasa besar dari masa ke masa, dan kita perlu mengutamakan perkara-perkara lain dalam permohonan itu daripada sebelumnya.
Kami bercakap tentang refactoring apabila kami ubah (membersihkan) kod sedia ada untuk mengoptimumkannya tanpa mengubah sebarang fungsinya. Refactoring perlu dilakukan dengan penuh perhatian, seolah-olah ia dilakukan dengan cara yang salah, kita dapat dengan mudah berakhir dengan asas kod yang bahkan kurang optimal daripada yang asal.
Nasib baik kita mempunyai banyak teknik yang teruji di tangan kita yang boleh membuat refactoring proses lancar.
6. Lebih banyak Debugging langsung
Debugging memerlukan sebahagian besar aliran kerja pembangunan web, dan biasanya tugas yang membosankan atau bahkan menakutkan. Ia cukup sukar jika kita perlu debug kod kami sendiri, tetapi ia lebih buruk lagi apabila kita perlu mencari bug di orang lain, terutamanya jika ia seperti kod spaghetti yang tidak pernah menggunakan apa-apa tetapi berfungsi.
Reka bentuk pintar dan corak seni bina, seperti menggunakan objek dan modul yang berlainan, dan garis panduan pengekodan yang jelas boleh memudahkan proses debugging, walaupun kemungkinan besar masih tidak menjadi tugas kita yang paling disukai.
7. Alur kerja yang lebih baik
Banyak projek pembangunan web dijalankan oleh pasukan yang diedarkan, seperti komuniti sumber terbuka atau pasukan terpencil. Salah satu perkara yang paling sukar dalam menguruskan alur kerja seperti ini ialah untuk mencari cara yang menjadikan komunikasi cukup berkesan membolehkan ahli pasukan memahami dengan mudah antara satu sama lain, dan tidak perlu membincangkan mungkir secara berterusan.
Setuju dengan amalan terbaik dan panduan gaya dapat merapatkan jurang antara orang-orang dari latar belakang yang berbeza, apatah lagi kesulitan komunikasi biasa antara pasukan reka bentuk dan pembangunan di kebanyakan projek web.
Pengoptimuman kod juga pengoptimuman aliran kerja, seolah-olah ahli pasukan bercakap bahasa yang sama dan berkongsi matlamat yang diisytiharkan yang sama, mereka juga akan dapat bekerja bersama tanpa banyak kerumitan.
8. Penyelenggaraan Kod yang Lebih Mudah
Walaupun membina sesuatu dari bawah menjadi cenderung lebih menyenangkan daripada mengekalkan kod yang sedia ada, kadang-kadang kita masih perlu melakukan penyelenggaraan kod yang sedang berjalan. Bekerja dengan sistem yang sedia ada juga boleh memberi kita pandangan baru mengenai pengoptimuman kod, kerana ia adalah pengalaman yang berbeza daripada pengoptimalan awal dalam projek baru.
Dalam penyelenggaraan perisian, kita sudah berada di tahap di mana kita boleh menangkap masalah prestasi dan kecekapan sebenar, dan bekerja dengan pengguna sebenar dan bukannya kes penggunaan hipotetikal.
Penyelenggaraan kod biasanya tidak semestinya dihormati dalam kalangan pemaju, tetapi masih boleh menjadi tugas yang bermanfaat jika kita mengikuti amalan terbaik, seperti menggunakan kawalan versi yang boleh dipercayai, pengurusan pergantungan, platform pementasan dan ujian, dan betul jaga dokumentasi.
9. Pembangunan Ciri Lebih Cepat
Inovasi berterusan adalah teras untuk kekal relevan dalam bidang kami, seperti jika kami tidak menunjukkan apa-apa yang baru kepada pengguna kami seketika, kami dengan cepat boleh ditinggalkan. Memperluas projek, dan menambahkan ciri-ciri baru kepadanya biasanya lebih cepat jika kita bekerja dengan dasar kod yang baik dan bersih.
Selain daripada kaedah pengoptimuman kod yang telah dibincangkan, pembangunan ciri juga boleh mendapat momentum jika kita bersaing kaedah pengurusan projek moden, contohnya jika kita menggunakan model kitaran hayat berulang daripada model air terjun tradisional.
10. Hutang Teknikal yang lebih kecil
Istilah "hutang teknikal" dicipta oleh Ward Cunningham, pengaturcara yang juga mengembangkan wiki pertama. Ia membandingkan akibat keputusan pengaturcaraan buruk kita yang terkumpul dari masa ke masa kepada hutang kewangan di mana orang membayar minat pada masa depan untuk mendapatkan wang dengan cepat pada masa kini.
Keputusan kurang daripada-optimum ini biasanya menunjukkan diri mereka dalam bentuk perbaikan cepat, menyalin dan menampal pengaturcaraan, pengekodan keras, pengaturcaraan kultus kargo, dan lain-lain pengekodan antipatterns dan tabiat kerja ceroboh.
Ia pada asasnya tidak mungkin sepenuhnya mengelakkan hutang teknikal, kerana keputusan yang baik boleh menjadi akibat yang kurang diingini pada masa akan datang, tetapi jika kita rajin mengoptimumkan kod kami, kami pasti akan menjadi dibebani dengan hutang teknikal yang lebih kecil.