Muhammadjon's: post #293 — TG.ME

Kod sifati - "Toza kod" yozish

Dasturlash tili standartlariga rioya qilish kodingiz sifatini biroz oshiradi. Kod sifatini yanada oshirish uchun keyingi qadam – "toza kod" yozish.

Ko'pchiligimiz Clean Code kitobi haqida (juda ko'p) eshitganmiz. "Engineering excellence" haqida gap ketganida "Clean Code" haqida ham aytib ketmasam bo'lmaydi.

Kitobda yozilgan hamma narsalarni bitta postga jamlash – imkonsiz. Quyida o'sha kitobda yozilgan amal qilish oson, lekin ta'siri katta maslahatlarni keltirib o'taman:

 • O'zgaruvchi, funksiya va boshqalarga ma'noli nom tanlash.
 • Kodni sodda, o'qishga oson yozish. "Aqlli" koddan tushunarli kodni afzal ko'rish.
 • Funksiyalarni iloji boricha faqatgina bitta logikali amalni bajaradigan darajada kichikroq qilish.
 • Bir necha marta takrorlangan logikalarni alohida funksiyaga o'tkazish.
 • Kodingiz nima ish qilayotganini kod orqali tushuntirish, kommentlar orqali emas.
 • Kodni tez-tez refaktor qilish. Yaxshilasa bo'ladigan joylarni topib, to'g'rilash.


Misol #1

Noaniq nom:

fetchData()


Aniq va tushunarli nom:

fetchEmailsInTrashFolder()


Misol #2

O'qish qiyin ("bitwise"ni hamma ham bilmasligi mumkin):

val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter {
    it and 1 == 0
}


O'qish oson ("modulo"ni ko'pchilik biladi):

val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter {
    it % 2 == 0
}


Misol #3

Tushunarsiz kodni komment bilan tushuntirish:

d = 100.0 # Distance in meters
t = 15.0 # time in seconds

print(get_speed(d, t))


Tushunarli kodga komment shart emas:

distance_meters = 100.0
time_seconds = 15.0

print(calculate_speed(distance_meters, time_seconds))


Agar siz ham "Clean Code" haqida eshitgan, asosiy joylarini internetdan qarab chiqqan, lekin hali to'liq o'qib chiqmagan bo'lsangiz, o'qishni maslahat beraman. Shaxsan o'zim bu kitobni 1 yil oldin o'qidim. Kitobni sotib olib, ish stolimga qo'yib qo'ydim va har kunlik ish vaqtimning eng ohirgi 30 daqiqasini shu kitobni o'qishga sarfladim. O'rganganlarimni keyingi kun ishda qo'llashga harakat qildim :)

#engineeringexcellence

@muhammadjohns
👍22🔥5❤1🤩1
February 17, 2025 1.5K 5 13