
Ini adalah terjemahan dari
posting Michael McKee. Michael adalah seorang programmer profesional yang dari waktu ke waktu berbagi pengalaman dan keahliannya dengan kolega, baik coder pemula dan profesional.
Sebagian besar programmer adalah yang terakhir untuk memikirkan estetika kode yang mereka buat. Tentu saja, hampir semua orang menganut aturan umum. Tetapi bagaimana jika kita melangkah lebih jauh? Kode yang baik harus bekerja sejak awal. Tapi saya percaya bahwa dia harus memiliki gayanya sendiri, ini tidak hanya berlaku untuk konten, tetapi juga untuk membentuk.
Skillbox merekomendasikan: Kursus tahunan praktis "Pengembang PHP dari awal hingga PRO . "
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".
Ini sebenarnya tidak demikian. Berikut adalah beberapa masalah yang dihadapi oleh semua programmer mandiri yang belajar sendiri. Ada banyak artikel dan catatan tentang ini, tetapi saya ingin memberi tahu Anda cara mendesain kode secara visual sehingga tidak hanya benar, tetapi juga terlihat bagus dari luar. Saya percaya bahwa ekspresi diri adalah mungkin tidak hanya dalam seni visual - itu dapat dilakukan selalu dan di mana-mana.
Organisasi kerja, serta bentuk visualnya, sangat penting bagi saya. Ruby adalah versi hebat dari bahasa pemrograman, seolah dibuat khusus untuk memenuhi persyaratan saya, karena Ruby memungkinkan kita untuk melakukan apa yang kita inginkan tanpa masalah. Ini fleksibel, bergaya dan logis.
Mari kita lihat contoh ini.

Bahkan seorang programmer pemula akan mengerti apa yang salah di sini. Sangat menyakitkan melihat kode ini. Tapi versi yang diperbaiki, yang sudah terlihat lebih baik.

Fiuh! Jauh lebih baik. Sekarang kita melihat apa yang menjadi milik dan bagaimana. Tetapi kode ini dapat ditingkatkan. Deklarasi attr_reader dan attr_accessor dapat dibuat lebih ekspresif.

Mendeklarasikan setiap atribut baru dengan baris baru jauh lebih mudah dibaca. Sekarang kami memiliki daftar atribut yang ditugaskan untuk masing-masing accessor. Anda bisa melangkah lebih jauh.

Di sini sudah mudah dipahami di mana hanya ada kemungkinan membaca, di mana - membaca dan menulis.
Sekarang mari kita lihat bagian selanjutnya dari kelas ini - metode inisialisasi. Anda dapat melakukan banyak hal di sini.

Pada prinsipnya, kita membaca kodenya, semuanya tampak baik-baik saja. Tetapi Anda bisa berbuat lebih baik.

Jika Anda menempatkan semua operator penugasan dalam satu kolom, ternyata cukup baik. Melihat kode ini, mudah untuk mengatakan apa, bagaimana, dan mengapa akan berhasil.
Mari kita lihat bagaimana keseluruhan InvoiceItem sekarang akan terlihat.

Sekarang kita memiliki kelas yang mudah dibaca dan dimengerti secara sekilas. Tugas mudah dipilih, atribut accessor mudah digunakan.
Apa opsi optimasi lain yang tersedia untuk kode kita? Dalam kebanyakan kasus, pada awal pembelajaran pemrograman, tes menulis dapat menyebabkan masalah karena kurangnya pengetahuan. Waktu terbuang untuk membuat data palsu. Ini tidak mengerikan, tetapi dalam banyak kasus hal ini mengarah pada penciptaan array besar teks yang sulit dibaca. Mari kita lihat ini.

Sialan. Di sini, di bagian paling awal, repositori baru dibuat untuk menyimpan kelas transaksi. Ada tiga dari mereka, masing-masing digunakan untuk pengujian, jatuh ke dalam hash untuk digunakan nanti. Selain itu, kelas yang akan kita buat membutuhkan banyak atribut. Masing-masing dari mereka memiliki nama dan makna yang agak panjang. Apa yang bisa ditingkatkan untuk membuat kode terlihat bagus?
Semuanya sederhana.

Kami memecahkan setiap hash ini dengan jeda baris dengan setiap deklarasi nilai baru. Selain itu, metode yang sama digunakan seperti dalam optimasi InvoiceTeam. Sekarang di editor Anda dapat dengan mudah melihat semua data uji dalam bidang pandang yang cukup sempit. Kita bisa melihat nilai-nilai kunci. Jika perlu, mereka dapat diubah tanpa menggulir ke depan dan ke belakang.
Strategi serupa dapat digunakan ketika kita bekerja dengan sejumlah besar atribut.

Dalam hal ini, kami tidak melihat seluruh struktur kode, setidaknya di area tampilan saat ini. Untuk melihat atributnya, Anda harus terus-menerus menggulir, yang tidak terlalu nyaman. Mari kita perbaiki dengan cara yang sama seperti yang kita lakukan di atas, dalam contoh hash.

Kami membaca kode baru - dan jauh lebih ramah manusia, kalau boleh saya katakan begitu. Kami jelas melihat semua atribut dan tugas. Kemungkinan debug semakin mudah. Sesuatu mungkin salah, dan kemudian mencari tahu apa dan mengapa tidak berfungsi akan sulit jika Anda tidak membawa kode ke tampilan "cantik".
Ketika kita menulis program, kita tidak boleh lupa: penting tidak hanya bahwa mereka bekerja dengan benar, tetapi juga bahwa prinsip fungsi mereka jelas bagi kolega, jika perlu. Kode harus logis, dipecah menjadi paragraf, kalimat dan bagian struktural.
Nah dan pada akhirnya - contoh favorit saya untuk Ruby. Mari kita melihatnya.

Mari kita ambil setiap elemen dari hewan dan terapkan metode kapitalisasi. Kelihatannya bagus, tetapi yang lebih baik adalah bahwa kode dapat dipersingkat sedikit dan membuatnya lebih mudah dibaca oleh manusia.

Metode serupa berfungsi dalam banyak kasus dan saya sarankan menggunakannya kapan pun memungkinkan.
Secara umum, artikel ini bisa disebut sepele, tetapi memberikan kesempatan kepada pemula untuk memahami keindahan kode. Artinya, kode itu sendiri seharusnya tidak hanya berfungsi, tetapi juga dapat dimengerti - bahkan jika program ini ditulis hanya untuk Anda sendiri. Jika Anda mengembangkan kebiasaan menciptakan kode yang indah dan berfungsi, ini dapat membantu pertumbuhan profesional Anda.
Skillbox merekomendasikan: