Mfano uliopitishwa uliopingana na Kikokotozi wake wenyewe

Ninaendesha tovuti ya kikokotozi wa gharama za uboreshaji wa nyumba.

Kila ukurasa unaonyesha gharama katika sehemu nne:

Niligundua hitilafu kubwa. Mfano uliokuwa umeandikwa ulisema mradi uligharimu $62,300. Widget ilisema mradi huo huo uligharimu $56,779.

Kulikuwa na tofauti ya $5,500.

Namba hizo hazikuwa za kubahatisha. Zilitokana na dhana tofauti zilizofichika. Maandishi yalichukulia kuwa kuna kifaa kipya cha HVAC. Widget ilichukulia kuwa utatumia mfumo uliopo. Zote zilikuwa sawa, lakini hazikuwa na mawasiliano kati yake.

Hili ni kosa la kawaida. Unapohifadhi ukweli uleule katika sehemu mbili, huanza kutofautiana. Haufanyi marudio ya maudhui tu. Unafanya marudio ya data.

Nilitatua hili kwa sheria ninayoita source-first. Ina sehemu mbili.

Sehemu ya kwanza: Gharama inapaswa kuwepo sehemu moja tu.

Niliacha kuandika namba kwenye maandishi na majedwali yangu. Sasa, kazi ya kikokotozi (calculator function) ndiyo chanzo pekee. Majedwali na mifano iliyoandikwa huchukua namba zao moja kwa moja kutoka kwenye kazi hiyo wakati wa mchakato wa ujenzi (build process). Ikiwa kazi hiyo itabadilika, kila namba kwenye ukurasa itabadilika kiotomatiki. Huwezi kuwa na kutofautiana kwa sababu namba hizo zina thamani sawa.

Sehemu ya pili: Kila namba lazima ionyeshe asili yake.

Data ya gharama si ukweli wa kudumu. Ina muda wake wa kuisha. Niliongeza data object ndogo kwenye kila ukokotoaji. Inaonyesha:

Hii inafanya data iwe ya kweli. Ikiwa data ya chanzo ni mbaya, tovuti nzima itakuwa mbaya. Lakini angalau tovuti itakuwa na msimamo mmoja. Mtumiaji hugundua mkanganyiko mara moja. Hilo huharibu uaminifu.

Somo ni rahisi:

Nilitumia siku nzima kufuta namba badala ya kuziandika. Codebase yangu ni ndogo na haimdanganyi tena watumiaji wangu.

Chanzo: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9