জাভা প্রকল্পগুলিতে অব্যবহৃত / মৃত কোড কীভাবে খুঁজে পাবেন [বন্ধ]


306

বড় জাভা প্রকল্পগুলিতে অব্যবহৃত / মৃত কোড খুঁজতে আপনি কোন সরঞ্জামগুলি ব্যবহার করেন? আমাদের পণ্যটি কয়েক বছর ধরে বিকাশে রয়েছে এবং ম্যানুয়ালি কোডটি সনাক্ত করা খুব কঠিন হয়ে উঠছে যা আর ব্যবহারযোগ্য নয়। আমরা যতটা সম্ভব অব্যবহৃত কোড মোছার চেষ্টা করি না।

সাধারণ কৌশল / কৌশলগুলির জন্য পরামর্শগুলি (নির্দিষ্ট সরঞ্জামগুলি ব্যতীত) প্রশংসা করা হয়।

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


16
ইউনিট পরীক্ষাগুলি একটি পৃথক উত্স ট্রিতে রাখুন (আপনার যাহাই হউক না কেন) এবং কেবল লাইভ ট্রিটিতে কভারেজ সরঞ্জামগুলি চালান।
অগ্নুল

5
আমি আইডিইএর "অব্যবহৃত ঘোষণা" পরিদর্শন এবং আনচেক দিয়ে শুরু করব পরীক্ষার উত্স অন্তর্ভুক্ত করা যাচাই করা দিয়ে শুরু করব । আপনি যখন আইডিইএর "সামান্য সহায়তার" কথা বলছেন তখন আপনি কী বোঝাতে চেয়েছেন তা কি আপনি পরিষ্কার করতে পারেন?
ডেভিড মোলস

1
মৃত কোড সন্ধানের উপায়: 1) বাইরের কোনও কিছুর সাথে লিঙ্কযুক্ত নয়। 2) রানটাইমের সাথে সংযুক্ত থাকা সত্ত্বেও বাইরে থেকে ব্যবহার করা হয়নি। 3) লিঙ্কযুক্ত এবং কল কিন্তু কখনও ডেড ভেরিয়েবলের মতো ব্যবহৃত হয় না। 4) যৌক্তিকভাবে অ্যাক্সেসযোগ্য অবস্থা। সুতরাং লিঙ্কিং, সময়ের সাথে অ্যাক্সেস, যুক্তি ভিত্তিক, অ্যাক্সেসের পরে ব্যবহার করুন।
মুহাম্মদ উমর

ব্যবহারের IntelliJ আইডিয়া এবং আমার উত্তর এখান থেকে: stackoverflow.com/questions/22522013/... :)
BlondCode

ডেভিড মোলের উত্তরের সাথে যুক্ত: এই উত্তরটি দেখুন stackoverflow.com/a/6587932/1579667
বেঞ্জ

উত্তর:


40

কোড ব্যবহারের লগগুলি রাখার জন্য আমি চলমান সিস্টেমকে উপকরণ করব এবং তারপরে কয়েক মাস বা বছর ব্যবহার করা হয় না এমন কোডটি পরীক্ষা করা শুরু করব।

উদাহরণস্বরূপ যদি আপনি অব্যবহৃত ক্লাসগুলিতে আগ্রহী হন, দৃষ্টান্তগুলি তৈরি হওয়ার সময় সমস্ত ক্লাস লগতে চালিত হতে পারে। এবং তারপরে একটি ছোট স্ক্রিপ্ট অব্যবহৃত ক্লাসগুলি অনুসন্ধানের জন্য ক্লাসের সম্পূর্ণ তালিকার সাথে এই লগগুলি তুলনা করতে পারে।

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


5
আমি এই উত্তরটি পছন্দ করি তবে প্রত্যেক শ্রেণিতে লগইনটি স্পষ্টভাবে যোগ না করে কীভাবে জাভাতে এটি করা যায় তা সম্পর্কে কারও কি ধারণা আছে? কিছু 'প্রক্সি' ম্যাজিক হতে পারে?
আউটলা প্রোগ্রামার

14
@ আউটলা এওপি এটির জন্য নিখুঁত ব্যবহারের কেস বলে মনে হচ্ছে।
পাসকাল থিভেন্ট

6
আপনি যদি অ্যাপ্লিকেশনটির ক্লাসলোডিং কাঠামোটি বুঝতে পারেন তবে ক্লাসলোডার ইভেন্টগুলি ট্র্যাক করতে আপনি ক্লাস লোডারে এওপি ব্যবহার করতে পারেন। এটি সমস্ত নির্মাণকারীর পরামর্শের চেয়ে কোনও উত্পাদন ব্যবস্থায় কম আক্রমণাত্মক হবে।
শাব্বুডু

5
এই উত্তরটি গতিশীল ভাষার পক্ষে বেশ ভাল তবে স্থির ভাষার জন্য ভয়ানক যা আরও ভাল করতে পারে। স্ট্যাটিকালি টাইপ করা ভাষার সাথে (প্রতিবিম্ব বাদ দিয়ে) আপনি নিশ্চিতভাবে জানতে পারবেন কোন পদ্ধতিগুলি সঠিকভাবে ব্যবহৃত হয় এবং কোনটি নয়, এটি স্ট্যাটিক্যালি টাইপ করা ভাষার সবচেয়ে বড় সুবিধা এবং এটি এখানে বর্ণিত বর্ণনামূলক পদ্ধতির পরিবর্তে আপনার ব্যবহার করা উচিত ।
বিল কে

4
@ বিল্ক আপনার ভাবনার চেয়ে বেশি প্রতিচ্ছবি ঘটবে। উদাহরণস্বরূপ স্প্রিং প্রতিচ্ছবি সহ কভারের নিচে বেশ কিছুটা যাদু করে। আপনার বিশ্লেষণ সরঞ্জাম অবশ্যই তা অনুকরণ করতে হবে।
থোরবজর্ন রাভন অ্যান্ডারসন

220

একটি Eclipse প্লাগইন যা যুক্তিসঙ্গতভাবে ভাল কাজ করে তা হ'ল Unused Code Detector

এটি একটি সম্পূর্ণ প্রকল্প বা একটি নির্দিষ্ট ফাইল প্রক্রিয়া করে এবং বিভিন্ন অব্যবহৃত / মৃত কোড পদ্ধতিগুলি দেখায়, পাশাপাশি দৃশ্যমানতার পরিবর্তনের (যেমন একটি পাবলিক পদ্ধতি যা সুরক্ষিত বা ব্যক্তিগতভাবে সুরক্ষিত হতে পারে) প্রস্তাব করে।


দেখতে দুর্দান্ত লাগছে তবে আমি এটি কাজ করতে সক্ষম হইনি - "সনাক্ত করুন আন ... কোড" ক্রিয়াটি অক্ষম রয়েছে এবং আমি এটি সক্ষম করার উপায় খুঁজে পাই না।
ওন্দ্রা Žižka

1
প্রকৃতপক্ষে অব্যবহৃত পদ্ধতিগুলি সন্ধান করুন, তবে এটিও আবিষ্কার করুন যে আমার ইজেবিগুলি অব্যবহৃত হচ্ছে (তারা থাকাকালীন) কারণ আমি ব্যবসায়ের প্রতিনিধি প্যাটার্ন ডিজাইন ব্যবহার করছি
এলডোসা

এটি এখনও কেপলার উপর কাজ করে? রিলিজগুলি গ্রহন ৩.৮ সম্পর্কে বলে: ucdetector.org/relayss.html
Mr_and_Mrs_D

কেপলারের উপর নিখুঁত কাজের অবস্থায় রয়েছে বলে মনে হয়।
এরিক কাপলুন

4
আপনি কি মার্কেটপ্লেস মার্কেটপ্লেস.স্লিপস.আর / কনটেন্ট / অপ্রয়োজনীয়- কোড- ডিটেক্টরটিতে একটি লিঙ্ক যুক্ত করতে চান ? এটি Eclipse এর নতুন সংস্করণে সমর্থিত কিনা তা প্রশ্নের উত্তর ইনস্টল করা সহজ করে তোলে।
থমাস ভেলার

64

কোডপ্রো সম্প্রতি গুগল দ্বারা ইলিপস প্রকল্পটি প্রকাশ করেছে। এটি নিখরচায় এবং অত্যন্ত কার্যকর। প্লাগইনে একটি / বহু প্রবেশের পয়েন্ট (গুলি) সহ একটি ' ডেড কোড খুঁজুন ' বৈশিষ্ট্য রয়েছে। বেশ ভাল কাজ করে।


1
গ্রাহ্য কেপলার দিয়ে আর কাজ করবে না। আপডেট সাইটের মাধ্যমে সফলতার সাথে এটি ইনস্টল করার পরে, এটি প্রতিবারের জন্য গ্রহন ক্রাশ করে।
txulu

দুর্ভাগ্যক্রমে, দেখে মনে হচ্ছে এই সরঞ্জামটি বসন্তের অস্তিত্ব বুঝতে পারে না, সুতরাং এটি আমার সমস্ত @ উপাদানগুলি অব্যবহৃত হিসাবে ভুল হিসাবে চিহ্নিত করবে
ক্লিন্ট ইস্টউড

খুব পুরানো হয়ে উঠুন আর কোনও Last updated this plugin March 27, 2012 বিকাশকারী
com

2
সমস্ত লিঙ্ক পুরানো হয়।
zygimantus

3
দুর্ভাগ্যক্রমে এটি প্রদর্শিত হয় যে গুগল একটিগ্রাহী প্রকল্পে কোডটি ফেলে দিয়েছে এবং এটি সব ভুলে গেছে।
থোরবজর্ন রাভন অ্যান্ডারসন

30

আমি অবাক প্রোগার্ড এখানে উল্লেখ করা হয়নি। এটি আশেপাশের সবচেয়ে পরিপক্ক পণ্যগুলির মধ্যে একটি।

প্রোগুয়ার্ড হ'ল একটি ফ্রি জাভা ক্লাস ফাইল সঙ্কুচিতকারী , অপ্টিমাইজার, অবফসেক্টর এবং প্রিভারিফায়ার। এটি অব্যবহৃত শ্রেণি, ক্ষেত্র, পদ্ধতি এবং বৈশিষ্ট্যগুলি সনাক্ত এবং সরিয়ে দেয়। এটি বাইটকোডটি অনুকূল করে এবং অব্যবহৃত নির্দেশাবলী সরিয়ে দেয়। এটি সংক্ষিপ্ত অর্থহীন নাম ব্যবহার করে অবশিষ্ট ক্লাস, ক্ষেত্র এবং পদ্ধতিগুলির নাম পরিবর্তন করে। অবশেষে, এটি জাভা 6 বা জাভা মাইক্রো সংস্করণের জন্য প্রক্রিয়াজাত কোডটি পূর্বনির্ধারিত করে।

প্রোগার্ডের কয়েকটি ব্যবহার হ'ল:

  • ছোট কোড সংরক্ষণাগারগুলির জন্য, আরও নেটওয়ার্কে দ্রুত স্থানান্তর, দ্রুত লোডিং এবং ছোট মেমরির ছাপগুলির জন্য আরও কমপ্যাক্ট কোড তৈরি করা।
  • বিপরীত প্রকৌশলী থেকে আরও শক্তিশালী প্রোগ্রাম এবং গ্রন্থাগার তৈরি করা।
  • ডেড কোড তালিকাভুক্ত করা হচ্ছে, সুতরাং এটি উত্স কোড থেকে সরানো যেতে পারে।
  • তাদের দ্রুত বর্গ লোডিংয়ের পুরো সুবিধা নিতে জাভা 6 বা ততোধিক সময়ের জন্য বিদ্যমান ক্লাস ফাইলগুলি পুনরায় তৈরি করা এবং প্রেরিফাইরি করা।

এখানে তালিকাবদ্ধ ডেড কোডের জন্য উদাহরণ: https://www.guardsquare.com/en/products/proguard/manual/example#deadcode


8
একটি নমুনা ব্যবহার সরবরাহ করা আরও ভাল উত্তর দিতে পারে।
আরডিএস

1
ডকুমেন্টেশন পড়া, আমি দেখতে পাচ্ছি যে এটি অব্যবহৃত কোড সঙ্কুচিত করে, তবে যেখানে এটি এটি তালিকাভুক্ত করে সেখানে কোথাও খুঁজে পাচ্ছি না - সম্মত, উদাহরণ বা ডকুমেন্টেশনের সংশ্লিষ্ট বিভাগের লিঙ্ক, বেশ সহায়ক হবে!
অরবফিশ

26

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

তবে এটি খুব ম্যানুয়াল।


4
সম্ভবত আদর্শ উত্তর নয় তবে এটি সত্যই চালাক।
এরিক পুনরায়

8
এটি বুদ্ধিমান ... যতক্ষণ না আপনি অন্য ক্লাসের অব্যবহৃত কোড থেকে কল না পেয়ে।
ড্যানোসরে

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

15

আপনার কোডবেস ইনস্ট্রুমেন্ট করার জন্য একটি পরীক্ষার কভারেজ সরঞ্জামটি ব্যবহার করুন, তারপরে নিজেই অ্যাপ্লিকেশনটি চালান, পরীক্ষাগুলি নয়।

এমা এবং ইলেকমা আপনার কোডের যে কোনও রান দেওয়ার জন্য কত শতাংশ ক্লাস চালাচ্ছে তার কত শতাংশ তার সুন্দর প্রতিবেদন দেবে।


1
এটির জন্য +1 এটি একটি ভাল প্রারম্ভিক বিন্দু তবে মনে রাখবেন যে উদ্বোধিত (এখনও ঘোষিত) ভেরিয়েবলগুলিও সবুজতে আসবে।
DerMike

13

রিফ্যাক্টরিংয়ের জন্য আমরা আমাদের কোডবেসের টার্গেট সমৃদ্ধ পরিবেশের কিছু ফান সনাক্ত করতে সহায়তা করতে বাগ সন্ধান করতে শুরু করেছি । আমি আপনার কোডবেসের আর্কিটেকচারের স্পটগুলি সনাক্ত করার জন্য স্ট্রাকচার 101 কেও বিবেচনা করব যা খুব জটিল, তাই আপনি জানেন যে আসল সোয়াম্পগুলি কোথায়।


4
ফাইন্ডব্যাগগুলি মৃত এবং অব্যবহৃত কোড সনাক্ত করতে পারে না, কেবল অব্যবহৃত ক্ষেত্র। এই উত্তর দেখুন ।
স্টিফান মেকের

12

তত্ত্ব অনুসারে, আপনি নির্বিচারে অব্যবহৃত কোড খুঁজে পাবেন না। এটির গাণিতিক প্রমাণ রয়েছে (ভাল, এটি আরও সাধারণ উপপাদ্যের একটি বিশেষ ক্ষেত্রে)। আপনি যদি কৌতূহলী হন, তবে হ্যালটিং সমস্যাটি দেখুন।

এটি জাভা কোডে নিজেকে বিভিন্নভাবে প্রকাশ করতে পারে:

  • ব্যবহারকারী ইনপুট, কনফিগার ফাইল, ডাটাবেস এন্ট্রি ইত্যাদির উপর ভিত্তি করে ক্লাস লোড হচ্ছে;
  • বাহ্যিক কোড লোড হচ্ছে;
  • তৃতীয় পক্ষের লাইব্রেরিতে অবজেক্ট ট্রি পাস করা;
  • প্রভৃতি

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


1
আপনার সহযোগিতার জন্য ধন্যবাদ। আমরা ইন্টেলিজ ব্যবহার করছি এবং সেখানে কিছু সহায়তা পাচ্ছি। হ্যালটিং সমস্যা এবং সিদ্ধান্তহীনতার পক্ষে আমি এই তত্ত্বের সাথে পরিচিত, তবে আমাদের কোনও প্রয়োজন নেই সমাধান ব্যবস্থার সমাধানের।
নিটেন

12
খোলার বাক্যটি খুব শক্ত। হ্যালটিং সমস্যা হিসাবে (এছাড়াও প্রায়শই ভুল / গালিগালাজ করা হয়), এর সম্পূর্ণ কোনও সাধারণ সমাধান নেই, তবে প্রচুর পরিমাণে বিশেষ মামলা রয়েছে যা সনাক্ত করা সম্ভব।
joel.neely

9
যদিও ইওল এবং / অথবা প্রতিবিম্ব সহ ভাষাগুলির জন্য কোনও সাধারণ সমাধান নেই, এমন অনেকগুলি ক্ষেত্রে রয়েছে যেখানে কোডটি সম্ভবত অ্যাক্সেসযোগ্য।
pjc50

1
প্রতিবিম্ব ছাড়াই এবং পূর্ণ উত্স কোড সহ কোনও স্থিতিযুক্ত টাইপ করা ভাষার পক্ষে সমস্ত অব্যবহৃত কোড নির্বিচারে খুঁজে পাওয়া সহজ করা উচিত।
বিল কে

আপনি এটি প্রতিবিম্ব দ্বারা বা বাহ্যিক কলারদের দ্বারা প্রাপ্য অযোগ্যযোগ্য খুঁজে পাচ্ছেন না তবে আপনি প্রদত্ত প্রবেশের পয়েন্ট বা এন্ট্রি পয়েন্টের সেট থেকে
স্থিতিকরূপে অ্যাক্সেসযোগ্য

8

একিপ্লসে গোটো উইন্ডোজ> পছন্দসমূহ> জাভা> সংকলক> ত্রুটি / সতর্কতা
এবং সেগুলিকে ত্রুটিতে পরিবর্তন করুন। সমস্ত ত্রুটি ঠিক করুন। এটি সহজতম উপায়। সৌন্দর্যটি হ'ল এটি আপনার লেখার সাথে সাথে কোডটি পরিষ্কার করতে দেয়।

স্ক্রিনশট এক্সিলিপ কোড:

এখানে চিত্র বর্ণনা লিখুন


5

ইন্টেলিজজে কোড সনাক্তকরণের জন্য কোড বিশ্লেষণ সরঞ্জাম রয়েছে যা অব্যবহৃত। আপনার যতটা সম্ভব ক্ষেত্র / পদ্ধতি / শ্রেণিগুলি যতটা সম্ভব অ-সর্বজনীন হিসাবে তৈরি করার চেষ্টা করা উচিত এবং এটি আরও অব্যবহৃত পদ্ধতি / ক্ষেত্র / শ্রেণি প্রদর্শন করবে

আমি কোড ভলিউম হ্রাস করার উপায় হিসাবে সদৃশ কোড সনাক্ত করার চেষ্টা করব।

আমার শেষ পরামর্শটি ওপেন সোর্স কোডটি অনুসন্ধান করার চেষ্টা করা হয়েছে যা যদি ব্যবহার করা হয় তবে আপনার কোডটি আরও সহজ করে তুলবে।


এই সরঞ্জামগুলি কোন উদাহরণ?
অরবফিশ

@orbfish আপনি চালাতে পারেন Analyse=> Run inspection by name=>unused
পিটার ল্যারি

5

স্ট্রাকচার 101 স্লাইস দৃষ্টিকোণটি কোনও "অনাথ" বা "অনাথ গোষ্ঠী " শ্রেণীর বা প্যাকেজের "প্রধান" ক্লাস্টারের বা তার উপর নির্ভরশীলতা নেই তার একটি তালিকা (এবং নির্ভরতা গ্রাফ) দেবে ।


এটি কোনও শ্রেণীর মধ্যে উদাহরণস্বরূপ চলক / পদ্ধতিগুলির জন্য কাজ করে?
জোবলাকদেব

এটি কিভাবে উদাহরণস্বরূপ Eclipse 4.3 নিয়ে কাজ করার কথা আছে তা আমি কীভাবে জানব?
এরিক কাপলুন

3

