সমস্যাযুক্ত অঞ্চলগুলি সনাক্ত করতে আমি পাইথন কোডটি কীভাবে বিশ্লেষণ করতে পারি?


99

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

বিশেষত, আমি একটি উচ্চ চক্রাকার জটিলতার সাথে রুটিনগুলি কল করতে চাই, পুনরাবৃত্তি সনাক্ত করতে এবং সন্দেহজনক (এবং সম্ভবত ভুলভ্রান্তি) নির্মাণগুলি চিহ্নিত করার জন্য সম্ভবত কিছু লিঙ্কের মতো স্থির বিশ্লেষণ চালাতে চাই।

আমি কীভাবে এই জাতীয় একটি প্রতিবেদন তৈরি করতে যেতে পারি?

উত্তর:


36

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

পাইলট জন্য +1 । কোডিং মান (এটি পিইপি 8 বা আপনার নিজস্ব প্রতিষ্ঠানের রূপই হোক) এর আনুগত্য যাচাই করার ক্ষেত্রে এটি দুর্দান্ত , যা শেষ পর্যন্ত সাইক্লোমেটিক জটিলতা হ্রাস করতে সহায়তা করতে পারে।


4
traceback.org ভাঙা লিংক
denfromufa

পাইলট দুর্দান্ত তবে ধীর। আমরা একটি প্রি-পুশ হুক হিসাবে ব্যবহার করি তবে নিয়মিত চেক এবং প্রি-কমিট হুকের জন্য ফ্লাক 8 এবং প্লাগিনগুলির একগুচ্ছ ব্যবহার করি। আমি বাস্তবিক https://flakehell.readthedocs.io/config.htmlএই দিনগুলিতে সুপারিশ করব , কারণ এটি কার্যকর করার মডেলটি অনেক বেশি দৃ more় এবং কনফিগারযোগ্য।
ডিলানইং

29

সাইক্লোমেটিক জটিলতার জন্য আপনি ব্যবহার করতে পারেন radon: https://github.com/rubik/radon

( pipএটি ইনস্টল করতে ব্যবহার করুন :pip install radon :)

অতিরিক্তভাবে এটিতে এই বৈশিষ্ট্যগুলি রয়েছে:

  • কাঁচা মেট্রিক (এগুলিতে এসএলওসি, মন্তব্য লাইন, ফাঁকা লাইন এবং সি অন্তর্ভুক্ত)
  • হ্যালস্টেড মেট্রিক্স (সে সব)
  • রক্ষণাবেক্ষণ সূচক (ভিজ্যুয়াল স্টুডিওতে ব্যবহৃত একটি)

হালসটেড মেট্রিক্সের স্যুইচ কী?
দিমা তিস্নেক

4
@ কারমা যদি আমি ডক্সটি বুঝতে পারি তবে আপনি কমান্ড লাইনটি ব্যবহার করতে পারবেন বলে আমি মনে করি না। আপনাকে পাইথন এপিআই ব্যবহার করতে হবে।
ডেভ হাল্টার

18

স্থির বিশ্লেষণের জন্য রয়েছে পাইলট এবং পাইচেকার । পাইচেকারের চেয়ে বেশি বিস্তৃত বলে মনে হয় ব্যক্তিগতভাবে আমি পাইলেট ব্যবহার করি।

সাইক্লোমেটিক জটিলতার জন্য আপনি চেষ্টা করতে পারেন এই পার্ল প্রোগ্রামটি , বা এই নিবন্ধ যা পাইথন প্রোগ্রামটি একই কাজ করে


11

যখন আপনাকে একটি নতুন প্রকল্প বোঝার দরকার হয় তখন পাইকানা কবিতার মতো কাজ করে!

পাইকায়না (পাইথন কোড অ্যানালাইজার) অজগরটির জন্য একটি সাধারণ কোড বিশ্লেষকের অভিনব নাম যা আপনার কোডটি কার্যকর করার পরে একটি শ্রেণি চিত্র তৈরি করে।

এটি কীভাবে কাজ করে তা দেখুন: http://pycana.sourceforge.net/

আউটপুট:

বিকল্প পাঠ



6

Flake8 ব্যবহার করুন , যা একটি সরঞ্জামে পেপ 8, পাইফ্লেক্স এবং সাইক্লোমেটিক জটিলতা বিশ্লেষণ সরবরাহ করে



3

সাইক্লোমেটিক জটিলতা যাচাই করার জন্য অবশ্যই mccabeপ্যাকেজ রয়েছে।

স্থাপন:

$ pip install --upgrade mccabe

ব্যবহার:

$ python -m mccabe --min=6 path/to/myfile.py

উপরে 6 এর প্রান্তিকতা নোট করুন। প্রতি এই উত্তর , স্কোর> 5 সম্ভবত সরলীকৃত দিতে হবে।

এর সাথে নমুনা আউটপুট --min=3:

68:1: 'Fetcher.fetch' 3
48:1: 'Fetcher._read_dom_tag' 3
103:1: 'main' 3

এটি বৈকল্পিকভাবে পাইলট-এমসিসিবি বা পাইস্ট-এমসিসিবি ইত্যাদির মাধ্যমেও ব্যবহার করা যেতে পারে

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