Flutter Dev Talk
#ARCH-13 Architecture Learning — Soft vs Hard Boundary (PART 2)
📌 Shared Module — kodni qayta ishlatish har doim ham yaxshi yechimmi?
Flutter’da bir nechta feature’da bir xil kod uchrasa, uni shared modulga chiqarishimiz mumkin.
Bu kod takrorlanishini kamaytiradi. Lekin ba’zida ortiqcha bog‘liqlik ham yaratadi.
💻 Oddiy misol:
Tasavvur qilaylik, ilovamizda ikkita feature bor:
- payment — to‘lov qilish
- transfer — pul o‘tkazish
Ikkalasida ham Limit modeli mavjud:
class Limit {
final int minAmount;
final int maxAmount;
}
Kodlar bir xil ekan deb, bitta shared/Limit modelini yaratdik.
Endi ikkala feature ham shu modelga bog‘liq.
⚠️ Muammo qayerda?
Ertaga transfer uchun qo‘shimcha limit qoidasi kerak bo‘lib qolsa, umumiy modelni o‘zgartirishimiz mumkin.
Bu esa `payment`ga ham ta’sir qilishi yoki model ichida keraksiz shartlar paydo bo‘lishiga olib kelishi mumkin.
Ya’ni kod takrorlanishini kamaytirdik, lekin feature’larni bir-biriga bog‘lab qo‘ydik.
💡 Qanday yo‘l tutish kerak?
Agar ikkita model faqat tashqi ko‘rinishi bilan o‘xshash bo‘lsa, ularni alohida qoldirgan yaxshi.
Agar ular haqiqatan ham bitta tushunchani ifodalasa, `shared`ga chiqarish mumkin.
🎯 Xulosa:
Bir xil kod har doim ham umumiy modulga chiqarilishi kerak degani emas.
Ba’zida 10 qator kodning takrorlanishi, ikkita feature’ni keraksiz bog‘lab qo‘yishdan yaxshiroq.
@flutterDevTalk
52 ·