Minification (programming)
લઘુતમ (લઘુતમ અથવા લઘુતમ પણ) એ અર્થઘટન કરાયેલી પ્રોગ્રામિંગ ભાષાઓ અથવા માર્કઅપ ભાષાઓના સ્રોત કોડમાંથી તેની કાર્યક્ષમતામાં ફેરફાર કર્યા વિના તમામ બિનજરૂરી અક્ષરોને દૂર કરવાની પ્રક્રિયા છે. આ બિનજરૂરી અક્ષરોમાં સામાન્ય રીતે સફેદ જગ્યા અક્ષરો, નવા વાક્ય અક્ષરો, ટિપ્પણીઓ અને કેટલીકવાર બ્લોક સીમાંકનો સમાવેશ થાય છે, જેનો ઉપયોગ કોડમાં વાંચનીયતા ઉમેરવા માટે થાય છે પરંતુ તેને અમલમાં મૂકવા માટે જરૂરી નથી. મિનિફિકેશન સ્રોત કોડના કદને ઘટાડે છે, જે નેટવર્ક પર તેનું પ્રસારણ કરે છે (દા. ત. મિનિફિકેશન). ઇન્ટરનેટ) વધુ કાર્યક્ષમ. પ્રોગ્રામર સંસ્કૃતિમાં, અત્યંત નાના સ્રોત કોડને લક્ષ્ય બનાવવું એ મનોરંજક કોડ ગોલ્ફ સ્પર્ધાઓનો હેતુ છે. લઘુકરણને માહિતી સંકોચનની વધુ સામાન્ય વિભાવનાથી અલગ કરી શકાય છે જેમાં લઘુકૃત સ્રોતને સંકોચન પગલાની જરૂર વગર તરત જ અર્થઘટન કરી શકાય છેઃ એક જ દુભાષિયો મૂળ તેમજ લઘુકૃત સ્રોત બંને સાથે કામ કરી શકે છે. લઘુકરણના લક્ષ્યાંકો અસ્પષ્ટતાના લક્ષ્યાંકો જેવા નથી; પહેલાનો હેતુ ઘણીવાર પ્રીટી-પ્રિન્ટર અથવા અનમિનિફાયરનો ઉપયોગ કરીને ઉલટાવી દેવાનો હોય છે. જો કે, તેના લક્ષ્યોને હાંસલ કરવા માટે, લઘુકરણ કેટલીકવાર અસ્પષ્ટતા દ્વારા ઉપયોગમાં લેવાતી તકનીકોનો ઉપયોગ કરે છે; ઉદાહરણ તરીકે, ચલ નામોને ટૂંકું કરવું અને સ્રોત કોડને રિફૅક્ટર કરવું. જ્યારે લઘુકરણ આવી તકનીકોનો ઉપયોગ કરે છે, ત્યારે સુંદર-પ્રિન્ટર અથવા અનમિનિફાયર માત્ર ત્યારે જ લઘુકરણ પ્રક્રિયાને સંપૂર્ણપણે ઉલટાવી શકે છે જો તેને આવી તકનીકો દ્વારા કરવામાં આવેલા પરિવર્તનની વિગતો પૂરી પાડવામાં આવે. જો તે વિગતો પૂરી પાડવામાં ન આવે તો, વિપરીત સ્રોત કોડમાં વિવિધ ચલ નામો અને નિયંત્રણ પ્રવાહ હશે, તેમ છતાં તેમાં મૂળ સ્રોત કોડ જેવી જ કાર્યક્ષમતા હશે. ઉદાહરણ તરીકે, જાવાસ્ક્રિપ્ટ કોડ// આ એક ટિપ્પણી છે જે મિનિફાયર વાર એરે દ્વારા દૂર કરવામાં આવશે = []; માટે (વાર i = 0; i <20; i + +) {એરે [i] = i;} સમકક્ષ છે પરંતુ તેના કરતા લાંબી છે (વાર a = [], i = 0; i <20; a [i] = i + +); ઇતિહાસ 2001 માં ડગ્લાસ ક્રોકફોર્ડે JSMin રજૂ કર્યું, જેણે જાવાસ્ક્રિપ્ટ કોડમાંથી ટિપ્પણીઓ અને સફેદ જગ્યાને દૂર કરી. તે પછી 2007માં YUI કોમ્પ્રેસર આવ્યું હતું. 2009 માં, ગૂગલે તેની ક્લોઝર ટૂલકિટ ખોલી, જેમાં ક્લોઝર કમ્પાઇલરનો સમાવેશ થાય છે, જેમાં ક્લોઝર ઇન્સ્પેક્ટર તરીકે ઓળખાતા ફાયરફોક્સ એક્સ્ટેંશન સાથે સ્રોત મેપિંગ સુવિધા છે. 2010માં, મિહાઈ બાઝોને યુગ્લિફાઇજેએસ રજૂ કર્યું હતું, જેને 2012માં યુગ્લિફાઇજેએસ2 દ્વારા રદ કરવામાં આવ્યું હતું; પુનઃલેખન સ્રોત નકશાને ટેકો આપવા માટે હતું. 2017 થી, એલેક્સ લેમે UglifyJS2 ની જાળવણી અને વિકાસ સંભાળ્યો, તેને UglifyJS3 સાથે બદલીને જેણે CLI ને API સાથે એકીકૃત કર્યું. 2018 માં, Terser ને uglify-Es માંથી કાંટો કરવામાં આવ્યો છે અને ત્યારથી તે વેગ મેળવ્યો છે; 2020 માં જ્યારે દૈનિક ડાઉનલોડમાં માપવામાં આવે ત્યારે તે UglifyJS ને પાછળ છોડી દે છે. સોર્સ મેપિંગ એ એક ફાઇલ ફોર્મેટ છે જે જાવાસ્ક્રિપ્ટ માટેના સોફ્ટવેર ટૂલ્સને કમ્પ્યુટર દ્વારા વાસ્તવમાં ચલાવવામાં આવેલા કોડ કરતાં વપરાશકર્તાને અલગ કોડ પ્રદર્શિત કરવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, મિનિફાઇડ કોડને ડીબગ કરવામાં મદદ કરવા માટે, તેના બદલે આ કોડને મૂળ અનમિનિફાઇડ સોર્સ કોડમાં "મેપિંગ" કરીને. મૂળ સ્વરૂપ જોસેફ સ્કોર્ દ્વારા ક્લોઝર ઇન્સ્પેક્ટર મિનિફિકેશન પ્રોજેક્ટના ભાગ રૂપે બનાવવામાં આવ્યું હતું. બંધારણની આવૃત્તિ 2 અને 3એ નકશાની ફાઇલોનું કદ નોંધપાત્ર રીતે ઘટાડ્યું હતું. પ્રકારનાં સાધનો વિઝ્યુઅલ સ્ટુડિયો કોડ ઘણી ભાષાઓ માટે મિનિફિકેશન સપોર્ટ સાથે આવે છે. તે વધારાના મિનિફાયર્સને ડાઉનલોડ અને સ્થાપિત કરવા માટે વિઝ્યુઅલ સ્ટુડિયો માર્કેટપ્લેસને સહેલાઈથી બ્રાઉઝ કરી શકે છે. જાવાસ્ક્રિપ્ટ ઓપ્ટિમાઇઝર્સ સ્રોત નકશાને નાનું અને જનરેટ કરી શકે છે. વધુમાં અમુક ઓનલાઇન સાધનો CSS ફાઇલોને સંકુચિત કરી શકે છે. વેબ વિકાસ ઘટકો અને વેબ એપ્લિકેશન્સ અને વેબસાઇટ્સ માટેની લાઈબ્રેરીઓ ફાઇલ વિનંતીઓને શ્રેષ્ઠ બનાવવા અને વિવિધ ફાઇલોનું કદ ઘટાડીને પૃષ્ઠ લોડ સમય ઘટાડવા માટે વિકસાવવામાં આવી છે. જાવાસ્ક્રિપ્ટ અને કાસ્કેડિંગ સ્ટાઇલ શીટ (સી. એસ. એસ.) સંસાધનોને નાના કરી શકાય છે, તેમની ફાઇલના કદમાં નોંધપાત્ર ઘટાડો કરતી વખતે તેમની વર્તણૂકને જાળવી રાખી શકાય છે. ઓનલાઈન ઉપલબ્ધ પુસ્તકાલયો વિવિધ માત્રામાં લઘુતમ અને ઓપ્ટિમાઇઝેશન માટે સક્ષમ છે. કેટલીક લાઈબ્રેરીઓ ક્લાયન્ટ ડાઉનલોડ કરવા માટે બહુવિધ સ્ક્રિપ્ટ ફાઇલોને એક જ ફાઇલમાં મર્જ કરે છે. જાવાસ્ક્રિપ્ટ સ્રોત નકશા કોડને જોડ્યા અને નાના કર્યા પછી પણ તેને વાંચી શકાય તેવું અને ડીબગેબલ બનાવી શકે છે. સંદર્ભ સ્રોત કોડ જાવાસ્ક્રિપ્ટ