ઇન્ટરેક્ટિવ ડેટા વિઝ્યુલાઇઝેશન્સ માટે બેકએન્ડ વિચારધારાની પણ જરૂર છે
લોકો ડેટા વિઝ્યુલાઇઝેશનની ખોટી લેયરના વખાણ કરે છે.
તેઓ સ્મૂધ એનિમેશન અને પોલિશ્ડ મેપ્સ પર ધ્યાન આપે છે. તેઓ તે અદ્રશ્ય કામ પર ધ્યાન આપતા નથી જે આ વિઝ્યુઅલ્સને શક્ય બનાવે છે. તેઓ ડેટા ક્લીન કરતું ઇન્જેશન જોબ્સ (ingestion jobs) અથવા API ને ઝડપી રાખતી કેશ સ્ટ્રેટેજીસ (cache strategies) ને જોતા નથી.
તે અદ્રશ્ય કામ જ વાસ્તવિક પ્રોડક્ટ છે.
જો તમે ડેટા-હેવી એક્સપિરિયન્સ બનાવો છો, તો ફ્રન્ટએન્ડ માત્ર એક રેન્ડરર (renderer) છે. સાચી એન્જિનિયરિંગ પડકાર અપસ્ટ્રીમ (upstream) માં આવે છે. તમારે નક્કી કરવું જોઈએ કે કયા ડેટા શેપ (data shape) બ્રાઉઝર સુધી પહોંચે છે અને તેમાંથી કેટલો ડેટા આવે છે.
જો તમે ઈચ્છો છો કે તમારું વિઝ્યુલાઇઝેશન વાસ્તવિક ટ્રાફિકમાં ટકી રહે, તો તમારે બેકએન્ડ-ફર્સ્ટ ડિઝાઇનની જરૂર છે. તેના વગર, તમે માત્ર એક અસ્થિર માર્ગ પર સુંદર એનિમેશન લેયર ધરાવતું ડેમો મોકલી રહ્યા છો.
ઘણા વિઝ્યુલાઇઝેશન સ્ટેક્સ (stacks) નિષ્ફળ જાય છે કારણ કે API સ્ટોરેજ મોડેલની ખૂબ નજીક હોય છે. બેકએન્ડ રો (raw) રેકોર્ડ્સ મોકલે છે, અને ફ્રન્ટએન્ડને ડેટા ક્લીન, એગ્રીગેટ અને ગ્રુપ કરવા માટે મજબૂર કરવામાં આવે છે. ડેવલપમેન્ટ દરમિયાન આ ઝડપી લાગે છે, પરંતુ પ્રોડક્શનમાં તે મોંઘું પડે છે કારણ કે દરેક યુઝરે ડેટા ક્લીનઅપનો ખર્ચ ભોગવવો પડે છે.
તમારા બેકએન્ડે રો લોગ (raw log) ને બદલે પ્લેબેક મોડેલ (playback model) આપવું જોઈએ.
જ્યારે બેકએન્ડ ભારે કામ સંભાળે છે, ત્યારે બધું જ સુધરે છે:
- CPU નું કામ બ્રાઉઝરની બહાર જાય છે.
- બિહેવિયર ટેસ્ટ કરવું સરળ બને છે.
- કેશેબિલિટી (Cacheability) સુધરે છે.
- સિસ્ટમ અનુમાનિત (predictable) બને છે.
વિઝ્યુલાઇઝેશન એક સ્પેશિયલાઇઝ્ડ કન્ઝ્યુમર છે. તેને ઝડપી એક્સેસ અને નાના પેલોડ્સ (payloads) ની જરૂર હોય છે. તેને એડમિન ડેશબોર્ડ અથવા ડેટા એક્સપોર્ટ જેવું જ API વાપરવા માટે મજબૂર ન કરો. તેને એક ડેડિકેટેડ બેકએન્ડ કોન્ટ્રાક્ટ આપો.
એક પ્રોફેશનલ પાઇપલાઇને પાંચ વસ્તુઓ કરવી જોઈએ:
- ખરાબ ડેટાને નકારવા માટે સોર્સ રેકોર્ડ્સને વેલિડેટ (validate) કરવા.
- ટાઇમ ઝોન અને યુનિટ્સ જેવી સ્ટ્રક્ચર્સને નોર્મલાઇઝ (normalize) કરવા.
- રો (raw) રો (rows) ને બદલે પ્લેબેક સેગમેન્ટ્સ (playback segments) મેળવવા.
- વિવિધ ઝૂમ લેવલ માટે મલ્ટિપલ રિઝોલ્યુશન બનાવવા.
- જૂના ડેટાને મિક્સ થતો અટકાવવા માટે રિવિઝન સ્ટેમ્પ કરવા.
પેલોડ સાઈઝને ફ્રન્ટએન્ડની સમસ્યા તરીકે જોવાનું બંધ કરો. તે API કોન્ટ્રાક્ટની સમસ્યા છે. જો તમારું સર્વર ખૂબ વધારે ડેટા મોકલે છે, તો ઇન્ટરેક્શન ક્યારેય ઝડપી લાગશે નહીં.
એક મજબૂત API શક્ય તેટલો નાનો અને સાચો વ્યુ (view) મોકલે છે. તે સમય, પ્રદેશ અને વિગત સ્તર (detail level) દ્વારા વિનંતીઓને મર્યાદિત કરે છે.
તમારી સિસ્ટમને રિંગ્સમાં બનાવો:
- પ્રથમ રિંગ ઓવરવ્યુ દ્વારા ઓરિએન્ટેશન (orientation) પૂરી પાડે છે.
- બીજી રિંગ સ્કબિંગ (scrubbing) અને ઝૂમિંગ માટે ઇન્ટરેક્શન પૂરી પાડે છે.
- ત્રીજી રિંગ ઊંડા એન્ટિટી ડિટેલ્સ માટે ઇન્સ્પેક્શન પૂરી પાડે છે.
માત્ર અપટાઇમ (uptime) ને ટ્રેક ન કરો. પેલોડ સાઈઝ, કેશ હિટ રેટ્સ અને ડેટા ફ્રેશનેસને ટ્રેક કરો. સૌથી મહત્વનું, તમારા પ્રોસેસ્ડ આર્ટિફેક્ટ્સ હજુ પણ વાસ્તવિકતા સાથે મેળ ખાય છે કે નહીં તે ચકાસો.
એક ડેરાઇવ્ડ વિઝ્યુલાઇઝેશન એ ડેટા પ્રોડક્ટ છે. તેને માત્ર રેન્ડરિંગની જ નહીં, પણ વેલિડેશનની પણ જરૂર છે.
તમારા બેકએન્ડને એવી રીતે બનાવો જાણે કે ફ્રન્ટએન્ડ એ વર્ઝન્ડ ડેટા પ્રોડક્ટ માટેનો પ્લેબેક ક્લાયન્ટ હોય. આ રીતે તમે એવી સિસ્ટમ્સ બનાવી શકો છો જે લોન્ચ પછી પણ ટકી રહે.
સ્ત્રોત: https://dev.to/saqueib/interactive-data-visualizations-need-backend-thinking-too-5bk0