ডিসিডি কিছু আইডিইর জন্য প্লাগইন নয় তবে পিপীলিকা বা স্ট্যান্ড স্টোন থেকে চালানো যেতে পারে। এটি দেখতে একটি স্থির সরঞ্জামের মতো এবং এটি পিএমডি এবং ফাইন্ডব্যাগগুলি যা করতে পারে তা করতে পারে । আমি এটা চেষ্টা করব.

পিএস নীচে একটি মন্তব্যে উল্লিখিত হিসাবে, প্রকল্পটি এখন গিটহাবে বসবাস করে ।


এটি কোনও মন্তব্য না করে উত্তর হিসাবে নামতে হবে
গণনা করুন

ডিসিডি "এখন মারা গেছে" আপনার বিবৃতিটি সরাতে দয়া করে আপনার উত্তরটি আপডেট করুন। সংস্করণ 2.1 12 দিন আগে প্রকাশিত হয়েছিল । এছাড়াও, আপনার উত্তরের লিঙ্কটি কাজ করে না।
স্কোমিসা

2

এমন সরঞ্জাম রয়েছে যা প্রোফাইল কোড করে এবং কোড কভারেজ ডেটা সরবরাহ করে। এটি আপনাকে দেখতে দেয় (কোডটি চালিত হিসাবে) এর মধ্যে কতটি ডাকা হচ্ছে। আপনার কাছে কত অনাথ কোড রয়েছে তা জানতে আপনি এই যেকোন সরঞ্জাম পেতে পারেন।


2
  • এই ধরণের জিনিসটির জন্য ফাইন্ডব্যাগগুলি দুর্দান্ত।
  • পিএমডি (প্রজেক্ট মেস ডিটেক্টর) ব্যবহার করা যেতে পারে এমন অন্য একটি সরঞ্জাম।

তবে, কোনও কর্মক্ষেত্রে অব্যবহৃত এমন পাবলিক স্ট্যাটিক পদ্ধতিগুলিও খুঁজে পেতে পারে না । যদি কেউ এই জাতীয় সরঞ্জাম সম্পর্কে জানেন তবে দয়া করে আমাকে জানান।


1

ব্যবহারকারী কভারেজ সরঞ্জামগুলি, যেমন EMMA tools তবে এটি স্থিতিশীল সরঞ্জাম নয় (যেমন এটি রিগ্রেশন টেস্টিংয়ের মাধ্যমে এবং সমস্ত সম্ভাব্য ত্রুটির ক্ষেত্রে, যা ভাল, অসম্ভব :) এর মাধ্যমে অ্যাপ্লিকেশনটি চালিত করতে হবে)

তবুও, ইএমএমএ খুব দরকারী।


1

কোড কভারেজ সরঞ্জামগুলি, যেমন এমা, কোবার্টুরা এবং ক্লোভার, আপনার কোড ব্যবহার করবে এবং পরীক্ষার স্যুট চালিয়ে এর কোন অংশটি আহ্বান করবে তা রেকর্ড করবে। এটি খুব দরকারী এবং এটি আপনার বিকাশ প্রক্রিয়ার একটি অবিচ্ছেদ্য অঙ্গ হওয়া উচিত। এটি আপনাকে পরীক্ষার স্যুটটি আপনার কোডটি কতটা কভার করে তা সনাক্ত করতে সহায়তা করবে।

তবে এটি বাস্তব মৃত কোড সনাক্তকরণ হিসাবে এক নয়। এটি পরীক্ষাগুলির দ্বারা আচ্ছাদিত (বা আচ্ছাদিত নয়) কেবল কোডটি সনাক্ত করে। এটি আপনাকে মিথ্যা ধনাত্মকতা দিতে পারে (যদি আপনার পরীক্ষাগুলি সমস্ত পরিস্থিতিতে আবরণ না করে) পাশাপাশি মিথ্যা sণাত্মক (যদি আপনার পরীক্ষাগুলি অ্যাক্সেস কোড যা সত্যিকারের বিশ্বের দৃশ্যে কখনই ব্যবহৃত হয় না)।

আমি কল্পনা করেছি যে মৃত কোডটি সত্যই সনাক্ত করার সর্বোত্তম উপায় হ'ল লাইভ চলমান পরিবেশে আপনার কোডটি একটি কভারেজ সরঞ্জাম সহ উপকরণ এবং সময়ের বর্ধিত সময়ের মধ্যে কোড কভারেজ বিশ্লেষণ করা।

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

আমি ব্যক্তিগতভাবে এটি কখনই দেখিনি, এবং জানি না যে পূর্বোক্ত সরঞ্জামগুলি কীভাবে কোনও কোড স্যুটের মাধ্যমে আহ্বান করা হচ্ছে না এমন কোডটি সরঞ্জাম ও বিশ্লেষণে ব্যবহার করা যেতে পারে - তবে আমি নিশ্চিত যে সেগুলি হতে পারে।


1

একটি জাভা প্রকল্প রয়েছে - ডেড কোড ডিটেক্টর (ডিসিডি)। উত্স কোডের জন্য এটি ভাল কাজ করে বলে মনে হয় না তবে .jar ফাইলের জন্য - এটি সত্যিই ভাল। এছাড়াও আপনি শ্রেণি দ্বারা এবং পদ্ধতিতে ফিল্টার করতে পারেন।


1

নেটবিন এখানে নেটবিয়ান ডেড কোড ডিটেক্টরের জন্য একটি প্লাগইন ।

এটি অব্যক্ত কোডটিতে লিঙ্ক এবং হাইলাইট করতে পারলে ভাল হয়। আপনি এখানে ভোট দিতে এবং মন্তব্য করতে পারেন: বাগ 181458 - অব্যবহৃত পাবলিক ক্লাস, পদ্ধতি, ক্ষেত্রগুলি সন্ধান করুন


0

গ্রহনটি হাইলাইট কোডটি প্রদর্শন করতে পারে যা পৌঁছানো যায় না। JUnit আপনাকে কোড কভারেজ দেখাতে পারে, তবে আপনাকে কিছু পরীক্ষার প্রয়োজন হবে এবং প্রাসঙ্গিক পরীক্ষাটি অনুপস্থিত বা কোডটি সত্যই অব্যবহৃত রয়েছে কিনা তা সিদ্ধান্ত নিতে হবে।


3
গ্রহণের পদ্ধতি কেবলমাত্র আপনাকে জানাতে হবে যদি পদ্ধতির সুযোগটি স্থানীয় (যেমন। ব্যক্তিগত) হয়; এবং তারপরেও আপনি 100% নিশ্চিত হতে পারবেন না ... প্রতিচ্ছবি সহ ব্যক্তিগত পদ্ধতি বাইরে থেকে কল করা যেতে পারে।
p3t0r

0

আমি ক্লোভার কভারেজ সরঞ্জামটি খুঁজে পেয়েছি যা ইনস্ট্রুমেন্ট কোড এবং ব্যবহৃত কোডটি হাইলাইট করে এবং এটি অব্যবহৃত un গুগল কোডপ্রো অ্যানালিটিক্সের বিপরীতে, এটি ওয়েব অ্যাপ্লিকেশনগুলির জন্যও কাজ করে (আমার অভিজ্ঞতা অনুসারে এবং আমি গুগল কোডপ্রো সম্পর্কে ভুল হতে পারি)।

আমি কেবল লক্ষ্য করেছি যে এটি জাভা ইন্টারফেসগুলিকে বিবেচনায় নেয় না।


আফিকা, এটি একটি ফ্রি-সার্ভার পার্শ্ব সিআই সরঞ্জাম।
এরিক কাপলুন

0

কখনই ডাকা হয় না এমন পদ্ধতিগুলি সনাক্ত করতে আমি একটি পদ্ধতি কল মানচিত্র বিকাশের জন্য ডক্সিজেন ব্যবহার করি। গ্রাফটিতে আপনি কলার ছাড়াই পদ্ধতি ক্লাস্টারের দ্বীপগুলি পাবেন। এটি গ্রন্থাগারগুলির জন্য কাজ করে না কারণ আপনার সর্বদা কোনও প্রধান প্রবেশ পয়েন্ট থেকে শুরু করা দরকার।

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