JavaRush /Java Blogu /Random-AZ /Təmiz kodu necə yazmaq olar

Təmiz kodu necə yazmaq olar

Qrupda dərc edilmişdir
Kodunuzu təmiz və gözəl etmək son tarixləri qarşılamaq üçün əla bir yoldur. Robert Martin qısa ifadələrindən biri ilə başını dırnaq vurdu: “Kod keyfiyyətinin yeganə həqiqi ölçüsü What-The-F**ks/Minute vahididir. .” " orijinalda). Təmiz kodu necə yazmaq olar - 1Bunun nə demək olduğunu izah edim. Hər dəfə kodu nəzərdən keçirəndə beynim üç emosiyadan birini keçir:
  • “WTF?! Nə heyf?!" (nifrətlə) - bu deyil... hər şey çox pisdir....
  • “WTF?! Nə heyf?!" (heyranlıqla) - hmm, bunu ağıllı oğlan etdi!
  • “WTF?! Nə heyf?!" (qıcıqla) - bir növ çaşqınlıq, hətta nə danışırıq?!
Beləliklə, ən vacib nədir və bəzi kodu görəndə dəqiq nəyi qiymətləndiririk? Budur: onun saflığı və gözəlliyi. Təmiz və gözəl kod yazmaq bacarığı yüksək peşəkar tərtibatçının göstəricisidir. Bu bacarıq üzrə təlim iki komponentə - bilik və işə əsaslanır. Bilik sizə nümunələri, prinsipləri, təcrübələri, evristikanı öyrədir. Peşəkar böyümək üçün onlara ehtiyacınız var. Yalnız siz bu biliyi daimi məşq və zəhmətlə süngər kimi qəbul etməlisiniz. Bir sözlə, təmiz kod yazmaq asan deyil. Bu çətin, əziyyətli işdir və bunun üçün çox çalışmalı olacaqsınız. Sınaq və səhv vasitəsilə, istədiyiniz həlli tapana qədər eyni addımları təkrar-təkrar təkrarlamaqla təkmilləşəcəksiniz. Sadəcə olaraq daha sadə yol yoxdur. Aşağıda təmiz kod yazmağı öyrənməyə kömək edəcək bəzi məsləhətlər verilmişdir.

Bir adda nə var

Kendrick Lamar (Amerikalı hip-hop artisti - redaktorun qeydi) bir dəfə dəqiq qeyd etdi: "Əgər əsl hekayəni danışacağamsa, adımdan başlamalıyam". Proqram təminatı inkişafındakı adlar hər yerdədir. Biz funksiyaları, sinifləri, arqumentləri, paketləri, proqramları - hər şeyi adlandırırıq. Mənbə faylları və istinad kitabları və onunla əlaqəli hər şeyi adlandırırıq. Biz şeyləri sonsuz adlandırırıq və bu, təmiz kod yaratmaq istiqamətində işin vacib hissəsinə çevrilir. Bir şeyə verdiyiniz ad niyyəti əks etdirməlidir. Yaxşı ad tapmaq asan deyil, vaxt tələb edir, lakin kodla məşğul olmaq məcburiyyətində qaldıqda və vəziyyət mürəkkəbləşəndə ​​çox vaxta qənaət edir. Buna görə də bu prosesdə diqqətli olun və daha uyğun bir şey tapsanız, sonra adları dəyişdirməkdən qorxmayın. Kodunuzla məşğul olan hər kəs sizə çox minnətdar olacaq.

Unutmayın ki, hər hansı dəyişənin, sinfin, funksiyanın adı üç əsas suala cavab verməlidir: o (dəyişən, funksiya və s.) niyə mövcuddur, nə edir və nə üçün istifadə olunur.

Bunun üçün təkcə yaxşı təsvir bacarıqları deyil, həm də ümumi erudisiya və geniş dünyagörüşü tələb olunur. Bunu sizə özünüzdən yaxşı heç kim öyrədə bilməz.

təmiz kod

"Bir funksiya" - bir şey

Louis Henry Sullivan (Amerikalı rasionalist və modernist memar) bir dəfə məşhur demişdi: "Funksiya formanı müəyyən edir . " O, bunu evlərin arxitekturasından danışıb, amma bu, mahiyyəti dəyişmir. Hər bir sistem proqramçıların onu dəqiq təsvir etmək üçün yaratdığı bəzi domenə xas dil üzərində qurulur. Funksiyalar dilin felləri kimi çıxış edir, siniflər isə isimdir. Çox vaxt proqramlaşdırma dilinin təşkilində funksiyalar əsas yer tutur və onların düzgün yazılması yaxşı kodun yaradılmasının mahiyyətidir. Keyfiyyətli funksiyaların yazılması üçün yalnız iki qızıl qayda var:
  1. Onlar kiçik olmalıdır
  2. Onlar bir işi, bir işi görməli və bunu yaxşı yerinə yetirməlidirlər
Yəni, funksiyanız kiçik olmalıdır və iç-içə strukturları ehtiva etməməlidir. Beləliklə, funksiyanın girinti səviyyələri bir və ya ikidən çox olmamalıdır. Bu yanaşma kodun oxunmasını, başa düşülməsini və başa düşülməsini çox asanlaşdırır. Bundan əlavə, funksiya daxilindəki ifadələrin eyni abstraksiya səviyyəsində olduğuna əmin olmalıyıq. Bir funksiya daxilində abstraksiya səviyyələrini qarışdırmaq həmişə çox qarışıqlıq yaradır və nəticədə idarəolunmaz koda gətirib çıxarır. Ən yaxşı proqramçılar funksiyaları yalnız yazmaq üçün kod deyil, deyiləcək hekayələr kimi qəbul edirlər. Onlar seçdikləri proqramlaşdırma dilinin alətlərindən zəngin, ifadəli və daha təmiz kod bloku yaratmaq üçün istifadə edirlər ki, bu da mahiyyətcə əla hekayəçi kimi çıxış edə bilər.

“Şərhlər pis kodu kompensasiya etmir”

Amerikalı tennisçi və beşqat Uimbldon çempionu Venus Williams başına dırnaq vurdu: “Hər kəs öz şərhini buraxır. Şayiələr belə ortaya çıxır " . Şərhlər iki ağızlı qılınc kimidir.Yaxşı yerləşdirilmiş şərh çox faydalı şeydir. Digər tərəfdən, mənasız, faydasız şərhlərdən başqa heç bir şey məkanı qarışdıra bilməz. Amma ən zərərli şərhlər dezinformasiya və yalan yayan şərhlərdir. Bir sözlə, şərhlər bir növ zəruri pislikdir. Həmişə deyil, əksər hallarda. Niyə? Bu sadədir, şərh nə qədər köhnədirsə, onu saxlamaq bir o qədər çətindir və əksər proqramçılar, bildiyiniz kimi, koddakı dəyişikliklərlə birlikdə şərhləri həmişə dəyişdirmirlər. Kod hərəkət edir və inkişaf edir. Kodun hissələri irəli və geri köçürülür, lakin şərh yoxdur. Və bu problemə çevrilir!

Unutmayın: bir neçə şərhlə təmiz, aydın kod mürəkkəb, qarışıq koddan daha yaxşıdır. Şərhlərdə yaratdığınız xaosu izah etməyə enerjinizi sərf etməyin. Yaxşı olar ki, bu vaxtı o qarışıqlığı təmizləməyə sərf edin.

təmiz kod

“Kod formatı həmişə prioritetdir”

Bunu Robert C. Martin (Robert Cecil Martin), aka Bob əmi, tərtibatçı, proqram təminatının inkişafı üzrə bir çox kitabın müəllifi, məsləhətçi, Agile manifestinin həmmüəllifi və s. Və əlavə etdi: “Kodun formatlanması bir növ ünsiyyətdir. Kommunikasiya isə istənilən peşəkar tərtibatçı üçün əsas prioritetdir”. Yuxarıdakı ifadəni küçümsememek lazımdır, çünki o, əla bir tərtibatçının ən vacib xüsusiyyətlərindən biri haqqında danışır. Formatlaşdırılmış kod sizə ağlınıza dərindən baxmağa imkan verir. Biz səliqəmiz, detallara diqqət, təşkil etmək və fikirlərimizi aydın ifadə etmək bacarığımızla insanları heyran etmək istəyirik. Ancaq insanlar koda baxdıqda, nə başlanğıcı, nə də sonu olmayan bir vinaigrette xatırladan bir növ qarışıqlıq görürlərsə, bu sizin səylərinizi rədd edir və tərtibatçının nüfuzunu aşağı salır. Hətta buna şübhə etməyin! Bu işdə əsas şeyin "kod sadəcə işləyir" olduğunu düşünürsənsə, həqiqətdən çox uzaqsan. Bu gün yaratdığınız funksionallıq çox güman ki, növbəti buraxılışda dəyişdiriləcək, lakin kodun oxunaqlılığı dəyişməyəcək. Kodun üslubu və yaxşı oxunaqlılığı orijinal kod tanınmayacaq dərəcədə dəyişdirildikdən sonra belə kodu uzun müddət saxlamağı asanlaşdırır.
Heç vaxt unutma ki, gələcəkdə yadda qalacaq şey kodun özü deyil, üslubun və ardıcıllığındır. Buna görə kodun yaxşı formatlandığına və bütün komanda üzvləri üçün başa düşülən sadə qaydalara əməl etdiyinə əmin olun.

Əvvəlcə "try-catch-finally" blokunu yaradın

Georges Canguilhem (elm tarixçisi, filosof) haqlı olaraq qeyd etdi: "Səhv etmək insan üçün təbiidir, lakin səhvlərdə israr etmək şeytandandır . " Problemlərin aradan qaldırılması bütün proqramçıların etdiyi bir işdir. Yanlış məlumat girişə daxil ola bilər və cihazlar uğursuz ola bilər. Və tərtibatçılar olaraq kodun etməli olduğu şeyi etdiyinə əmin olmalıyıq. Məsələ yalnız səhvlərin idarə edilməsi deyil, həm də “təmiz və oxunması asan” səhvlərin idarə olunmasıdır. Bir çox proqram səhvlərin idarə edilməsinə uyğunlaşır. Bunu etsəniz, hər şey elə xaosa düşür ki, əsas kodun məqsədi və məntiqi məhv olur. Bu səhvdir, belə olmamalıdır. Kod təmiz və etibarlı olmalıdır və səhvlərin idarə edilməsi problemsiz və təbii şəkildə koda toxunmalıdır. Bu, yüksək səviyyəli proqramçının göstəricisidir. Buna nail olmağın yollarından biri düzgün yuva qurmaq və cəhd tutma bloklarında bütün səhvləri əhatə etməkdir. Bu bloklar kodunuzun əhatə dairəsini müəyyən edir. Siz try-catch-finally blokunun sınaq hissəsində kodu icra etdikdə, icranın istənilən vaxt dayandırıla və sonra tutma ilə davam edə biləcəyini bildirirsiniz. Ona görə də kod yazarkən try-catch-finally ilə başlamağı tövsiyə edirik. Bu, cəhd zamanı kodda nəyin səhv olmasından asılı olmayaraq istifadəçinin koddan nə gözləyə biləcəyini müəyyən etməyə kömək edəcək.
Həmişə unutmayın ki, atdığınız hər bir istisna səhvin yerini və mənbəyini müəyyən etmək üçün kifayət qədər kontekstdən ibarət olmalıdır. Yaradıcı və informativ xəta mesajları kod yazıldıqdan çox sonra, hətta proqramçı artıq tamam başqa işlərlə məşğul olduqda belə yadda qalır.
təmiz kod

Gəlin ümumiləşdirək

Bir qeyri-adi ifadə yuxarıdakıların hamısını ümumiləşdirməyə kömək edəcək. Bu, kod mənasında və ya “ümumi kod hissi”, sağlam düşüncənin bir növ proqramçı ekvivalentidir. Robert Martinin sözləri ilə desək: “Təmiz kodun yazılması bir çox kiçik texnikanın sistematik istifadəsini tələb edir, bu, vasvası və bir qədər ağrılı “təmizlik” hissi nəticəsində tətbiq olunur. Bu kiçik texnikalar ümumi olaraq kod-sense adlanır . " Bəzilərimiz əvvəldən bu “səs kodu hissi”nə sahib oluruq, bəzilərimiz isə bunu davamlı təcrübə vasitəsilə inkişaf etdirməliyik. Bu instinkt yalnız pis və yaxşı kod arasındakı fərqi tanımağa kömək etmir, həm də pis kodu yaxşıya çevirməyə yönəlmiş strategiyaların formalaşmasına kömək edir. Səhv kod hər şeyi məhv edir. Obrazlı desək, ən ləzzətli tortu it boku ilə dondurursansa, o zaman... uh... çətin ki, kimsə bəyənsin. Kod hissi proqramçıya təmiz kod yaratmaq məqsədinə çatmaq üçün düzgün vasitələrdən istifadə etməyə kömək edir. Kod duyğunun nə olduğunu anlayan proqramçı boş ekranda uzun illər yaddaşlarda qalacaq sənət əsəri yarada bilən rəssamdır. Mit-də kompüter elmləri professoru və Creative Commons və Free Software Foundation-ın təsisçi direktoru Harold “Hal” Abelsonun belə yekunlaşdırdığı kimi: “Proqramlar əvvəlcə insanların onları oxuya bilməsi üçün, sonra isə onları oxuya bilməsi üçün yazmalıdırlar. edam edildi.” avtomobil” . Mövzuda oxuya biləcəyiniz şeylər: "Agile Software Craftsmanship haqqında məlumat kitabı" - Robert Martin. “Çevik qiymətləndirmə haqqında kitabça” - Mike Cohn Müəllif haqqında: Ravi Şankar Rajan Mumbaydan (Hindistan) Qlobal İT Proqram Meneceridir. Məşhur blogger, hayku şairi, arxeologiya və tarix həvəskarı. Onunla Twitter , Medium , LinkedIn- də əlaqə saxlaya bilərsiniz
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION