JavaRush /Java blogi /Random-UZ /Toza kodni qanday yozish kerak

Toza kodni qanday yozish kerak

Guruhda nashr etilgan
Kodingizni toza va chiroyli qilish - belgilangan muddatlarga rioya qilishning ajoyib usuli. Robert Martin o'zining qisqa gaplaridan biri bilan boshiga mix qoqib qo'ydi: “Kod sifatining yagona haqiqiy o'lchovi What-The-F**ks/Minute birligidir. .” " asl nusxada). Toza kodni qanday yozish kerak - 1Bu nimani anglatishini tushuntirib beraman. Har safar kodni ko'rib chiqqanimda miyam uchta hissiyotdan birini boshdan kechiradi:
  • “WTF?! Qanday qilib jin ursin?!" (nafrat bilan) - bu emas... hammasi juda yomon....
  • “WTF?! Qanday qilib jin ursin?!" (hayrat bilan) - hmm, aqlli yigit qildi!
  • “WTF?! Qanday qilib jin ursin?!" (g'azab bilan) - qandaydir chalkashlik, biz nima haqida gapiryapmiz?!
Xo'sh, nima muhim va biz kodni ko'rganimizda aniq nimani baholaymiz? Bu shunday: uning pokligi va go'zalligi. Toza va chiroyli kod yozish qobiliyati yuqori professional dasturchining ko'rsatkichidir. Ushbu mahoratga o'rgatish ikki komponentga - bilim va mehnatga asoslanadi. Bilim sizga naqshlarni, tamoyillarni, amaliyotlarni, evristikani o'rgatadi. Ular professional o'sish uchun kerak. Faqat siz bu bilimlarni shimgich kabi doimiy mashq va mashaqqatli mehnat orqali o'zlashtirishingiz kerak. Qisqasi, toza kod yozish oson emas. Bu mashaqqatli va mashaqqatli ish va buning uchun siz qattiq ishlashingiz kerak bo'ladi. Sinov va xato orqali siz kerakli yechimni topmaguningizcha bir xil qadamlarni qayta-qayta takrorlash orqali yaxshilanasiz. Oddiyroq yo'l yo'q. Quyida toza kod yozishni o'rganishga yordam beradigan ba'zi maslahatlar mavjud.

Nomda nima bor

Kendrik Lamar (Amerikalik xip-xop artisti - muharrirning eslatmasi) bir marta aniq ta'kidlagan edi: "Agar men haqiqiy voqeani aytib bermoqchi bo'lsam, o'z ismimdan boshlashim kerak". Dasturiy ta'minotni ishlab chiqishda nomlar hamma joyda mavjud. Biz funktsiyalarni, sinflarni, argumentlarni, paketlarni, dasturlarni - hamma narsani nomlaymiz. Biz manba fayllari va ma'lumotnomalar va u bilan bog'liq bo'lgan barcha narsalarni nomlaymiz. Biz narsalarni cheksiz nomlaymiz va bu toza kod yaratish ustida ishlashning muhim qismiga aylanadi. Siz berayotgan ism maqsadni aks ettirishi kerak. Yaxshi nom topish oson emas, vaqt talab etadi, lekin kod bilan shug'ullanish kerak bo'lganda va vaziyat murakkablashganda ham ko'p vaqtni tejaydi. Shuning uchun, bu jarayonda ehtiyot bo'ling va agar sizga mosroq narsani topsangiz, keyinchalik nomlarni o'zgartirishdan qo'rqmang. Sizning kodingiz bilan shug'ullanadigan har bir kishi sizga juda minnatdor bo'ladi.

Esda tutingki, har qanday o'zgaruvchi, sinf, funktsiya nomi uchta asosiy savolga javob berishi kerak: nima uchun u (o'zgaruvchi, funktsiya va boshqalar) mavjud, nima qiladi va nima uchun ishlatiladi.

Bu nafaqat yaxshi tasvirlash ko'nikmalarini, balki umumiy bilim va keng dunyoqarashni ham talab qiladi. Va buni sizga o'zingizdan yaxshiroq hech kim o'rgata olmaydi.

toza kod

"Bir funktsiya" - bitta narsa

Lui Genri Sallivan (amerikalik ratsionalist va modernist arxitektor) bir vaqtlar mashhur: "funktsiya shaklni belgilaydi " . U buni uylarning arxitekturasi haqida aytdi, ammo bu mohiyatni o'zgartirmaydi. Har bir tizim dasturchilar uni aniq tasvirlash uchun yaratadigan domenga xos tilga asoslangan. Funktsiyalar tilning fe'llari, sinflar esa otlar vazifasini bajaradi. Ko'pincha, dasturlash tilini tashkil qilishda funktsiyalar muhim ahamiyatga ega va ularni to'g'ri yozish yaxshi kod yaratishning mohiyatidir. Sifatli funksiyalarni yozish uchun faqat ikkita oltin qoida mavjud:
  1. Ular kichik bo'lishi kerak
  2. Ular bitta narsani, bitta vazifani bajarishlari va buni yaxshi bajarishlari kerak
Ya'ni, sizning funktsiyangiz kichik bo'lishi va ichki o'rnatilgan tuzilmalarni o'z ichiga olmaydi. Shunday qilib, funktsiyani cheklash darajalari bir yoki ikkitadan oshmasligi kerak. Ushbu yondashuv kodni o'qish, tushunish va tushunishni ancha osonlashtiradi. Bundan tashqari, funksiya ichidagi ifodalar bir xil abstraktsiya darajasida ekanligiga ishonch hosil qilishimiz kerak. Funktsiya ichidagi abstraksiya darajalarini aralashtirish har doim juda ko'p chalkashliklarni keltirib chiqaradi va oxir-oqibat boshqarib bo'lmaydigan kodga olib keladi. Eng yaxshi dasturchilar funktsiyalarga faqat yozish uchun kod emas, balki aytiladigan hikoyalar sifatida qarashadi. Ular o'zlari tanlagan dasturlash tilining vositalaridan boy, ifodali va toza kod blokini yaratish uchun foydalanadilar, bu mohiyatan ajoyib hikoyachi rolini o'ynaydi.

"Izohlar yomon kodni to'ldirmaydi"

Amerikalik tennischi va besh karra Uimbldon chempioni Venera Uilyams boshiga mixga tegdi: “Har kim o'z fikrini qoldiradi. Mish-mishlar shunday paydo bo'ladi » . Izohlar ikki qirrali qilichga o'xshaydi.To'g'ri qo'yilgan izoh juda foydali narsa. Boshqa tomondan, bema'ni, befoyda sharhlardan boshqa hech narsa bo'sh joyni bezovta qilmaydi. Lekin eng zararli izohlar noto'g'ri ma'lumot va yolg'on tarqatadiganlardir. Xulosa qilib aytganda, sharhlar o'ziga xos zaruriy yomonlikdir. Har doim emas, lekin ko'pincha. Nega? Bu oddiy, sharh qanchalik eski bo'lsa, uni saqlab qolish shunchalik qiyin bo'ladi va ko'pchilik dasturchilar, siz bilganingizdek, koddagi o'zgarishlar bilan birga sharhlarni har doim ham o'zgartirmaydi. Kod harakatlanadi va rivojlanadi. Kod qismlari oldinga va orqaga ko'chiriladi, lekin hech qanday izoh yo'q. Va bu muammoga aylanadi!

Esingizda bo'lsin: bir nechta sharhlar bilan toza, aniq kod murakkab, tartibsiz koddan ko'ra yaxshiroqdir. Izohlarda yaratgan tartibsizlikni tushuntirishga kuchingizni sarflamang. Bu vaqtni bu tartibsizlikni tozalashga sarflaganingiz ma'qul.

toza kod

"Kodni formatlash har doim ustuvor ahamiyatga ega"

Buni Robert C. Martin (Robert Sesil Martin) aka Bob amaki, dasturchi, dasturiy ta'minotni ishlab chiqish bo'yicha ko'plab kitoblar muallifi, maslahatchi, Agile manifestining hammuallifi va boshqalardan boshqa hech kim aytgan. Va u qo'shimcha qildi: "Kodni formatlash - bu aloqaning bir turi. Muloqot esa har qanday professional dasturchi uchun ustuvor vazifadir”. Yuqoridagi bayonotni e'tiborsiz qoldirmaslik kerak, chunki u mukammal ishlab chiquvchining eng muhim xususiyatlaridan biri haqida gapiradi. Formatlangan kod sizning fikringizga chuqur qarash imkonini beradi. Biz odamlarni ozodaligimiz, tafsilotlarga e'tiborliligimiz, tartibga solish va fikrlarimizni aniq ifodalash qobiliyati bilan hayratda qoldirmoqchimiz. Ammo, agar odamlar kodni ko'rib chiqishganda, ular na boshi va na oxiri bo'lmagan vinaigretteni eslatuvchi qandaydir chalkashlikni ko'rsalar, bu sizning harakatlaringizni inkor etadi va ishlab chiquvchining obro'sini pasaytiradi. Hatto shubhalanmang! Agar siz ushbu biznesdagi asosiy narsa "kod shunchaki ishlaydi" deb o'ylasangiz, siz haqiqatdan juda uzoqdasiz. Bugun yaratgan funksionallik keyingi versiyada oʻzgartirilishi mumkin, ammo kodning oʻqilishi oʻzgarmaydi. Kodning uslubi va uning yaxshi o'qilishi, hatto asl kod tanib bo'lmaydigan darajada o'zgartirilgandan keyin ham kodni uzoq vaqt saqlashni osonlashtiradi.
Hech qachon unutmangki, kelajakda sizning kodingiz emas, balki sizning uslubingiz va izchilligingiz esda qoladi. Shuning uchun, kod yaxshi formatlanganligiga ishonch hosil qiling va barcha jamoa a'zolari uchun tushunarli bo'lgan oddiy qoidalarga amal qiling.

Avval "try-catch-finally" blokini yarating

Georges Canguilhem (fan tarixchisi, faylasuf) to'g'ri ta'kidlagan: "Inson uchun xato qilish tabiiydir, ammo xatolarni talab qilish shaytondandir " . Muammolarni bartaraf etish barcha dasturchilar bajaradigan ishdir. Yaroqsiz ma'lumotlar kirishga kirishi va qurilmalar ishlamay qolishi mumkin. Ishlab chiquvchilar sifatida biz kod o‘zi bajarishi kerak bo‘lgan narsani bajarishiga ishonch hosil qilishimiz kerak. Muammo nafaqat xatolarni qayta ishlash, balki "toza va o'qish oson" xatolarni qayta ishlashdir. Ko'pgina dasturlar xatolarni boshqarishga moslashadi. Agar buni qilsangiz, hamma narsa shunday tartibsizlikka tushadiki, asosiy kodning maqsadi va mantig'i yo'q qilinadi. Bu noto'g'ri, bunday bo'lmasligi kerak. Kod toza va ishonchli bo'lishi kerak va xatolarni hal qilish muammosiz va tabiiy ravishda kodga to'qilgan bo'lishi kerak. Bu yuqori darajadagi dasturchining ko'rsatkichidir. Bunga erishish yo'llaridan biri to'g'ri joylashtirish va try-catch bloklaridagi barcha xatolarni qoplashdir. Ushbu bloklar kodingiz doirasini belgilaydi. Try-catch-finally blokining sinash qismida kodni bajarganingizda, ijro istalgan vaqtda to'xtatilishi va keyin davom etishi mumkinligini bildirasiz. Shuning uchun kod yozishda try-catch-finally bilan boshlashni tavsiya qilamiz. Bu sinash paytida kod bilan nima noto'g'ri bo'lishidan qat'i nazar, foydalanuvchi koddan nimani kutishi mumkinligini aniqlashga yordam beradi.
Har doim esda tutingki, siz tashlagan har bir istisno xatoning joylashuvi va manbasini aniqlash uchun etarli kontekstni o'z ichiga olishi kerak. Ijodiy va ma'lumot beruvchi xato xabarlari kod yozilgandan keyin ko'p vaqt o'tgach, dasturchi allaqachon butunlay boshqa vazifalar bilan band bo'lsa ham eslab qoladi.
toza kod

Keling, xulosa qilaylik

Bitta noodatiy ibora yuqoridagilarning barchasini umumlashtirishga yordam beradi. Bu kod ma'nosi yoki "umumiy kod tuyg'usi", sog'lom fikrga mos keladigan dasturchining bir turi. Robert Martinning so'zlariga ko'ra: "Toza kodni yozish "tozalik" ni sinchkovlik bilan va biroz og'riqli his qilish natijasida qo'llaniladigan ko'plab kichik texnikalardan muntazam foydalanishni talab qiladi. Ushbu kichik texnikalar birgalikda kodni tushunish deb ataladi . Ba'zilarimiz boshidanoq bu "tovushli kod hissi" ga ega bo'lsak, boshqalari buni doimiy amaliyot orqali rivojlantirishimiz kerak. Ushbu instinkt nafaqat yomon va yaxshi kod o'rtasidagi farqni aniqlashga yordam beradi, balki yomon kodni yaxshilikka aylantirishga qaratilgan strategiyalarni shakllantirishga yordam beradi. Yomon kod hamma narsani buzadi. Majoziy ma'noda aytadigan bo'lsak, agar siz eng mazali tortni it bo'laklari bilan muzlatib qo'ysangiz, unda ... u... hech kimga yoqmaydi. Kod hissi dasturchiga toza kod yaratish maqsadiga erishish uchun to'g'ri vositalardan foydalanishga yordam beradi. Kod hissi nima ekanligini tushunadigan dasturchi bo'sh ekranda ko'p yillar davomida esda qoladigan badiiy asar yarata oladigan rassomdir. Mit universitetining informatika professori, Creative Commons va Free Software Foundation asoschi direktori Garold “Hal” Abelson shunday xulosa qilgan: “Dasturlar avvalo odamlar oʻqishi uchun, keyin esa ularni oʻqishi uchun yozish kerak. qatl etilgan." avtomobil" . Mavzu bo'yicha nimani o'qishingiz mumkin: "Agile dasturiy ta'minot hunarmandchiligi bo'yicha qo'llanma" - Robert Martin. "Agile estimation qo'llanmasi" - Mayk Kon Muallif haqida: Ravi Shankar Rajan Mumbaydan (Hindiston) global IT dasturi menejeri. Mashhur blogger, hayku shoiri, arxeologiya va tarixga qiziquvchi. Siz u bilan Twitter , Medium , LinkedIn orqali bog'lanishingiz mumkin
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION