কোন কারণে আমাকে সি # তে "ব্যবহার" বিভাগটি পরিষ্কার রাখতে হবে?


11

একবার যখন আমি আমার কোডটি রিফ্যাক্ট করছিলাম তখন আমি আমার সি # ক্লাসের ব্যবহার বিভাগে আইডিইতে গিয়েছিলাম এবং অব্যবহৃত নেমস্পেস এবং সদৃশ নেমস্পেসগুলি পরিষ্কার করে সমস্তগুলি সাজিয়েছি

আমার জুটি (জোড় প্রোগ্রামিং) আমাকে কারণ জিজ্ঞাসা করেছিল। আমি কেন জানি তা জানতাম না। আমার সমস্ত কোড পরিষ্কার এবং পরিচ্ছন্ন রাখা আমার অভ্যাসের বাইরে রেখেছিলাম। আমি বোঝাতে চাইছি, আমি তাকে বলেছিলাম যে ক্লিনার কোড থাকা সাধারণভাবে একটি ভাল ধারণা, তবে অবশ্যই সেই কারণটি কোনও ন্যায়সঙ্গততা ছিল না, কারণ আমি কোনও সি # কোড পৃষ্ঠার ব্যবহার বিভাগে আমার সময় ব্যয় করতেও বিরক্ত করব না ।

যেহেতু আপনি একটি ক্লাস বা একটি এনাম (বা সাধারণভাবে একটি টাইপ) এক নেমস্পেস থেকে অন্য নেমস্পেসে সরিয়ে নিয়েছেন এবং এটি আপনার কোডে স্টেটমেন্ট ব্যবহার করে নতুন যুক্ত করে (হয় নিজেই কোড উইন্ডোতে গিয়ে এবং নিজেই বিবৃতিটি লিখে লেখার মাধ্যমে, বা সম্পাদকের মাধ্যমে Alt+ Ctrl+ F10সংমিশ্রণটি ব্যবহার করে ) এবং যেহেতু এই নতুন ব্যবহারের বিবৃতিটি বিভাগের ব্যবহারের শেষে যুক্ত করা হত , যা তাদের বর্ণমালা অনুসারে বাছাই করা যায় না এবং সংকলক যেহেতু এই সমস্যাগুলির বিষয়ে কখনও অভিযোগ করে না, তাই কেন আমাদের এটি করা উচিত? বিভাগ পরিষ্কার এবং পরিপাটি? আমাদের কী কারণ থাকতে পারে?


5
ইতিমধ্যে জিজ্ঞাসা করা হয়েছে এবং স্ট্যাক ওভারফ্লো উত্তর - stackoverflow.com/questions/4163320/unused-using-statements (এবং পার্শ্ব বারে দুই লিঙ্ক প্রশ্ন) - মূলত সেখানে অব্যবহৃত usings সম্পর্কে চিন্তা করতে কোন কারণে
ChrisF

@ ক্রিসএফের দুর্দান্ত রেফারেন্স, আমার মনে হয় আমি আমার উত্তর পেয়েছি। হতে পারে আপনার সেই প্রশ্নটির সাথে প্রশ্নে যোগ দেওয়া উচিত বা অনুরূপ কিছু করা উচিত। :)
সা Saeedদ নেমতি

: এই এছাড়াও চেক আউট stackoverflow.com/a/136646/333306

উত্তর:


22

usingআপনার কতগুলি নির্দেশনা রয়েছে তা বিবেচনার সাথে পারফরম্যান্সের কোনও পার্থক্য নেই ।

তবে আমি মনে করি এগুলি দুটি কারণে পরিষ্কার রাখার অর্থ হয়েছে:

  1. যদি আপনি এর দিকে লক্ষ্য করেন তবে usingদেখতে পাবেন ফাইলটির কী নির্ভরতা রয়েছে। এটি আপনাকে ফাইলের ধরণ (গুলি) কী করে তা নির্ধারণ করতে সহায়তা করতে পারে। আপনি যদি এটি করেন তবে usingএকটি নির্দিষ্ট ক্রমে এটি আপনাকে দ্রুত দেখতে সহায়তা করে।
  2. আপনার যদি খুব বেশি পরিমাণ থাকে তবে usingএটি ইঙ্গিত দিতে পারে যে আপনার উদ্বেগের দুর্বলতা রয়েছে এবং ফাইলের ধরণ (গুলি) খুব বেশি করে।

