JavaRush /Java Blog /Random-ID /Robert Martin, Kode Bersih. Review buku tentang "kode kun...
Artem Murk
Level 35
Днепр

Robert Martin, Kode Bersih. Review buku tentang "kode kung fu" untuk pengembang

Dipublikasikan di grup Random-ID
Halo orang Javarashev! Artikel ini merupakan resensi buku “Clean Code” karya Robert Martin. Bersama-sama kita akan mencari cara untuk meningkatkan dan mengoptimalkan kode Anda, dan pada akhirnya, tugas kecil namun menarik menanti Anda.
"Kode Bersih" oleh Robert Martin.  Review buku "kode kung fu" untuk pengembang - 1
Setiap hari, ketika kita membuka editor kode, kita dihadapkan pada banyak kelas, fungsi, dan variabel. Pilihan terbaik adalah jika ini adalah kode Anda yang ditulis dari awal, ditulis sekali, hanya ada beberapa baris di dalamnya, Anda mengerjakannya sendiri, tidak ada pengeditan dan tidak ada dukungan lebih lanjut dari pelanggan. TETAPI! Seperti yang ditunjukkan oleh latihan, ya, saya pikir Anda sendiri memahami bahwa ini tidak terjadi. Pada dasarnya, kami harus berinteraksi dengan anggota tim kami, mempertahankan kode “Hindu”, dan mengurai produk menjadi jutaan baris. Saya sering mendengar jawaban seperti ini dari rekan-rekan pelatihan saya: “Kode ini ditulis oleh saya, dan saya tidak akan menunjukkannya kepada siapa pun,” tetapi ketika saya melihat permintaan Bantuan untuk Bantuan dengan kode seperti itu, dibutuhkan waktu yang sangat lama. waktu (terkadang sangat lama) untuk mendalami dan memahami Apa yang ingin disampaikan orang tersebut kepada saya, saya bahkan ingin mengatakan “hapus dan tulis ulang lagi”! Hargai waktu dan tenaga orang yang mau membantu Anda, menulislah dengan benar, dan jika Anda belum tahu caranya, tidak ada kata terlambat untuk belajar. Buku Robert Martin menonjol di antara buku-buku format ini karena memuat banyak contoh di Jawa. Ini mungkin sedikit pernyataan fanatik dari saya, namun ditulis dengan gaya OOP yaitu pada penulisan part dan section. Mudah dipahami dan dibaca, buku ini mudah dibaca saat bepergian atau malam hari sebelum tidur. Kode Bersih dibagi menjadi 3 bagian. Pada bagian pertama, kita diminta untuk mendalami teori dalam buku tersebut, mempelajari tentang pola desain dan kaidah tata krama yang baik. Bagian kedua mengajak kita untuk berlatih refactoring dan menulis, dan bagian ketiga adalah ringkasan akhir dari kode “bau” pada contoh. Nah, penulis menyentuh banyak topik yang terutama membutuhkan pengetahuan tentang Java Core, tetapi ada juga bagian yang didedikasikan untuk Tes Unit JUnit, Log4j Logging, pengetahuan tentang pola paling sederhana dalam desain (tetapi seperti yang saya katakan di atas, tidak ada banyak dari mereka, dan segala sesuatu yang tidak dapat dipahami dapat berhasil dicari di Google, ya dan menganalisisnya di kursus JavaRush). Semua bab dalam buku ini tidak berhubungan satu sama lain, Anda dapat mulai membaca dengan sukses dari bab yang Anda sukai. Ringkasan singkat dari ide-ide utama yang saya ambil dari buku ini. Saya akan berterima kasih atas komentar Anda mengenai pernyataan tersebut, sehingga Anda dapat membagikan visi Anda sendiri tentang pernyataan ini.

1. Komentar == jahat.

Dalam kebanyakan kasus, komentar adalah penopang yang kita gunakan untuk menutupi kode buruk kita. Dan dalam beberapa kasus, mereka juga berbohong tentang tujuan metode atau variabel jika ada pemfaktoran ulang kode yang konstan.

2. Kode yang dikomentari, kode mati.

Membiarkan potongan kode ini di aplikasi Anda sama saja dengan sampah. Kode yang tidak digunakan terakumulasi seiring waktu dan mengganggu kebersihan aplikasi Anda, periksa kode untuk modul tersebut dari waktu ke waktu.

3. Judul metode, kelas dan variabel.

Ada baiknya artikel terpisah untuk membahas topik ini. Jangan malas dan tulis nama yang bisa menjelaskan tujuannya. Pelajari beberapa standar dalam ejaan judul. Topik ini “Harus Dimiliki” untuk dipelajari secara mendetail.

4. Setiap metode dan variabel memiliki tempatnya sendiri dalam hierarki kelas.

Biasanya, sebuah kelas dapat memiliki variabel dan metode (statis dan non-statis), konstruktor, kelas bersarang dan kelas dalam, serta enum. Singkatnya, ada banyak informasi, dan penting untuk menentukan tempat setiap orang di kelas. Jika Anda melihat kelas inti java, Anda akan melihat bahwa strukturnya terstruktur dengan jelas, kita dapat melihat setiap bagian pada tempatnya, tentu saja di proyek Anda dapat berubah di dalam proyek, tetapi tidak di setiap kelas. Bagi saya sendiri, saya telah mendefinisikan struktur konstruksi berikut: Di awal kelas saya memiliki variabel statis, kemudian variabel objek + Enum jika ada. Setelah variabel, saya mendefinisikan konstruktor kelas. Lalu saya menulis metode untuk bekerja dengan kelas. Setelah metode saya menulis getter dan setter. Dan pada akhirnya saya memiliki kelas batin. Anda dapat menggunakan struktur saya atau menulis sendiri di komentar.

5. Tingkat abstraksi metode.

Bagi saya ini adalah penemuan No.1. Setiap metode berisi operator hanya pada satu tingkat abstraksi. Anda tidak boleh menggabungkan operasi multi-level menjadi satu.

6. Penanganan kesalahan.

Pengecualian yang Dicentang atau Tidak Dicentang, mana yang lebih baik digunakan dalam proyek (bagaimana menurut Anda?, tulis komentar)? Saya seorang pendukung yang dicentang, tetapi buku ini membantu untuk melihat Pengecualian yang Tidak Dicentang dari luar. Memang, Exception yang tidak dicentang tidak merusak tanda tangan metode, terutama mengingat pengecualian “menembus” beberapa lapisan sekaligus. Ketidaknyamanan dari perubahan terkecil menyebabkan redefinisi seluruh rantai metode sebelum menangkapnya, yang dalam banyak kasus sangat merepotkan untuk pengembangan.

7. Pemformatan kode.

Kode yang diformat dengan benar tidak hanya jelas, tetapi juga mudah dibaca. Anda segera mendapatkan gambaran tentang tanda kurung dan tindakan di dalamnya. Dengan menggunakan contoh kondisi pada konstruksi if, else, Anda tidak boleh menulis semuanya dalam satu baris, lebih baik memindahkan rantai panjang.

8. Negasi dalam kondisi.

Usahakan untuk menghindari penolakan dalam kondisi, ini lebih merupakan faktor psikologis, otak kita tidak mempersepsikan penolakan dengan baik, dan ya! sebelum ekspresi mungkin tidak diperhatikan. Misalnya meniadakan if (!condition.isTrue) lebih baik menulis ulang metodenya, akan lebih mudah seperti ini (condition.isFalse)

9. Fungsi harus melakukan satu operasi.

Jika metode Anda melakukan banyak operasi, bagilah operasi tersebut menjadi metode operasi tunggal. Metode-metode ini sangat mudah untuk didukung, mudah untuk diuji, dan, jika perlu, diganti atau dihapus.

10. Jangan mengulanginya sendiri.

Jangan ulangi kode KERING (Jangan ulangi sendiri). Ini adalah salah satu aturan mendasar yang akan mengurangi kode Anda secara signifikan, ingatlah ini. Cobalah untuk memasukkan semua potongan kode yang Anda ulangi ke dalam fungsi terpisah. Tentu saja, kita dapat berbicara lebih banyak tentang KERING, KISS (Tetap sederhana Bodoh), SOLID , YAGNI. Istilah-istilah ini penting untuk pemahaman dan desain. Layak untuk dijadikan artikel tersendiri, mungkin saya akan menulisnya lagi, karena artikel ini dikhususkan untuk review buku “Clean Code”.
"Kode Bersih" oleh Robert Martin.  Review buku "kode kung fu" untuk pengembang - 2
Seperti yang dijanjikan, tugas kecil dan mudah untuk Anda. Program harus menghitung Indeks Obesitas berdasarkan data yang diberikan. Tulis di komentar jumlah kesalahan dan perbaikan dalam kode. P.S. Kode berfungsi dan menjalankan fungsinya jika digunakan dengan benar.
//Weight in kg.
//Height in metres.
public class sample {
    public static void main (String[] args) {
        humanIMB humanIMB = new humanIMB(80,1.52);
        System.out.println(humanIMB.Result());
    }
}
class humanIMB {
    public double W; //Weight Human
    public double H; // Height Human
    private static double imb;
    public humanIMB(double w, double h) {
        W = w;
        H = h;
        imb = W / (H * H);
    }
    public double takeW() {
        return W;
    }
    public void putW(double w) {
        W = w;
        imb = W / (H * H);
    }
    public double takeH() {
        return H;
    }
    public void putH(double h) {
        H = h;
        imb = W / (H * H);
    }
    public static double takeImt() {
        return imb;
    }
    public static String Result() {
        String  string = null;
        if (imb >=18.5 & imb <25) {
            string ="Норма, ты в форме!";
        }
        if (imb >=25 & imb <30) {
            string ="Предожирение. Эй, поосторожнее с пирожными ";
        }
        if (imb >=30) {
            string ="Ожирение. SCHWEINE! Хватит жрать, иди на треню!";
        }
        if (imb <18.5) {
            string ="Дефицит массы тела. В модели решил переквалифицироваться?";
        }
        return string;
    }
}
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION