દરેક લાઇબ્રેરીને વાસ્તવિક પ્રોજેક્ટની જરૂર કેમ છે
ઘણા લાઇબ્રેરી લેખકો ભૂલ કરે છે. તેઓ વિચારે છે કે ઉદાહરણો પૂરતા છે.
ઉદાહરણો પૂરતા નથી.
ઉદાહરણો સાબિત કરે છે કે કોઈ ફીચર કામ કરે છે. વાસ્તવિક પ્રોજેક્ટ સાબિત કરે છે કે લાઇબ્રેરી કામ કરે છે. આ બંને અલગ બાબતો છે.
હું ઘણા ડેમો એપ્લિકેશન્સ બનાવું છું. હું સેમ્પલ વેબસાઇટ્સ, APIs અને કમ્પોનન્ટ્સ બનાવું છું. ડેમોમાં બધું જ પરફેક્ટ લાગે છે. ડેમો 'હેપ્પી પાથ' (happy path) બતાવે છે. તેઓ આદર્શ વર્કફ્લો દર્શાવે છે.
ડેમો એ નિયંત્રિત વાતાવરણ છે. આર્કિટેક્ચર સરળ હોય છે. જરૂરિયાતો અનુમાનિત રહે છે.
વાસ્તવિક પ્રોજેક્ટ્સ અલગ હોય છે.
જ્યારે તમે વાસ્તવિક પ્રોજેક્ટ માટે લાઇબ્રેરીનો ઉપયોગ કરો છો, ત્યારે નિયમો બદલાઈ જાય છે. તમે હવે માત્ર પ્રદર્શન નથી કરી રહ્યા, પરંતુ તમે સમસ્યાનો ઉકેલ લાવી રહ્યા છો.
વાસ્તવિક પ્રોજેક્ટ્સ લાવે છે:
- ટાઈટ ડેડલાઇન્સ
- બદલાતી જરૂરિયાતો
- જટિલ લેઆઉટ્સ
- એજ કેસીસ (edge cases)
- માનવીય ભૂલો
અહીં જ લાઇબ્રેરી તેની સાચી તાકાત બતાવે છે. તે તેની સાચી નબળાઈ પણ બતાવે છે. લાઇબ્રેરી ડેમોમાં નહીં, પણ દબાણ હેઠળ પોતાનું સાચું સ્વરૂપ પ્રગટ કરે છે.
વાસ્તવિક પ્રોજેક્ટ્સ તમારી ધારણાઓને ખુલ્લી પાડે છે. કોઈ વિચાર કાગળ પર સુંદર લાગી શકે છે. ડેવલપમેન્ટ દરમિયાન તે યોગ્ય લાગી શકે છે. પછી વાસ્તવિકતા સામે આવે છે.
વર્કફ્લો અજીબ લાગે છે. કોન્ફિગરેશન પુનરાવર્તિત લાગે છે. API અકુદરતી લાગે છે. તમારું ડિઝાઇન ખોટું નથી, પરંતુ તે હજુ વાસ્તવિકતા સાથે સામનો કરી શક્યું નથી.
લેખક કરી શકે તેવું શ્રેષ્ઠ કામ એ છે કે તેઓ પોતે જ તેમના સોફ્ટવેરના વપરાશકર્તા બને. માત્ર ડેમો ન બનાવો. તમારા સાધનો સાથે વેબસાઇટ્સ, એપ્લિકેશન્સ અને વ્યવસાયો બનાવો. તેમના પર નિર્ભર રહો.
જ્યારે તમે તમારા સોફ્ટવેર પર નિર્ભર થાઓ છો, ત્યારે તમારો દ્રષ્ટિકોણ બદલાઈ જાય છે. તમે લેખક તરીકે વિચારવાનું બંધ કરો છો અને વપરાશકર્તા તરીકે વિચારવાનું શરૂ કરો છો.
વપરાશકર્તાઓને આ બાબતોની ચિંતા હોય છે:
- ઘર્ષણ (friction)
- સ્પષ્ટતા
- કામ પૂરું કરવું
વાસ્તવિક વસ્તુઓ બનાવવાથી તમારા પ્રશ્નો બદલાય છે. તમે "આપણે કયા ફીચર્સ ઉમેરવા જોઈએ?" એવું પૂછવાનું બંધ કરો છો. તેના બદલે, તમે પૂછો છો:
- આ વર્કફ્લો અજીબ કેમ લાગે છે?
- હું વારંવાર એકની એક વસ્તુ કેમ કરી રહ્યો છું?
- આમાં આટલો સમય કેમ લાગ્યો?
આ સમસ્યાઓનો ઉકેલ લાવવો એ કોઈપણ બ્રેઈનસ્ટોર્મિંગ સત્ર કરતાં વધુ સારું સોફ્ટવેર બનાવે છે.
દરેક લાઇબ્રેરીને વાસ્તવિક પ્રોજેક્ટની જરૂર છે. આ પ્રોજેક્ટ માર્કેટિંગ માટે નથી. તે સાબિત કરવાનું મેદાન છે. તે લાઇબ્રેરીને વાસ્તવિક સમસ્યાઓ ઉકેલવા માટે મજબૂર કરે છે. તે તમારા વપરાશકર્તાઓ કરતા પહેલા નબળાઈઓ શોધી કાઢે છે.
ધ્યેય એ સાબિત કરવાનો નથી કે તમારી લાઇબ્રેરી પરફેક્ટ છે. ધ્યેય તમારી લાઇબ્રેરીમાં સુધારો કરવા માટેનો માર્ગ બનાવવાનો છે.
Source: https://dev.to/stinklewinks/why-every-library-needs-a-real-project-1ae7