JavaRush /Blog Jawa /Random-JV /Robert Martin, Kode resik. Review saka buku ing "kung fu ...
Artem Murk
tingkat
Днепр

Robert Martin, Kode resik. Review saka buku ing "kung fu kode" kanggo pangembang

Diterbitake ing grup
Hello Javarashevites! Artikel iki minangka review saka buku "Kode Bersih" dening Robert Martin. Bebarengan kita bakal ndeleng cara kanggo nambah lan ngoptimalake kode, lan ing pungkasan tugas cilik nanging menarik nunggu sampeyan.
"Kode Bersih" dening Robert Martin.  Review buku babagan "kode kung fu" kanggo pangembang - 1
Saben dina, nalika mbukak editor kode, kita bakal ngadhepi akeh kelas, fungsi lan variabel. Pilihan sing paling apik yen iki kode sampeyan ditulis saka ngeruk, ditulis sapisan, ana sawetara baris ing, sampeyan lagi nggarap iku piyambak, ora ana suntingan lan ora support luwih saka customer. TAPI! Minangka praktik nuduhake, ya, aku mikir sampeyan dhewe ngerti yen iki ora kedadeyan. Sejatine, kita kudu sesambungan karo anggota tim, njaga kode "Hindu", lan ngurai produk dadi jutaan baris. Aku kerep krungu jawaban kaya mangkene saka kanca-kanca latihan: "Kode iki ditulis dening aku, lan aku ora bakal nuduhake marang sapa wae," nanging nalika aku ndeleng panjaluk Bantuan kanggo Pitulung karo kode kasebut, butuh wektu sing suwe. wektu (kadhangkala tenan dawa) kanggo delve menyang lan ngerti Apa wong sing arep ngomong kula, Aku malah arep ngomong "mbusak lan nulis maneh"! Hargai wektu lan tenaga wong sing pengin nulungi sampeyan, nulis kanthi bener, lan yen sampeyan ora ngerti carane, ora kasep kanggo sinau. Buku Robert Martin misuwur ing antarane buku format iki amarga ngemot akeh conto ing basa Jawa. Iki bisa uga rada fanatik, nanging ditulis nganggo gaya OOP, yaiku nulis bagean lan bagean. Gampang dingerteni lan diwaca, buku kasebut gampang diwaca nalika lelungan utawa ing wayah sore sadurunge turu. Kode resik dipérang dadi 3 bagéan. Ing bagéyan kapisan, kita dijaluk sinau teori buku, sinau babagan pola desain lan aturan tata krama. Bagean kapindho ngajak kita latihan refactoring lan nulis, lan bagean katelu minangka ringkesan pungkasan kode "mambu" ing conto. Inggih, penulis ndemek akeh topik sing sampeyan butuhake kawruh babagan Java Core, nanging ana uga bagean khusus kanggo Tes Unit JUnit, Log4j Logging, kawruh babagan pola paling gampang ing desain (nanging kaya sing dakkandhakake ing ndhuwur, ora ana akeh, lan kabeh sing ora bisa dingerteni bisa digoleki kanthi sukses, ya lan nganalisa ing kursus JavaRush). Kabeh bab ing buku kasebut ora ana hubungane; sampeyan bisa miwiti maca saka bab sing disenengi. Ringkesan ringkes babagan gagasan utama sing dakpendhet saka buku kasebut. Aku bakal ngucapke matur nuwun kanggo komentar ing wong-wong mau, ing ngendi sampeyan bisa nuduhake sesanti dhewe saka statements iki.

1. Komentar == ala.

Umume kasus, komentar minangka crutches sing kita nyoba kanggo nutupi kode ala kita. Lan ing sawetara kasus, dheweke uga ngapusi babagan tujuan metode utawa variabel yen ana refactoring kode konstan.

2. Kode komentar, kode mati.

Ninggalake potongan kode kasebut ing aplikasi sampeyan kaya sampah. Kode sing ora digunakake nglumpukake wektu lan ngganggu kebersihan aplikasi sampeyan, priksa kode modul kasebut saka wektu kanggo wektu.

3. Judhul metode, kelas lan variabel.

Iku worth artikel kapisah kanggo ngrembug topik iki. Aja kesed lan nulis jeneng sing bisa nyritakake tujuane. Sinau sawetara standar ing judhul ejaan. Topik iki "Must Have" kanggo sinau rinci.

4. Saben metode lan variabel nduweni panggonan ing hirarki kelas.

Biasane, kelas bisa duwe variabel lan metode (statis lan non-statis), konstruktor, kelas nested lan njero, lan enum. Ing cendhak, ana akeh informasi, lan perlu kanggo nemtokake panggonan saben wong ing kelas. Yen katon ing kelas inti java, sampeyan bakal weruh sing struktur wis cetha kabentuk, kita bisa ndeleng saben bagean ing panggonan, mesthi ing projects bisa ngganti ing project, nanging ora ing saben kelas. Kanggo aku, aku wis ditetepake struktur construction ing ngisor iki: Ing awal kelas aku duwe variabel statis, banjur variabel obyek + Enums yen ana. Sawise variabel, aku nemtokake konstruktor kelas. Banjur aku nulis cara kanggo nggarap kelas. Sawise metode aku nulis getter lan setter. Lan ing pungkasan aku duwe kelas batin. Sampeyan bisa nggunakake struktur sandi utawa nulis dhewe ing komentar.

5. Tingkat abstraksi metode.

Kanggo kula iki penemuan No. Saben cara ngemot operator mung siji tingkat abstraksi. Sampeyan ora kudu nyampur operasi multi-level bebarengan.

6. Penanganan kesalahan.

Pengecualian sing dicenthang utawa ora dicenthang, sing luwih apik digunakake ing proyek kasebut (apa sampeyan mikir?, nulis komentar)? Aku panyengkuyung saka dicenthang, nanging buku mbantu kanggo dipikir Pengecualian Unchecked saka njaba. Pancen, Pengecualian sing ora dicenthang ora ngrusak tandha cara, utamane yen pangecualian "nembus" sawetara lapisan sekaligus. Ora trep saka owah-owahan paling cilik ndadékaké kanggo redefinition saka kabeh chain cara sadurunge nyekel, kang arang banget trep kanggo pembangunan ing akeh kasus.

7. Format kode.

Kode sing diformat kanthi bener ora mung cetha, nanging uga bisa diwaca. Sampeyan langsung entuk ide babagan kurung lan tumindak ing njero. Nggunakake conto kahanan ing yen, liyane mbangun, sampeyan ora kudu nulis kabeh ing siji baris, iku luwih apik kanggo mindhah rentengan dawa.

8. Negations ing kondisi.

Coba supaya ora penolakan ing kahanan, iki luwih saka faktor psikologis, otak kita ora ngerteni penolakan kanthi apik, lan ya! sadurunge ekspresi bisa uga ora katon. Contone, negating yen (! condition.isTrue) luwih apik kanggo nulis ulang cara, bakal luwih gampang kaya iki (condition.isFalse)

9. Fungsi kudu nindakake siji operasi.

Yen cara sampeyan nindakake akeh operasi, banjur dibagi dadi cara siji-operasi. Cara iki gampang banget kanggo ndhukung, gampang dites, lan, yen perlu, diganti utawa dibusak.

10. Aja mbaleni dhewe.

Aja mbaleni kode KERING (Aja mbaleni dhewe). Iki minangka salah sawijining aturan dhasar sing bakal nyuda kode sampeyan kanthi signifikan, elinga. Coba lebokake kabeh potongan kode sing diulang menyang fungsi sing kapisah. Mesthi, kita bisa ngomong luwih akeh babagan KERING, KISS (Tetep prasaja Bodho), SOLID , YAGNI. Istilah kasebut penting kanggo pangerten lan desain. Padha worth artikel kapisah, mbok menawa aku bakal nulis bab mau maneh, amarga artikel iki pengabdian kanggo review saka buku "Clean Code".
"Kode Bersih" dening Robert Martin.  Review buku babagan "kode kung fu" kanggo pangembang - 2
Kaya sing dijanjekake, tugas cilik lan gampang kanggo sampeyan. Program kasebut kudu ngetung Indeks Obesitas adhedhasar data sing diwenehake. Tulis ing komentar nomer kasalahan lan mbenakake ing kode. P.S. Kode kasebut bisa digunakake lan nindakake fungsi kasebut yen digunakake kanthi bener.
//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