Minification (programming)
মিনিফিকেশন (মিনিমাইজেশন বা মিনিমাইজেশনও) হল ব্যাখ্যাযুক্ত প্রোগ্রামিং ভাষা বা মার্কআপ ভাষার সোর্স কোড থেকে সমস্ত অপ্রয়োজনীয় অক্ষর অপসারণের প্রক্রিয়া যার কার্যকারিতা পরিবর্তন করা হয় না। এই অপ্রয়োজনীয় অক্ষরগুলির মধ্যে সাধারণত সাদা স্থান অক্ষর, নতুন লাইন অক্ষর, মন্তব্য এবং কখনও কখনও ব্লক ডিলিমিটার অন্তর্ভুক্ত থাকে, যা কোডে পঠনযোগ্যতা যোগ করতে ব্যবহৃত হয় তবে এটি কার্যকর করার জন্য প্রয়োজন হয় না। মিনিফিকেশন সোর্স কোডের আকার হ্রাস করে, একটি নেটওয়ার্কের মাধ্যমে এটি প্রেরণ করে (যেমন। ইন্টারনেট) আরও কার্যকর। প্রোগ্রামার সংস্কৃতিতে, অত্যন্ত ক্ষুদ্র সোর্স কোড লক্ষ্য করা বিনোদনমূলক কোড গল্ফ প্রতিযোগিতার উদ্দেশ্য। ক্ষুদ্রায়নকে তথ্য সংকোচনের আরও সাধারণ ধারণা থেকে আলাদা করা যেতে পারে যে ক্ষুদ্রতর উৎসটি কোনও অসংকুচন পদক্ষেপের প্রয়োজন ছাড়াই অবিলম্বে ব্যাখ্যা করা যেতে পারেঃ একই দোভাষী মূল এবং ক্ষুদ্রতর উৎস উভয়ের সাথেই কাজ করতে পারে। ক্ষুদ্রকরণের লক্ষ্যগুলি অস্পষ্টকরণের লক্ষ্যগুলির মতো নয়; প্রথমটি প্রায়শই একটি সুন্দর-প্রিন্টার বা আনমিনিফায়ার ব্যবহার করে বিপরীত করার উদ্দেশ্যে করা হয়। যাইহোক, তার লক্ষ্য অর্জনের জন্য, মিনিফিকেশন কখনও কখনও অস্পষ্টকরণ দ্বারা ব্যবহৃত কৌশলগুলি ব্যবহার করে; উদাহরণস্বরূপ, পরিবর্তনশীল নামগুলি সংক্ষিপ্ত করা এবং সোর্স কোডকে রিফ্যাক্টর করা। যখন মিনিফিকেশন এই ধরনের কৌশল ব্যবহার করে, তখন প্রিটি-প্রিন্টার বা আনমিনিফায়ার শুধুমাত্র মিনিফিকেশন প্রক্রিয়াটিকে সম্পূর্ণরূপে বিপরীত করতে পারে যদি এটি এই ধরনের কৌশল দ্বারা করা রূপান্তরগুলির বিশদ সরবরাহ করা হয়। যদি সেই বিবরণগুলি সরবরাহ না করা হয়, তবে বিপরীত উৎস কোডে বিভিন্ন পরিবর্তনশীল নাম এবং নিয়ন্ত্রণ প্রবাহ থাকবে, যদিও এটির মূল উৎস কোডের মতো একই কার্যকারিতা থাকবে। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট কোড// এটি একটি মন্তব্য যা মিনিফায়ার ভার অ্যারে দ্বারা সরানো হবে = []; এর জন্য (ভার আই = 0; আই <20; আই + +) {অ্যারে [আই] = আই;} সমতুল্য কিন্তু তার চেয়ে দীর্ঘ (ভার এ = [], আই = 0; আই <20; এ [আই] = আই + +); ইতিহাস 2001 সালে ডগলাস ক্রকফোর্ড জে. এস. মিন চালু করেন, যা জাভাস্ক্রিপ্ট কোড থেকে মন্তব্য এবং স্পেস হোয়াইট সরিয়ে দেয়। এর পরে 2007 সালে ইউ. ইউ. আই কম্প্রেসার চালু হয়। 2009 সালে, গুগল ক্লোজার কম্পাইলার সহ তার ক্লোজার টুলকিট খুলেছিল, যার মধ্যে ক্লোজার ইন্সপেক্টর নামে একটি ফায়ারফক্স এক্সটেনশনের সাথে একটি সোর্স ম্যাপিং বৈশিষ্ট্য ছিল। 2010 সালে, মিহাই বাজোন ইউগ্লিফাইজেএস চালু করেছিলেন, যা 2012 সালে ইউগ্লিফাইজেএস 2 দ্বারা প্রতিস্থাপিত হয়েছিল; পুনর্লিখনটি উৎস মানচিত্র সমর্থনের অনুমতি দেওয়ার জন্য ছিল। 2017 সাল থেকে, অ্যালেক্স ল্যাম ইউগ্লিফাইজেএস2-এর রক্ষণাবেক্ষণ ও উন্নয়নের দায়িত্ব গ্রহণ করেন, এটিকে ইউগ্লিফাইজেএস3-এর সাথে প্রতিস্থাপন করেন যা সিএলআই-কে এপিআই-এর সাথে একীভূত করে। 2018 সালে, টারসার ইউগ্লিফাই-এস থেকে কাঁটাচামচ করা হয়েছে এবং তারপর থেকে গতি অর্জন করেছে; 2020 সালে দৈনিক ডাউনলোডগুলিতে পরিমাপ করা হলে এটি ইউগ্লিফাইজেএসকে ছাড়িয়ে যায়। সোর্স ম্যাপিং একটি ফাইল ফরম্যাট যা জাভাস্ক্রিপ্টের জন্য সফ্টওয়্যার সরঞ্জামগুলিকে কম্পিউটার দ্বারা প্রকৃতপক্ষে সম্পাদিত কোডের চেয়ে ব্যবহারকারীর কাছে ভিন্ন কোড প্রদর্শন করার অনুমতি দেয়। উদাহরণস্বরূপ, মিনিফাইড কোডের ডিবাগিংয়ে সহায়তা করার জন্য, পরিবর্তে মূল অনির্দিষ্ট সোর্স কোডে এই কোডটিকে "ম্যাপিং" করে। ক্লোজার ইন্সপেক্টর মিনিফিকেশন প্রকল্পের অংশ হিসাবে মূল বিন্যাসটি জোসেফ শোর তৈরি করেছিলেন। ফরম্যাটের সংস্করণ 2 এবং 3 মানচিত্র ফাইলের আকার উল্লেখযোগ্যভাবে হ্রাস করেছে। প্রকার সরঞ্জাম ভিজ্যুয়াল স্টুডিও কোড বিভিন্ন ভাষার জন্য মিনিফিকেশন সমর্থন সহ আসে। এটি অতিরিক্ত মিনিফায়ার ডাউনলোড এবং ইনস্টল করতে সহজেই ভিজ্যুয়াল স্টুডিও মার্কেটপ্লেসে ব্রাউজ করতে পারে। জাভাস্ক্রিপ্ট অপ্টিমাইজারগুলি উৎস মানচিত্রগুলি ছোট করতে এবং তৈরি করতে পারে। এছাড়াও কিছু অনলাইন সরঞ্জাম সিএসএস ফাইলগুলিকে সংকুচিত করতে পারে। ফাইল অনুরোধগুলি অনুকূল করতে এবং বিভিন্ন ফাইলের আকার সঙ্কুচিত করে পৃষ্ঠা লোডের সময় কমাতে ওয়েব অ্যাপ্লিকেশন এবং ওয়েবসাইটগুলির জন্য ওয়েব ডেভেলপমেন্ট উপাদান এবং লাইব্রেরি তৈরি করা হয়েছে। জাভাস্ক্রিপ্ট এবং ক্যাসকেডিং স্টাইল শিট (সিএসএস) সংস্থানগুলি ছোট করা যেতে পারে, তাদের আচরণ সংরক্ষণ করে এবং তাদের ফাইলের আকার উল্লেখযোগ্যভাবে হ্রাস করে। অনলাইনে উপলব্ধ গ্রন্থাগারগুলি বিভিন্ন মাত্রায় মিনিফিকেশন এবং অপ্টিমাইজেশনে সক্ষম। কিছু লাইব্রেরি ক্লায়েন্ট ডাউনলোডের জন্য একাধিক স্ক্রিপ্ট ফাইলকে একটি ফাইলে একত্রিত করে। জাভাস্ক্রিপ্ট উৎস মানচিত্রগুলি একত্রিত এবং ক্ষুদ্র করার পরেও কোডকে পাঠযোগ্য এবং ডিবাগযোগ্য করে তুলতে পারে। রেফারেন্স সোর্স কোড জাভাস্ক্রিপ্ট