Professional dasturiy ta'minot muhandisligining tayanch qoidalari
11-sinfProfessional IT3-hafta · 7-darsNomlash odobi, kichik funksiyalar va DRY, KISS, YAGNI tamoyillari.
Bitta sinf — bitta mas'uliyat va bitta o'zgarish sababi.
Kengaytirishga ochiq, mavjud kodni o'zgartirishga yopiq arxitektura.
Kodni insonlar o'qishi uchun yozish san'ati va iqtisodiy samaradorlik
Dasturchilar vaqtining asosiy qismi yangi kod yozishga emas, mavjud kodni o'qish va tahlil qilishga sarflanadi.
Kodni tushunish qanchalik oson bo'lsa, xatolar shunchalik tez topiladi va yangi imkoniyatlar arzon qo'shiladi.
d = 14doProcess()temp = get_data()user_list2
trial_period_days = 14calculate_invoice_total()active_users = fetch_active_users()
Agar funksiyada 20 qatordan ortiq kod bo'lsa va hisoblash, soliq, email aralashib yotsa — uni kichik qismlarga bo'ling.
Funksiya o'z nomida aytilmagan yashirin ishlarni (sessiyani o'chirish, fayl yaratish) fonda bildirmay bajarmasligi lozim.
Sifatsiz kod tez yoziladi, lekin vaqtinchalik yutuq beradi.
Kelgusida har bir yangi funksiyada xatolar ko'payib, ish tezligi 5 barobar sekinlashadi.
Clean Code yondashuvi qarzni o'z vaqtida so'ndirib borish imkonini beradi.
Bitta sinf yoki modul faqat bitta sabab bilan o'zgarishi kerak
Hisoblash sinfini test qilish uchun email server yoki PDF kutubxona shart emas.
Biri hisoblashni, ikkinchisi emailni o'zgartirsa, Git konflikt yuzaga kelmaydi.
InvoiceEmailSender sinfidan boshqa xatlarni jo'natishda ham foydalanish mumkin.
Kengaytirishga ochiq, mavjud kodni o'zgartirishga yopiq tizim
Har safar yangi to'lov turi chiqqanda if type == "payme": ... elif type == "click": ... deb asosiy funksiyaga o'zgartirish kiritiladi.
Yangi to'lov turi alohida yangi sinf sifatida yoziladi. Eski ishlayotgan kodga bitta harf ham tegilmaydi.
Har safar biror faylni ochganingizda, hech bo'lmaganda 1 ta tushunarsiz o'zgaruvchi nomini tuzating yoki ortiqcha takrorlanishni qisqartiring.
Qaysi tamoyil «Kelajakda kerak bo'lib qolar deb hozir ortiqcha kod yozmaslik»ni talab qiladi?
InvoiceService sinfidagi 3 xil mas'uliyatni SRP asosida alohida sinflarga bo'ling.abc.ABC yordamida to'lov tizimini OCP tamoyiliga o'tkazing va yangi to'lov turini qo'shib sinang.Kodni inson o'qishi uchun yozish va ortiqcha yuklardan tozalash.
Har bir sinf faqat bitta aniq sabab bilan o'zgarishi kerak.
Yangi funksiyalarni mavjud ishlab turgan kodni buzmasdan qo'shish.
LSP, ISP, DIP va Code Smells refaktoring amaliyoti
3-hafta · 8-dars