Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Theory
Code

Menulis Kode yang Elegan dan Mudah Dibaca

Length:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Dwi Bagus Nurrohman (you can also view the original English article)

Dalam tutorial ini, kami akan memberi anda sembilan teknik praktis untuk menulis kode yang elegan dan mudah dibaca. Kami tidak akan berbicara tentang arsitektur, bahasa, atau platform tertentu. Fokusnya terletak pada penulisan kode yang lebih baik. Mari kita mulai.

"Mengukur kemajuan pemrograman berdasarkan baris kode seperti mengukur kemajuan pembangunan pesawat terbang berdasarkan berat." - Bill Gates

Perkenalan

Jika anda seorang pengembang, mungkin ada saat-saat ketika anda menulis kode dan, setelah beberapa hari, minggu, atau bulan, anda melihatnya kembali dan berkata pada diri sendiri, "Apa yang dilakukan oleh kode ini?" Jawaban atas pertanyaan itu mungkin adalah "Saya benar-benar tidak tahu!" Dalam hal ini, satu-satunya hal yang dapat anda lakukan adalah memeriksa kode dari awal hingga selesai, mencoba memahami apa yang Anda pikirkan ketika anda menulisnya.

Ini sebagian besar terjadi ketika kita malas dan kami hanya ingin mengimplementasikan fitur baru yang diminta klien. Kami hanya ingin menyelesaikan pekerjaan dengan sesedikit mungkin usaha. Dan ketika berhasil, kita tidak peduli dengan kode itu sendiri, karena klien tidak akan pernah melihat kebenaran yang jelek, apalagi memahaminya. Benar? Salah. Saat ini, berkolaborasi pada perangkat lunak telah menjadi standar dan orang-orang akan melihat, membaca, dan memeriksa kode yang Anda tulis. Bahkan jika kode Anda tidak diteliti oleh rekan kerja Anda, Anda harus membiasakan diri untuk menulis kode yang jelas dan mudah dibaca. Selalu.

Sebagian besar waktu, Anda tidak bekerja sendirian di sebuah proyek. Kita sering melihat kode jelek dengan variabel yang memiliki nama seperti i, a, p, pro, dan rqs. Dan jika benar-benar menjadi buruk, pola ini terlihat di seluruh proyek. Jika ini terdengar akrab, maka saya cukup yakin anda telah bertanya pada diri sendiri pertanyaan, "Bagaimana orang ini bisa menulis kode seperti ini?" Tentu saja, ini membuat anda semakin bersyukur ketika menemukan kode yang jelas, mudah dibaca, dan bahkan indah. Kode yang jelas dan bersih dapat dibaca dalam hitungan detik dan ini dapat menghemat banyak waktu bagi anda dan kolega Anda. Itu harus menjadi motivasi anda untuk menulis kode berkualitas.

1. Mudah Dipahami

Kita semua sepakat bahwa kode harus mudah dipahami. Ya kan? Contoh pertama berfokus pada spasi. Mari kita lihat dua contoh.

Meskipun hasil dari contoh-contoh ini identik, mereka terlihat sangat berbeda. Mengapa Anda harus menggunakan lebih banyak baris kode jika Anda dapat menulis lebih sedikit? Mari kita telusuri dua contoh lain, sesuatu yang saya yakin sering Anda lihat.

Sekali lagi, hasil dari contoh-contoh ini identik. Mana yang lebih baik? Dan mengapa? Apakah lebih sedikit baris kode berarti kode yang lebih baik? Kami akan mengunjungi kembali pertanyaan ini nanti dalam tutorial ini.

2. Apakah Lebih Kecil Selalu Lebih Baik?

Dalam ilmu komputer, anda sering mendengar ungkapan "less is more(=kurang adalah lebih)". Secara umum, jika anda dapat memecahkan masalah dalam lebih sedikit baris kode, semakin baik. Mungkin anda perlu waktu lebih sedikit untuk memahami kelas 200-line daripada kelas 500-line. Namun, apakah ini selalu benar? Lihatlah contoh-contoh berikut.

Tidakkah Anda setuju bahwa contoh kedua lebih mudah dibaca dan dipahami? Anda harus dapat mengoptimalkan agar mudah dibaca. Tentu saja, Anda dapat menambahkan beberapa komentar pada contoh pertama untuk membuatnya lebih mudah dipahami, tetapi bukankah lebih baik untuk menghilangkan komentar dan menulis kode yang lebih mudah dibaca dan dipahami?

3. Penamaan

Memilih nama deskriptif untuk hal-hal seperti variabel dan fungsi adalah aspek kunci dari penulisan kode yang dapat dibaca. Ini membantu kolega Anda dan diri Anda sendiri untuk dengan cepat memahami kode tersebut. Memberi nama variabel tmp tidak memberi tahu anda apa pun selain bahwa variabel bersifat sementara untuk beberapa alasan, yang tidak lebih dari tebakan yang berpendidikan. Itu tidak memberi tahu jika variabel menyimpan nama, tanggal, dll.

Contoh bagus lainnya adalah penamaan metode stop. Itu bukan nama buruk, tapi itu benar-benar tergantung pada implementasi metode. Jika melakukan operasi berbahaya yang tidak dapat diurungkan, anda mungkin ingin mengganti namanya untuk kill atau pause jika operasi dapat dilanjutkan. Apakah anda mendapatkan idenya?

Jika anda bekerja dengan variabel untuk berat kentang, mengapa anda beri nama tmp? Ketika anda mengunjungi kembali potongan kode itu beberapa hari kemudian, anda tidak akan ingat untuk apa tmp digunakan.

Kami tidak mengatakan bahwa tmp adalah nama yang buruk untuk suatu variabel, karena ada kalanya tmp sangat masuk akal sebagai nama variabel. Lihatlah contoh berikut di mana tmp bukanlah pilihan yang buruk sama sekali.

Dalam contoh di atas, tmp menjelaskan apa yang dilakukannya, sementara menyimpan nilai. Itu tidak diteruskan ke fungsi atau metode, dan itu tidak bertambah atau dimodifikasi. Ini memiliki masa hidup yang terdefinisi dengan baik dan tidak ada pengembang yang berpengalaman yang akan dilempar dengan nama variabel. Namun, kadang-kadang, itu hanya kemalasan biasa. Lihatlah contoh berikut.

Jika tmp menyimpan informasi pengguna, mengapa tidak dinamai userInfo? Penamaan variabel, fungsi, metode, kelas, dll yang penting adalah penting saat menulis kode yang dapat dibaca. Tidak hanya membuat kode Anda lebih mudah dibaca, itu akan menghemat waktu Anda di masa depan.

Objective-C cukup bertele-tele, tetapi sangat mudah dibaca. Apple menggunakan konvensi penamaan yang terdefinisi dengan baik yang dapat Anda adopsi di sebagian besar bahasa pemrograman. Anda dapat membaca lebih lanjut tentang konvensi penamaan ini dalam Pemrograman dengan Objective-C.

4. Tambahkan Arti ke Nama

Seperti yang kita lihat di kiat sebelumnya, penting untuk memilih nama dengan bijak. Namun, sama pentingnya untuk menambahkan makna pada nama yang Anda gunakan untuk variabel, fungsi, metode, dll. Ini tidak hanya membantu menghindari kebingungan, tetapi juga membuat kode yang Anda tulis lebih mudah dipahami. Memilih nama yang masuk akal hampir seperti menambahkan metadata ke variabel atau metode. Pilih nama deskriptif dan hindari yang generik. Kata add, misalnya, tidak selalu ideal seperti yang anda lihat pada contoh berikut.

Tidak jelas apa yang seharusnya dilakukan addUser. Apakah itu menambahkan pengguna ke daftar pengguna, ke database, atau ke daftar orang yang diundang ke suatu pesta? Bandingkan ini dengan registerUse atau signupUser. Ini lebih masuk akal. Kan? Lihatlah daftar berikut untuk mendapatkan ide yang lebih baik tentang apa yang kami kendarai.

Kata Sinonim
do make, perform, execute, compose, add start launch, create, begin, open explode detonate, blow up, set off, burst

5. Ukuran Nama

Banyak pemrogram tidak suka nama panjang, karena sulit diingat dan sulit diketik. Tentu saja, nama tidak boleh terlalu panjang seperti newClassForNavigationControllerNamedFirstViewController. Ini sulit untuk diingat dan itu hanya membuat kode Anda jelek dan tidak dapat dibaca.

Seperti yang kita lihat sebelumnya, kebalikannya, nama pendek, juga tidak bagus. Apa ukuran yang tepat untuk nama variabel atau metode? Bagaimana Anda memutuskan antara memberi nama variabel len, length, atau user_name_length? Jawabannya tergantung pada konteks dan entitas yang terikat nama.

Nama panjang tidak lagi menjadi masalah saat menggunakan IDE (Integrated Development Environment) modern. Kelengkapan kode membantu anda menghindari kesalahan ketik dan juga membuat saran untuk membuat mengingat nama tidak terlalu merepotkan.

Anda bisa menggunakan nama pendek (lebih) jika variabelnya lokal. Terlebih lagi, disarankan untuk menggunakan nama yang lebih pendek untuk variabel lokal agar kode Anda dapat dibaca. Lihatlah contoh berikut.

