𝗪𝗵𝘆 𝗗𝗼𝗺𝗮𝗶𝗻 𝗠𝗼𝗱𝗲𝗹𝘀 𝗠𝗮𝘁𝘁𝗲𝗿 𝗠𝗼𝗿𝗲 𝗶𝗻 𝘁𝗵𝗲 𝗔𝗜 𝗘𝗿𝗮 -> AI યુગમાં Domain Models વધુ શા માટે મહત્વના છે
સોફ્ટવેર આર્કિટેક્ચર (Software architecture) ઘણીવાર વિજેતા વગરની ચર્ચા હોય છે. તમે એક સિસ્ટમ બનાવો છો. તમે ક્યારેય તે જ પરિસ્થિતિઓમાં તેના વિકલ્પને બનાવતા નથી. આ દરેક નિર્ણયને અપ્રમાણિત (unfalsifiable) બનાવે છે. જ્યારે કોઈ સિસ્ટમ નિષ્ફળ જાય છે, ત્યારે લોકો ડોમેન અથવા ટીમને દોષ આપે છે. તેઓ ભાગ્યે જ આર્કિટેક્ચરને દોષ આપે છે કારણ કે તેની સરખામણી કરવા માટે કોઈ કંટ્રોલ ગ્રુપ હોતું નથી.
આપણને આપણા ડિઝાઇન્સનું પરીક્ષણ કરવા માટે એક માર્ગની જરૂર છે. આપણે 'essential complexity' ને 'accidental complexity' થી અલગ કરવી જોઈએ. Essential complexity એ વાસ્તવિક સમસ્યા છે. Accidental complexity એ અસ્તવ્યસ્તતા છે જે આપણે આપણા સાધનો અને પ્રક્રિયાઓ દ્વારા ઊભી કરીએ છીએ.
AI અમલીકરણને (implementation) લગભગ મફત બનાવે છે. આ એક મોટું પરિવર્તન છે. ભૂતકાળમાં, કોડ લખવાની મુશ્કેલી ડેવલપર્સને વધુ સારી રચનાઓ (structures) બનાવવા માટે મજબૂર કરતી હતી. જો તમારો કોડ અસ્તવ્યસ્ત હોત, તો તેને મેનેજ કરવો મુશ્કેલ બની જતો. તે પીડા એક ફીડબેક લૂપ (feedback loop) તરીકે કામ કરતી હતી.
AI તે મુશ્કેલી દૂર કરે છે. તે ક્લીન કોડ જેટલી જ ઝડપથી અસ્તવ્યસ્ત અને ખરાબ રીતે સ્ટ્રક્ચર કરેલો કોડ લખી શકે છે. ખરાબ મોડલની પીડા હવે બિલ્ડિંગ દરમિયાન ડેવલપરને અસર કરતી નથી. તેના બદલે, તે પીડા પ્રોડક્શનમાં જાય છે. તમને ભ્રષ્ટ ડેટા (corrupt data) અને અશક્ય ઇન્ટિગ્રેશન કાર્યોનો સામનો કરવો પડે છે.
એક રિચ ડોમેન મોડલ (rich domain model) આને રોકવા માટેનું એક સાધન છે. તે ત્રણ ચોક્કસ કાર્યો કરે છે:
- તે તમને કન્સેપ્ટ્સને આકાર આપવા માટે મજબૂર કરીને ડોમેન શીખવામાં મદદ કરે છે.
- તે ડોમેનને વ્યાખ્યાયિત કરે છે જેથી "શું બનાવવું" તે હવે માત્ર અંદાજ નથી રહેતો.
- તે કોડમાં ડોમેનને ડોક્યુમેન્ટ કરે છે જે કમ્પાઇલર દ્વારા અપડેટ રહે છે.
કામ કરવા માટે, ડોમેન મોડલે ત્રણ નિયમોનું પાલન કરવું જોઈએ:
- Essential complexity ને અખંડ રાખો. એક જ કન્સેપ્ટને સેંકડો માઇક્રોસર્વિસીસમાં વિખેરી નાખો નહીં.
- ફીડબેક આપો. ખોટી ધારણાને કારણે કમ્પાઇલ એરર (compile error) આવવી જોઈએ, સાયલન્ટ બગ (silent bug) નહીં.
- ફેરફારો સસ્તા રાખો. તમારે એક કન્સેપ્ટને એક જ જગ્યાએ સુધારવો જોઈએ, દસ સર્વિસીસમાં તેને શોધવો ન જોઈએ.
જો તમે "bloat" ઉકેલવા માટે તમારા ડોમેનને ખૂબ વહેલા માઇક્રોસર્વિસીસમાં વિભાજિત કરો છો, તો તમે ઘણીવાર માત્ર અસ્તવ્યસ્તતાને બીજી જગ્યાએ ખસેડો છો. તમે એક સિંગલ "god object" ને બદલે વિતરિત અસ્તવ્યસ્તતા (distributed mess) મેળવો છો જે ટ્રેક કરવી વધુ મુશ્કેલ છે. તમે જે ડિપેન્ડન્સી (dependency) જોઈ શકતા નથી, તે એવી ડિપેન્ડન્સી છે જે પ્રોડક્શનમાં તૂટી જશે.
રિચ ડોમેન મોડલનો ધ્યેય સાચું હોવું નથી. ધ્યેય એ છે કે જ્યારે સુધારવાનો ખર્ચ હજુ પણ ઓછો હોય ત્યારે ભૂલને દૃશ્યમાન (visible) બનાવવી.
સ્ત્રોત: https://dev.to/leonpennings/what-is-the-reason-for-using-a-rich-domain-model-in-the-age-of-ai-3gg
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi