আমি ভাবছি যে কোনও কারণ রয়েছে (উত্স কোডটি পরিষ্কার করার ব্যতীত) কেন বিকাশকারীরা Usings
ভিজুয়াল স্টুডিও ২০০৮-এ " অব্যবহৃত অপসারণ " বৈশিষ্ট্যটি ব্যবহার করবেন ?
আমি ভাবছি যে কোনও কারণ রয়েছে (উত্স কোডটি পরিষ্কার করার ব্যতীত) কেন বিকাশকারীরা Usings
ভিজুয়াল স্টুডিও ২০০৮-এ " অব্যবহৃত অপসারণ " বৈশিষ্ট্যটি ব্যবহার করবেন ?
উত্তর:
কয়েকটি কারণ রয়েছে যা আপনি এগুলি নিতে চান।
using
আপনার কোড সময়ের সাথে সাথে পরিবর্তন হওয়ার সাথে সাথে আপনি অর্থহীন বক্তব্য সংগ্রহ করবেন।অন্যদিকে, এগুলি ছেড়ে দেওয়ার অনেক কারণ নেই I আমি মনে করি আপনি সেগুলি মুছে ফেলার চেষ্টাটি আপনি নিজেকে বাঁচান। তবে আপনি যদি অলস হন তবে আপনার আরও বড় সমস্যা হয়েছে!
আমি একেবারে বিপরীতভাবে বলব - এটি বিনা পাকা, অপ্রয়োজনীয় বিবৃতি ব্যবহার করে অপসারণ করতে অত্যন্ত সহায়ক।
কল্পনা করুন যে আপনাকে 3, 6, 9 মাসে আপনার কোডে ফিরে যেতে হবে - বা অন্য কাউকে আপনার কোডটি হাতে নিতে হবে এবং এটি বজায় রাখতে হবে।
আপনার যদি বিবৃতি ব্যবহারের একটি বিশাল দীর্ঘ লন্ড্রি তালিকা থাকে যা সত্যই প্রয়োজন হয় না, কোডটি দেখানো বেশ বিভ্রান্তিকর হতে পারে। কেন সেখানে ব্যবহার হচ্ছে, যদি সেই নামস্থান থেকে কিছু ব্যবহার করা হয় না ??
আমি পেশাদার পরিবেশে দীর্ঘমেয়াদে রক্ষণাবেক্ষণের ক্ষেত্রে অনুমান করি, আমি আপনার কোডটি যথাসম্ভব পরিষ্কার রাখার পরামর্শ দিচ্ছি - এবং এর মধ্যে অপ্রয়োজনীয় জিনিস ফেলে দেওয়া অন্তর্ভুক্ত রয়েছে। কম বিশৃঙ্খলা কম বিভ্রান্তির সমান এবং এইভাবে উচ্চ রক্ষণাবেক্ষণের সমান।
আঙ্গুরের ছিরড়া
এটি আমার কাছে একটি খুব সংবেদনশীল প্রশ্ন বলে মনে হচ্ছে, যা জনগণ প্রতিক্রিয়া জানিয়ে বেশ ফিতিময়ভাবে আচরণ করছে।
আমি বলব সোর্স কোডে যে কোনও পরিবর্তন যথাযথ হওয়া দরকার। এই পরিবর্তনগুলির গোপন ব্যয় থাকতে পারে, এবং প্রশ্ন উত্থাপনকারী ব্যক্তি এটি সম্পর্কে সচেতন হতে চেয়েছিলেন। তারা "অলস" হিসাবে ডাকতে বলেনি, যেমন একজন ব্যক্তি অন্তর্নিহিত।
আমি সবেমাত্র রিশার্পার ব্যবহার শুরু করেছি এবং আমি যে প্রকল্পের জন্য দায়বদ্ধ সে সম্পর্কে সতর্কতা এবং স্টাইলের ইঙ্গিত দেওয়া শুরু করছে। এর মধ্যে হ'ল নির্দেশনা ব্যবহার করে অপ্রয়োজনীয় অপসারণ, তবে রিডানড্যান্ট কোয়ালিফায়ার, মূলধন এবং আরও অনেক কিছু। আমার অন্ত্র প্রবৃত্তি কোডটি পরিপাটি করা এবং সমস্ত ইঙ্গিতগুলি সমাধান করা, তবে আমার ব্যবসায়ের প্রধান আমাকে আনুষ্ঠানিক পরিবর্তনের বিরুদ্ধে সতর্ক করেছে।
আমরা একটি স্বয়ংক্রিয় বিল্ড প্রক্রিয়া ব্যবহার করি এবং সুতরাং আমাদের এসভিএন সংগ্রহস্থলটিতে যে কোনও পরিবর্তন ঘটে যা আমরা প্রকল্প / বাগ / ইস্যুগুলির সাথে লিঙ্ক করতে পারি না এমন পরিবর্তনগুলি উত্পন্ন করে এবং স্বয়ংক্রিয় বিল্ড এবং রিলিজগুলি ট্রিগার করে যা পূর্ববর্তী সংস্করণগুলিতে কোনও কার্যকরী পরিবর্তন দেয় না।
আমরা যদি রিডান্ট্যান্ট কোয়ালিফায়ার অপসারণের দিকে তাকাই তবে এটি সম্ভবত বিকাশকারীদের জন্য বিভ্রান্তির কারণ হতে পারে কারণ আমাদের ডোমেন এবং ডেটা স্তরগুলি কেবলমাত্র বাছাইকারীদের দ্বারা পৃথক করা হয়।
যদি আমি অ্যানোক্রোনামগুলির মূলধনের যথাযথ ব্যবহারের দিকে নজর রাখি (যেমন, এবিসিডি -> অ্যাবসিডি) তবে আমি বিবেচনায় রাখতে হবে যে রেসহার্পার সেই রেফারেন্স ক্লাসের নামগুলি ব্যবহার করি এমন কোনও এক্সএমএল ফাইলের রিফেক্টর দেয় না।
সুতরাং, এই ইঙ্গিতগুলি অনুসরণ করা যতটা সোজা-সামনের দিকে প্রদর্শিত হয় তেমনটি নয় এবং শ্রদ্ধার সাথে তাদের আচরণ করা উচিত।
ইতিমধ্যে প্রদত্ত কারণগুলি ছাড়াও এটি অপ্রয়োজনীয় নামকরণ বিরোধকে বাধা দেয়। এই ফাইলটি বিবেচনা করুন:
using System.IO;
using System.Windows.Shapes;
namespace LicenseTester
{
public static class Example
{
private static string temporaryPath = Path.GetTempFileName();
}
}
এই কোডটি সংকলন করে না কারণ নেমস্পেসিগুলি উভয়ই System.IO এবং System.Windows.Saps প্রত্যেককেই পথ নামে একটি বর্গ থাকে। আমরা পূর্ণ শ্রেণীর পথ ব্যবহার করে এটি ঠিক করতে পারতাম,
private static string temporaryPath = System.IO.Path.GetTempFileName();
অথবা আমরা কেবল লাইনটি সরাতে পারি using System.Windows.Shapes;
।
ইন্টেলিসেন্স পপআপে কম বিকল্প (বিশেষত যদি নেমস্পেসে প্রচুর পরিমাণে এক্সটেনশন পদ্ধতি থাকে)।
তাত্ত্বিকভাবে ইনটেলিসেন্সও দ্রুত হওয়া উচিত।
এগুলো মুছে ফেলো. দেখার জন্য কম কোড এবং সময় এবং বিভ্রান্তি সম্পর্কে সংরক্ষণ করে। আমি আশা করি আরও বেশি লোক এই জিনিসগুলিকে সহজ, সুন্দর এবং পরিচ্ছন্ন রাখবেন। এটি আপনার ঘরে নোংরা শার্ট এবং প্যান্ট থাকার মতো। এটি কুৎসিত এবং এটি কেন আছে তা আপনাকে ভাবতে হবে।
এটি মিথ্যা বিজ্ঞপ্তি নির্ভরতা রোধ করতেও সহায়তা করে, ধরে নিই আপনি অব্যবহৃত ব্যবহারগুলি অপসারণের পরে আপনার প্রকল্প থেকে কিছু dll / প্রকল্পের রেফারেন্সগুলি সরাতে সক্ষম হবেন।
কোডটি দ্রুত সংকলন করে।
অব্যবহৃত আমদানি মোছা কেন বেশ সহায়ক এবং গুরুত্বপূর্ণ তা সম্প্রতি আমি অন্য একটি কারণ পেয়েছি।
কল্পনা করুন যে আপনার দুটি সম্মেলন রয়েছে, যেখানে একটিতে অন্যটি উল্লেখ করা হয় (আপাতত প্রথমটিকে কল করুন A
এবং রেফারেন্স করা B
)। এখন আপনার A তে কোড রয়েছে যা বি এর উপর নির্ভর করে সবকিছু ঠিক আছে। তবে আপনার বিকাশ-প্রক্রিয়াটির কোনও পর্যায়ে আপনি লক্ষ্য করেছেন যে আপনার আসলে সেই কোডটির আর কোনও দরকার নেই তবে আপনি ব্যবহার-বিবৃতিটি যেখানে রেখেছিলেন সেখানে রেখে যান। এখন আপনি শুধুমাত্র একটি অর্থহীন আছে using
-directive কিন্তু একটি সমাবেশ-রেফারেন্স করার B
যা যে কোন জায়গায় ব্যবহার করা হয় না কিন্তু অপ্রচলিত নির্দেশ করে। এটি প্রথমে সংকলনের জন্য প্রয়োজনীয় সময়ের পরিমাণ বাড়িয়ে তোলে A
, যেমন B
লোডও করতে হয়।
সুতরাং এটি কেবল পরিষ্কার এবং সহজ কোড পড়ার ক্ষেত্রেই নয়, উত্পাদন-কোডেও সমাবেশ-রেফারেন্স বজায় রাখার ক্ষেত্রে যেখানে এই সমস্ত রেফারেন্সিয়াল অ্যাসেমব্লিগুলির উপস্থিতি নেই ।
অবশেষে আমাদের এক্সপামলে আমাদের বি এবং এ একসাথে শিপিং করতে হয়েছিল, যদিও বি এ-তে কোথাও ব্যবহৃত হয় না তবে- using
সেশনে ব্যবহৃত হয়। এটি সমাবেশটি লোড করার সময় রানটাইম- পারফরম্যান্সকে ব্যাপকভাবে প্রভাবিত করবে ।A
কমপক্ষে তত্ত্ব অনুসারে, যদি আপনাকে একটি সি # .cs ফাইল (বা কোনও একক প্রোগ্রামের উত্স কোড ফাইল) দেওয়া হয়, আপনি কোডটি দেখতে এবং এমন একটি পরিবেশ তৈরি করতে সক্ষম হবেন যা তার প্রয়োজনীয় সমস্ত কিছুকে অনুকরণ করে। কিছু সংকলন / পার্সিং কৌশল সহ আপনি এটি স্বয়ংক্রিয়ভাবে করার জন্য একটি সরঞ্জামও তৈরি করতে পারেন। এটি যদি আপনার অন্তত মনের মধ্যে থেকে করা হয় তবে আপনি কোড ফাইল যা বলেছে তা আপনি বুঝতে পেরেছেন তা নিশ্চিত করতে পারেন।
এখন বিবেচনা করুন, যদি আপনাকে 1000 using
নির্দেশাবলী সহ একটি .cs ফাইল দেওয়া হয় যা কেবলমাত্র 10 ব্যবহার করা হয়েছিল। যখনই আপনি বাইরের বিশ্বের তথ্যসূত্রটি কোডটিতে নতুনভাবে প্রবর্তিত একটি প্রতীকটি দেখেন, এটি কী তা নির্ধারণ করার জন্য আপনাকে সেই 1000 লাইনের মধ্য দিয়ে যেতে হবে। এটি অবশ্যই উপরের পদ্ধতিটি ধীর করে দেয়। সুতরাং আপনি যদি তাদের 10 এ কমাতে পারেন তবে এটি সাহায্য করবে!
আমার মতে, সি # using
নির্দেশিকাটি খুব দুর্বল, যেহেতু আপনি উদারতা হারিয়ে না করে একক জেনেরিক প্রতীক নির্দিষ্ট করতে পারবেন না এবং আপনি using
এক্সটেনশন পদ্ধতিগুলি ব্যবহারের জন্য উপনাম নির্দেশ ব্যবহার করতে পারবেন না । জাভা, পাইথন এবং হাস্কেল এর মতো অন্যান্য ভাষায় এটি নয়, সেই ভাষাগুলিতে আপনি বাইরের পৃথিবী থেকে ঠিক কী চান তা (প্রায়) নির্দিষ্ট করতে সক্ষম হন। তবে এরপরে ইভেন্টটি, using
যখনই সম্ভব হবে তখনই আমি ওরফে ব্যবহার করার পরামর্শ দেব ।