Mengoptimalkan Kode di Dunia yang Tidak Ingin Dioptimalkan

Diterbitkan: 2019-11-22

Optimalisasi dini adalah akar dari segala kejahatan.

Ini adalah pepatah umum di kalangan pengembang. Masuk akal. Mengoptimalkan sebelum waktunya dapat berarti mengulang pekerjaan, dan waktu adalah sumber daya pengembang yang paling terbatas. Ini bisa berarti menghabiskan waktu berharga untuk mengoptimalkan skenario yang belum ada untuk pengguna produk. Ini bisa berarti menulis kode yang lebih sulit dipahami dengan peningkatan kinerja yang tidak jelas.

Saat berpartisipasi dengan tim peninjau tema WordPress sekitar setahun yang lalu, saya menemukan nasihat itu sekali lagi. Optimalisasi dini adalah akar dari segala kejahatan. Jawabannya adalah kepada penulis tema yang ingin mengurangi jumlah dan bobot skrip yang perlu dimuat oleh tema mereka. Di satu sisi, pembuat tema dapat memuat skrip 1,29 kb tanpa ketergantungan untuk menyelesaikan pekerjaan. Opsi lainnya adalah menggunakan skrip yang bergantung pada jQuery yang disertakan dalam inti WordPress dengan total 105 kb karena "sebagian besar" situs WordPress tetap memuat jQuery.

Bagi saya, jawabannya sederhana. Gunakan skrip yang lebih kecil kecuali skrip inti sudah dimuat di ujung depan. Saya tidak memikirkannya dalam hal optimasi prematur . Saya menganggapnya sebagai pengoptimalan sehari-hari yang lama, biasa-biasa saja.

Pengembang tidak boleh bingung optimasi prematur dengan konsep membuat keputusan desain cerdas di awal proses. Mereka juga tidak boleh menunggu sampai tahap akhir pengembangan untuk mulai mengoptimalkan, saat fokusnya adalah mengeluarkan produk ke pengguna akhir. Itu adalah tanda dari proses desain produk yang buruk.

Selama setahun terakhir, percakapan itu melekat pada saya. Ini membantu saya menjadi lebih sadar akan tren yang menakutkan, tidak hanya di komunitas pengembang WordPress, tetapi dengan pengembangan web secara umum. Terlalu sering, pengembang begitu jauh dari pengguna normal dan teknologi yang diandalkan oleh pengguna itu pengoptimalan sedikit lebih dari sekadar renungan. Sebaliknya, itu harus selalu menjadi yang terdepan dalam benak pengembang mana pun.

Ketergantungan yang berlebihan pada kutipan yang disalahgunakan ini telah membantu mendorong tren pengukuran berat halaman dalam megabyte, bukan kilobyte. Itu terlalu sering digunakan sebagai pembenaran menyeluruh untuk tidak melakukan pengoptimalan apa pun dalam fase pengembangan sambil menebusnya dengan kompresi file dan caching dalam produksi.

Bagian dari penulisan kode kualitas adalah mengoptimalkan kode tersebut selama setiap tahap proses pengembangan. Ini tentang membuat keputusan sulit untuk memotong hal-hal yang tidak perlu saat perangkat lunak datang bersama. Caching harus menjadi pilihan terakhir setelah semuanya dibersihkan.

Optimalisasi prematur lebih tentang mencoba untuk mengoptimalkan ketika tidak ada keuntungan yang jelas atau bekerja pada optimasi mikro yang mengubah desain perangkat lunak untuk keuntungan kecil-atau-tidak ada. Ini tidak berarti mengabaikan peningkatan kinerja yang jelas selama pengembangan.

Tidak Semua Orang ada di Gigabit Internet

Sebagian besar pengembang yang saya kenal menggunakan koneksi internet super cepat, seringkali dengan kecepatan unduh 1 Gbps dan data tak terbatas. Dalam situasi itu, mudah untuk melupakan bahwa sebagian besar dunia masih memiliki koneksi yang lambat dengan batasan data.

