એ ઉદાહરણ જે તેના પોતાના કેલ્ક્યુલેટર સાથે વિરોધાભાસ ધરાવતું હતું
હું ઘરના સુધારા માટેના ખર્ચના કેલ્ક્યુલેટર્સ માટેની એક સાઇટ ચલાવું છું.
દરેક પેજ ચાર જગ્યાએ ખર્ચ દર્શાવે છે:
- એક ઇન્ટરેક્ટિવ વિજેટ.
- એક સ્ટેટિક સંદર્ભ કોષ્ટક.
- લખાણમાં આપેલા ઉદાહરણો.
- એક FAQ વિભાગ.
મને એક મોટી ભૂલ (bug) મળી. એક લખાણમાં આપેલા ઉદાહરણ મુજબ પ્રોજેક્ટનો ખર્ચ $62,300 હતો. જ્યારે વિજેટ મુજબ તે જ પ્રોજેક્ટનો ખર્ચ $56,779 હતો.
તેમાં $5,500 નો તફાવત હતો.
આ આંકડાઓ યાદચ્છિક નહોતા. તેઓ અલગ-અલગ છુપાયેલી ધારણાઓ પરથી આવ્યા હતા. લખાણમાં નવી HVAC યુનિટની ધારણા લેવામાં આવી હતી. વિજેટમાં એવું માનવામાં આવ્યું હતું કે તમે હાલની સિસ્ટમનો ઉપયોગ કરશો. બંને બાબતો યોગ્ય હતી, પરંતુ તેઓ એકબીજા સાથે જોડાયેલા નહોતા.
આ એક સામાન્ય નિષ્ફળતા છે. જ્યારે તમે એક જ તથ્યને બે અલગ જગ્યાએ સંગ્રહિત કરો છો, ત્યારે તે બંને વચ્ચે તફાવત આવવા લાગે છે. તમે માત્ર સામગ્રીની નકલ નથી કરી રહ્યા, તમે ડેટાની નકલ કરી રહ્યા છો.
મેં આ સમસ્યાને 'source-first' નામના નિયમ દ્વારા સુધારી છે. તેના બે ભાગ છે.
ભાગ એક: ખર્ચ માત્ર એક જ જગ્યાએ હોવો જોઈએ.
મેં મારા લખાણ અને કોષ્ટકોમાં આંકડા ટાઈપ કરવાનું બંધ કરી દીધું. હવે, કેલ્ક્યુલેટર ફંક્શન જ એકમાત્ર સ્ત્રોત છે. બિલ્ડ પ્રક્રિયા દરમિયાન કોષ્ટકો અને લખાણમાં આપેલા ઉદાહરણો સીધા તે ફંક્શનમાંથી આંકડા મેળવે છે. જો ફંક્શન બદલાય, તો પેજ પરના તમામ આંકડા આપમેળે બદલાઈ જાય છે. તમે કોઈ વિરોધાભાસ અનુભવી શકતા નથી કારણ કે બધા આંકડા એક જ મૂલ્ય ધરાવે છે.
ભાગ બે: દરેક આંકડાએ તેનો ઉદ્ભવ દર્શાવવો જોઈએ.
ખર્ચનો ડેટા કાયમી તથ્ય નથી. તે સમય જતાં જૂનો થઈ જાય છે. મેં દરેક ગણતરીમાં એક નાનો ડેટા ઓબ્જેક્ટ ઉમેર્યો છે. તે દર્શાવે છે:
- ઉપયોગમાં લેવાયેલ પરિસ્થિતિ (scenario).
- ડેટાનો સ્ત્રોત.
- જે તારીખે તે મેળવવામાં આવ્યો હતો.
- ડેટાની સમીક્ષા ક્યારે કરવી જોઈએ.
આ ડેટાને સચોટ રાખે છે. જો સ્ત્રોત ડેટા ખોટો હશે, તો આખી સાઇટ ખોટી હશે. પરંતુ ઓછામાં ઓછું સાઇટ સુસંગત (consistent) તો રહેશે. વપરાશકર્તા તરત જ વિરોધાભાસ નોંધી લે છે, જે વિશ્વાસ તોડી નાખે છે.
પાઠ સરળ છે:
- જો પેજ પર બે જગ્યાએ એક જ આંકડો દર્શાવવામાં આવતો હોય, તો એક જગ્યાએ તેને ઇમ્પોર્ટ (import) કરવો જોઈએ. તેને ફરીથી ટાઈપ ન કરો.
- ડેટા સિંક (sync) કરવા માટે તમારી બિલ્ડ પ્રક્રિયાનો ઉપયોગ કરો. આનાથી શિસ્તની સમસ્યા ટેકનિકલ રીતે અશક્ય બની જશે.
- જે આંકડા ફંક્શન દ્વારા પહેલેથી જ ગણવામાં આવે છે, તેને જાતે લખવાનું બંધ કરો.
મેં આંકડા લખવાને બદલે તેને ડિલીટ કરવામાં આખો દિવસ વિતાવ્યો. મારો કોડબેઝ (codebase) હવે નાનો છે અને તે મારા વપરાશકર્તાઓને હવે ખોટું નથી કહેતો.
સ્ત્રોત: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9