𝗖𝗼𝗱𝗲 𝗗𝘂𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗜𝘀 𝗖𝗵𝗲𝗮𝗽𝗲𝗿 𝗧𝗵𝗮𝗻 𝗪𝗿𝗼𝗻𝗴 𝗔𝗯𝘀𝘁𝗿𝗮𝗰𝘁𝗶𝗼𝗻𝘀
Watengenezaji programu wanapenda kanuni ya DRY.
Unataka kuepuka kujirudia. Unata koda inayovutia na inayoweza kutumika tena.
Lakini lengo hili mara nyingi hupelekea mtego: abstraksheni ya mapema (premature abstraction).
Kurudia koda kunahisi kuwa si sahihi. Hata hivyo, kurudia koda mara nyingi ni gharama nafuu kuliko abstraksheni mbaya.
Tunajaribu kujenga mifumo kamili ya moduli. Tunatafuta mifumo (patterns) na kutoa mantiki ili kudhibiti utata.
Abstraksheni zilizoundwa vizuri husaidia programu kukua (scale).
Lakini abstraksheni nyingi hujengwa mapema mno. Ikiwa huelewi tatizo kikamilifu, abstraksheni yako inakuwa mzigo.
Abstraksheni mbaya husababisha matatizo kadhaa:
- Over-engineering: Unajenga suluhisho tata kwa ajili ya matatizo rahisi.
- Rigidity: Koda yako inakuwa ngumu kubadilishwa kwa sababu inajaribu kutabiri wakati ujao ambao hautatokea kamwe.
- Obscured Intent: Mantiki ya biashara (business logic) hujificha chini ya tabaka za interfaces za jumla. Hii inafanya debugging kuwa ngumu.
- Tight Coupling: Sehemu za mfumo wako zinakuwa zimefungamana sana na abstraksheni yenyewe.
Gharama ni kubwa. Unatumia muda kupambana na usanifu (architecture) wako mwenyewe badala ya kutatua matatizo ya watumiaji. Inapunguza kasi ya timu yako na kufanya refactoring kuwa ngumu.
Sisemi uandike na kubandika (copy and paste) kila kitu. Ninapendekeza mbinu ya kiutendaji (pragmatic approach).
Tumia kurudia koda kwa udhibiti kama chombo. Itumie katika maeneo ambapo mahitaji yanabadilika haraka au pale unapokabiliwa na kutokuwa na uhakika.
Subiri hadi uone mfumo (pattern) wazi kabla ya kujenga abstraksheni.