এই দুটিই খুব গুরুত্বপূর্ণ নয়, তাই আপনার এটি সম্পর্কে খুব বেশি চিন্তা করা উচিত নয়। তবে ব্যক্তিগতভাবে, আমি মনে করি এটি usingপরিষ্কার রাখার পক্ষে এটি মূল্যবান হয়ে উঠছে ।


8

ব্যবহারের বিবৃতিগুলির মধ্যে পরিষ্কার করার জন্য আমার প্রধান কারণগুলি হ'ল:

  • বিবৃতি যত বেশি ব্যবহার করা হবে তত দ্বন্দ্ব নামকরণের সম্ভাবনা যার অর্থ এই যে আপনি অস্পষ্টতা এড়াতে কোডের মধ্যে নামের জায়গাগুলি অন্তর্ভুক্ত করতে হবে।
  • আপনার ব্যবহারের বিবৃতিগুলিতে সমস্ত সমাবেশগুলির ভিত্তিতে ইন্টেলিসেন্স ফিল্টার করা হয়। অতএব যদি আপনি এটি অপ্রয়োজনীয় বিবৃতি থেকে পরিষ্কার করেন তবে আপনি ইন্টেলিজেন্সের নির্ভুলতার সাথে সহায়তা করে নিজেকে সহায়তা করবেন।

সর্বোপরি আমি অন্যান্য উত্তরের সাথে একমত হয়েছি যাতে এটি পঠনযোগ্যতা বাড়ে এবং শ্রেণীর ধরণ (গুলি) কী করে সে সম্পর্কে ধারণা পাওয়া সহজ করে তোলে।


আমি কেন বুঝতে পারছি না কেন এটি বেশি ভোট দেওয়া হয়নি। নেমস্পেস বিরোধগুলি একটি বৈধ সমস্যা are
রাবারডাক

7

"যুক্ত করার মতো কিছুই অবশিষ্ট নেই তখন সিদ্ধি অর্জন হয় না, তবে যখন কেড়ে নেওয়ার মতো কিছুই থাকে না" - এন্টোইন ডি সেন্ট-এক্সুপেরি

যখনই আপনি এমন কিছু অপসারণ করতে পারেন যা প্রয়োজনীয় নয় এবং বোঝাপড়া যুক্ত করে না, তা করুন (পাঠযোগ্যতার অতিরিক্ত কোডের মূল্য রয়েছে)।


দুর্দান্ত অ্যাফোরিজম। আমার ধারণাটি পছন্দ হয়েছে। +1;)
সা Saeedদ নেমাতি

4

এটি কেবল সংকেত থেকে শব্দকে সরিয়ে দিচ্ছে। কম গোলমাল মানে সিগন্যালটি পাওয়া সহজ, অর্থাত্ কোডের উদ্দেশ্যটি বোঝা।

শব্দের জেনারেটর হিসাবে এটি যদিও বেশ সুন্দর।


2
  • এটি আপনার কোডের পঠনযোগ্যতা উন্নত করে।
  • সাধারণত যদি আপনার কাছে কয়েকটি স্টেটমেন্ট ব্যবহার করে থাকে তবে এই গাইডলাইনটি অনুসরণ করা আপনার পক্ষে সামান্য জ্ঞানযুক্ত

  • বিভাগগুলিতে বিবৃতি ব্যবহার করে পৃথক করা আরও বেশি অর্থবোধ করে।

উদাহরণ স্বরূপ:

    using System.Web;

    using MyPlatform.FooX;        
    using MyPlatform.FooY;

    using MyFramework.Helpers;        
    using MyFramework.Extentions;

আমি যদি ক্লাসটির দিকে নজর রাখি, তবে আমি তাত্ক্ষণিকভাবে দেখতে পাচ্ছি যে প্রদত্ত বর্গটি সিস্টেম.ওয়েব অ্যাসেম্বলি, পাশাপাশি আমাদের প্ল্যাটফর্ম এবং কাঠামোটি ব্যবহার করছে। এটি আমাকে এর নির্ভরতা এবং জটিলতার সম্পর্কে মোটামুটি ধারণা দেয়।

তারপরে আপনি এটিকে আরও একধাপ এগিয়ে নিয়ে যেতে পারেন এবং বিবৃতিগুলি অর্ডার করতে পারেন, তবে আমি মনে করি এটি বিবৃতিগুলি কম পাঠযোগ্য করে তোলে তাই আমি এটির পরামর্শ দেব না।

using MyFramework.Extentions;
using MyFramework.Helpers;

using System.Web;

using MyPlatform.FooX;        
using MyPlatform.FooY;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.