Beberapa bahkan mungkin mengaitkan koneksi yang lambat dengan negara-negara dunia ketiga di mana jutaan orang menggunakan teknologi ponsel 2G. Namun, ada petak besar Amerika Serikat dan negara maju lainnya yang tidak memiliki kabel langsung atau saluran DSL, yang umumnya tersedia di kota-kota dan pinggiran kota.

Pemutusan hubungan ini secara langsung terlihat ketika pengembang lain telah memulai obrolan dengan saya. Dalam beberapa tahun terakhir, semakin umum bagi mereka untuk meminta obrolan video. Bahkan tidak dipertanyakan apakah hal seperti itu mungkin (obrolan video paling tidak dapat diandalkan untuk saya). Kemampuan untuk melakukan obrolan video kapan saja diterima begitu saja.

Ada dua pilihan layanan internet di daerah saya tinggal: satelit atau dial-up. Bahkan perusahaan telepon lokal menolak untuk menawarkan DSL di daerah ini karena biaya infrastruktur dengan saluran telepon yang berumur puluhan tahun. Karena biaya akses internet satelit yang mahal, yang biasanya disertai dengan batasan data, banyak yang terjebak dengan dial-up. Perusahaan telepon seluler mengubah permainan ke tingkat tertentu, dengan asumsi layanan dapat diandalkan, tetapi ada kerugian dengan menempuh rute itu, yang dapat mencakup batasan data atau hotspot.

Untuk negara yang berteknologi maju seperti itu, banyak dari penduduknya hampir tidak dapat mengejar ketertinggalan dari yang lain satu dekade lalu.

Sementara saya cukup beruntung untuk memilih di mana saya tinggal dan tidak ada yang menahan saya untuk pindah, kebanyakan tidak memiliki pilihan itu. Mereka terjebak dengan yang terbaik yang mereka mampu. Bahkan di daerah pedesaan, internet adalah bagian yang tak terhindarkan dari kehidupan sehari-hari, dan pengembang tidak membuatnya mudah bagi orang-orang ini.

Meskipun ini bersifat anekdot, ini adalah realitas nyata kehidupan pedesaan di kantong-kantong AS.

Keuntungan tinggal di dusun Alabama adalah bahwa hal itu telah mengubah perspektif saya sebagai pengembang. Itu berarti saya perlu mempertanyakan setiap keputusan kode untuk setiap plugin dan tema yang saya buat. Dengan batas data, saya perlu memastikan bahwa saya tidak menggunakan terlalu banyak sumber daya.

Lebih dari segalanya, memiliki batasan data mengubah cara saya menggunakan internet. Saya sekarang menjalankan pemblokir iklan. Saya memiliki ekstensi untuk mematikan video dari pemuatan otomatis. Saya menonaktifkan JavaScript di situs berat yang perlu saya gunakan. Beberapa situs tampak menarik, tetapi saya tidak pernah kembali ke sana karena mereka adalah sumber daya.

Ketika Anda tinggal di tempat di mana setiap byte penting, Anda cenderung menghindari pemborosan.

Meskipun tidak selalu berhasil, sejak transisi saya ke kehidupan kota kecil, saya telah berusaha membangun aplikasi dengan cara yang dapat melayani orang-orang yang tidak cukup istimewa untuk memiliki akses internet yang sangat cepat.

Menunjukkan ini adalah tentang memastikan pengembang menyadari bahwa pengoptimalan itu penting. Itu penting di setiap tahap proses pengembangan. Itu penting karena orang-orang dengan koneksi lambat dan batasan data ini juga perlu membeli produk, menggunakan layanan, membaca konten, dan melakukan semua hal lain yang dilakukan orang di web.

Jika Anda seorang pengembang yang berpikir untuk menambahkan slider itu, mekanisme menggesek untuk seluler, atau gadget apik lainnya, pikirkan tentang mereka yang harus menunggu fitur itu dimuat. Periksa apakah dependensinya tidak memuat terlalu banyak sumber daya tambahan. Lakukan riset untuk melihat apakah Anda dapat menemukan implementasi yang lebih ringan. Tapi, pertama-tama, tanyakan pada diri Anda apakah itu perlu.

Tema dan plugin yang dibuat oleh pengembang WordPress tidak boleh menjadi hambatan untuk situs web. Kita bisa melakukan yang lebih baik.