আমাকে একটি বড় সি # অ্যাপ্লিকেশনটির রিফ্যাক্টর করতে হবে এবং আমি প্রচুর ফাংশন পেয়েছি যা কখনই ব্যবহৃত হয় না। আমি কীভাবে অব্যবহৃত কোড যাচাই করতে পারি, তাই আমি সমস্ত অব্যবহৃত ফাংশন সরিয়ে ফেলতে পারি?
আমাকে একটি বড় সি # অ্যাপ্লিকেশনটির রিফ্যাক্টর করতে হবে এবং আমি প্রচুর ফাংশন পেয়েছি যা কখনই ব্যবহৃত হয় না। আমি কীভাবে অব্যবহৃত কোড যাচাই করতে পারি, তাই আমি সমস্ত অব্যবহৃত ফাংশন সরিয়ে ফেলতে পারি?
উত্তর:
হ্যাঁ, রিশার্পার এটি করে। আপনার সমাধান এবং সিলেক্ট করুন "কোডের সমস্যাগুলি অনুসন্ধান করুন" এ ডান ক্লিক করুন। ফলাফলগুলির মধ্যে একটি হ'ল "অব্যবহৃত প্রতীক"। এটি আপনাকে ক্লাস, পদ্ধতি ইত্যাদি দেখায় যা ব্যবহৃত হয় না।
এটি একটি দুর্দান্ত প্রশ্ন, তবে সতর্ক হতে হবে যে আপনি এখানে বিপজ্জনক জলে পা চালাচ্ছেন। আপনি যখন কোড মুছে ফেলছেন তখন আপনাকে নিশ্চিত করতে হবে যে আপনি প্রায়শই সংকলন এবং পরীক্ষা করছেন।
একটি দুর্দান্ত সরঞ্জাম মনে আসবে:
এনডিপেন্ডেড - এই সরঞ্জামটি কেবল আশ্চর্যজনক। কুঁচকে উঠতে কিছুটা সময় লাগে এবং প্রথম 10 মিনিটের পরে আমি মনে করি বেশিরভাগ বিকাশকারী কেবল "এটি স্ক্রু!" এবং অ্যাপ্লিকেশন মুছুন। একবার আপনি এনডিপেন্ডেন্টের জন্য একটি ভাল অনুভূতি পাওয়ার পরে এটি আপনাকে কীভাবে আপনার অ্যাপ্লিকেশনগুলিতে মিলিত হয় সে সম্পর্কে আশ্চর্য অন্তর্দৃষ্টি দেয়। এটি পরীক্ষা করে দেখুন: http : //www.nd depend.com/ । সর্বাধিক গুরুত্বপূর্ণ, এই সরঞ্জামটি আপনাকে এমন পদ্ধতিগুলি দেখার অনুমতি দেবে যার কোনও সরাসরি কলার নেই। এটি আপনাকে বিপরীতটিও দেখায়, সমাবেশে যে কোনও পদ্ধতির (বা এমনকি সমাবেশগুলির মধ্যেও) সম্পূর্ণ কল ট্রি।
আপনি যে কোনও সরঞ্জাম বেছে নিন না কেন এটি হালকাভাবে নেওয়া কোনও কাজ নয়। বিশেষত যদি আপনি লাইব্রেরির ধরণের অ্যাসেমব্লিতে জনসাধারণের পদ্ধতি নিয়ে কাজ করছেন, কারণ কোনও অ্যাপ কখন সেগুলি উল্লেখ করছে তা আপনি কখনই জানতে পারবেন না।
নির্দেশিত জেফ হিসাবে সরঞ্জামটি এনডিপেন্ডেড অব্যক্ত পদ্ধতি, ক্ষেত্র এবং প্রকারগুলি খুঁজে পেতে সহায়তা করতে পারে।
কিছুটা বিস্তৃত করার জন্য, এনডিপেন্ডল লিনকিউ কোয়েরি (সিসিকিউএলএনকি) এর উপরে কোড রুল লেখার প্রস্তাব দিয়েছে । প্রায় 200 টি ডিফল্ট কোড বিধি প্রস্তাব করা হয়, এর মধ্যে 3 টি অব্যবহৃত / মৃত কোড সনাক্তকরণের জন্য উত্সর্গীকৃত
মূলত অব্যবহৃত পদ্ধতি সনাক্ত করার জন্য এই জাতীয় নিয়ম উদাহরণস্বরূপ:
// <Name>Dead Methods</Name>
warnif count > 0
from m in Application.Methods where !m.MethodsCallingMe.Any()
select m
তবে এই নিয়মটি নিষ্পাপ এবং তুচ্ছ মিথ্যা ইতিবাচক প্রত্যাবর্তন করবে। অনেকগুলি পরিস্থিতি রয়েছে যেখানে কোনও পদ্ধতি কখনই ডাকা হয় না তবে এটি অব্যবহৃত হয় না (এন্ট্রি পয়েন্ট, শ্রেণি নির্মাতা, চূড়ান্তকরণকারী ...) এ কারণেই 3 টি ডিফল্ট নিয়ম আরও বিশদযুক্ত:
এনডিপেন্ডেজ ভিজ্যুয়াল স্টুডিও 2017,2015, 2013, 2012, 2010 এ সংহত করে, সুতরাং এই নিয়মগুলি আইডিইর ভিতরে সঠিকভাবে ব্রাউজ / সম্পাদনা করা যায় । সরঞ্জামটি আপনার সিআই প্রক্রিয়াতেও সংহত করা যায় এবং এটি এমন প্রতিবেদন তৈরি করতে পারে যা নিয়ম লঙ্ঘনকারী এবং অপরাধী কোড উপাদানগুলি দেখায়। এনডিপেন্ডের একটি ভিএস টিম পরিষেবাদি এক্সটেনশনও রয়েছে ।
আপনি যদি এই বিধিগুলির উত্স কোডের জন্য উপরের এই 3 টি লিঙ্ককে ক্লিক করেন তবে আপনি দেখতে পাবেন যে প্রকার এবং পদ্ধতিগুলি সম্পর্কিত কিছুটি জটিল। কারণ তারা না শুধুমাত্র অব্যবহৃত ধরনের ও পদ্ধতি, কিন্তু ধরনের এবং পদ্ধতি ব্যবহার সনাক্ত এই শুধুমাত্র অব্যবহৃত মৃত ধরনের এবং পদ্ধতি (রিকার্সিভ) দ্বারা।
এটি স্থির বিশ্লেষণ , সুতরাং নিয়মের নামগুলিতে সম্ভাব্য উপসর্গ । যদি কোনও কোড উপাদানটি কেবল প্রতিবিম্বের মাধ্যমে ব্যবহার করা হয়, তবে এই বিধিগুলি এটিকে অব্যবহৃত হিসাবে বিবেচনা করতে পারে যা এটি নয়।
এই 3 টি নিয়ম ব্যবহার করা ছাড়াও, আমি পরীক্ষার দ্বারা কোড কভারেজ পরিমাপ করার এবং পূর্ণ কভারেজ দেওয়ার জন্য চেষ্টা করার পরামর্শ দেব। প্রায়শই, আপনি সেই কোডটি দেখতে পাবেন যা পরীক্ষাগুলি দ্বারা আচ্ছাদন করা যায় না, এটি আসলে অব্যবহৃত / মৃত কোড যা নিরাপদে বাতিল করা যেতে পারে। এটি জটিল অ্যালগরিদমগুলিতে বিশেষত কার্যকর যেখানে কোডের কোনও শাখা পৌঁছনীয় কিনা তা পরিষ্কার নয়।
দাবি অস্বীকার: আমি এনডিপেন্ডেন্টের পক্ষে কাজ করি।
আমি আরও উল্লেখ করব যে আইওসি ওরফে ইউনিটি ব্যবহার করা এই মূল্যায়নগুলিকে বিভ্রান্তিকর করে তুলতে পারে। আমি ভুল করে থাকতে পারি তবে বেশ কয়েকটি গুরুত্বপূর্ণ ক্লাস যা ইউনিটির মাধ্যমে ইনস্ট্যান্ট করা হয় সেখানে রিসার্পার যতটা বলতে পারে তেমন কোনও ইনস্ট্যান্টেশন নেই বলে মনে হয়। আমি যদি রিশার্পার সুপারিশগুলি অনুসরণ করি তবে আমি হোজে উঠব!
সত্য কথাটি হল যে সরঞ্জামটি আপনাকে কখনই 100% নির্দিষ্ট উত্তর দিতে পারে না, তবে কভারেজ সরঞ্জাম আপনাকে অর্থের জন্য বেশ ভাল রান দিতে পারে।
আপনি যদি একক ইউনিট টেস্ট স্যুইটের সাথে গণনা করেন তবে আপনি পরীক্ষার সময় ঠিক কী কোডের রেখাগুলি কার্যকর করা হয়নি তা দেখতে টেস্ট কভারেজ সরঞ্জামটি ব্যবহার করতে পারেন। আপনার এখনও কোডটি ম্যানুয়ালি বিশ্লেষণ করতে হবে: হয় আপনি ডেড কোড হিসাবে বিবেচনা করছেন তা নির্ধারণ করুন বা পরীক্ষার কভারেজটি উন্নত করতে পরীক্ষা লিখুন।
এ জাতীয় একটি সরঞ্জাম হ'ল এনকোভার , সোর্সফোর্জে ওপেন সোর্স পূর্ববর্তী সঙ্গে । আর একটি বিকল্প পার্টকভার ।
এই উত্তরটি স্ট্যাকওভারফ্লোতে দেখুন।
এফএক্সকপ একটি কোড বিশ্লেষক ... এটি অব্যবহৃত কোড আবিষ্কারের চেয়ে অনেক বেশি কাজ করে। আমি কিছু সময়ের জন্য এফএক্সকপ ব্যবহার করেছি এবং এর প্রস্তাবনায় এতটাই হারিয়ে গিয়েছিলাম যে আমি এটি আনইনস্টল করেছিলাম।
আমি মনে করি এনডিপেন্ড আরও সম্ভাব্য প্রার্থীর মতো দেখাচ্ছে।