6. Penamaan Booelean

Boolean bisa sulit untuk disebutkan namanya, karena mereka dapat memiliki arti yang berbeda tergantung pada cara Anda membaca atau menafsirkan nama tersebut. Dalam cuplikan kode berikutnya, read_password dapat berarti bahwa kata sandi telah dibaca oleh program, tetapi juga dapat berarti bahwa program harus membaca kata sandi.

Untuk menghindari masalah ini, Anda bisa mengganti nama boolean di atas menjadi didReadPassword untuk menunjukkan bahwa kata sandi telah dibaca atau shouldReadPassword untuk menunjukkan bahwa program perlu membaca kata sandi. Ini adalah sesuatu yang Anda lihat banyak di Objective-C, misalnya.

7. Untuk Berkomentar atau Tidak Berkomentar

Menambahkan komentar ke kode itu penting, tetapi sama pentingnya untuk menggunakannya dengan hemat. Mereka harus digunakan untuk membantu seseorang memahami kode Anda. Namun, membaca komentar juga membutuhkan waktu dan jika komentar tidak menambah banyak nilai, maka waktu itu terbuang sia-sia. Cuplikan kode berikutnya menunjukkan bagaimana tidak menggunakan komentar.

Apakah cuplikan kode ini bermanfaat bagi Anda? Jawabannya mungkin "Tidak." Komentar dalam contoh di atas tidak menambahkan informasi tambahan, terutama karena nama metode sudah sangat deskriptif, yang umum di Objective-C. Jangan menambahkan komentar yang menjelaskan yang sudah jelas. Lihatlah contoh berikut. Bukankah ini penggunaan komentar yang jauh lebih baik?

Komentar seperti ini membuatnya sangat mudah untuk menavigasi basis kode dengan cepat dan efisien. Ini menyelamatkan Anda dari keharusan membaca kode dan membantu Anda memahami logika atau algoritma.

8. Gaya dan Konsistensi

Setiap bahasa atau platform memiliki (atau lebih) panduan gaya dan bahkan sebagian besar perusahaan memilikinya. Apakah Anda menempatkan kurung kurawal dari metode Objective-C pada garis yang terpisah atau tidak?

Jawabannya adalah tidak masalah. Tidak ada jawaban yang benar. Tentu saja, ada panduan gaya yang bisa anda adopsi. Yang penting adalah kode anda konsisten dalam hal gaya. Meskipun ini mungkin tidak mempengaruhi kualitas kode Anda, itu pasti mempengaruhi keterbacaan dan kemungkinan besar akan mengganggu kolega Anda atau siapa pun yang membaca kode Anda. Bagi kebanyakan pengembang, kode jelek adalah jenis kode terburuk.

9. Metode dan Fungsi yang Berfokus

Kesalahan umum di antara pengembang adalah mencoba menjejalkan sebanyak mungkin fungsi ke dalam fungsi dan metode. Ini berfungsi, tetapi tidak akurat dan membuat debugging terasa sakit di leher. Kehidupan anda — dan kehidupan rekan anda — akan menjadi jauh lebih mudah jika anda memecah masalah yang lebih besar menjadi bagian-bagian kecil dan menangani bagian-bagian itu ke dalam fungsi atau metode yang terpisah. Lihatlah contoh berikut di mana kita menulis gambar ke disk. Ini sepertinya tugas yang sepele, tetapi ada banyak lagi jika anda ingin melakukannya dengan benar.

Jika satu unit kode mencoba melakukan terlalu banyak, Anda sering berakhir dengan pernyataan kondisional bersarang, banyak pengecekan kesalahan, dan pernyataan kondisional yang terlalu rumit. Metode ini melakukan tiga hal, mengambil jalur direktori dokumen aplikasi, mengambil dan membuat jalur untuk direktori arsip, dan menulis gambar ke disk. Setiap tugas dapat dimasukkan ke dalam metodenya sendiri seperti yang ditunjukkan di bawah ini.

Ini jauh lebih mudah untuk di-debug dan dirawat. Anda bahkan dapat menggunakan kembali metode applicationDocumentsDirectory di tempat lain proyek, yang merupakan manfaat lain dari pemecahan masalah yang lebih besar menjadi bagian-bagian yang dapat dikelola. Menguji kode juga menjadi lebih mudah.

Kesimpulan

Pada artikel ini, kita telah melihat lebih dekat pada penulisan kode yang dapat dibaca dengan memilih nama untuk variabel, fungsi, dan metode secara bijaksana, konsisten ketika menulis kode, dan memecah masalah kompleks menjadi potongan yang dapat dikelola. Jika anda memiliki pertanyaan atau umpan balik, jangan ragu untuk meninggalkan komentar di bawah ini.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.