আমি সম্প্রতি থেকে সোনারলিন্টকে গ্রহণের জন্য ব্যবহার করছি এবং এটি আমাকে অনেক সাহায্য করেছে। যাইহোক, এটি আমার কাছে সাইক্লোমেটিক জটিলতা সম্পর্কে একটি প্রশ্ন উত্থাপন করেছিল।
সোনারলিন্ট 10 এর সিসি হিসাবে গ্রহণযোগ্য হিসাবে বিবেচনা করে এবং এমন কিছু ঘটনা রয়েছে যেখানে আমি এর বাইরে, প্রায় 5 বা 6 ইউনিট। এই অংশগুলি ম্যাপারগুলির সাথে সম্পর্কিত যেখানে মানগুলি বিভিন্ন ভেরিয়েবলের উপর নির্ভর করে, উদাহরণস্বরূপ:
- ফিল্ড এ স্ট্রিং এসএ উপর নির্ভর করে;
- ফিল্ড বি স্ট্রিং এসবিতে নির্ভর করে;
- ফিল্ড সি স্ট্রিং এসসির উপর নির্ভর করে;
- ইত্যাদি ...
আমার আর কোনও পছন্দ নেই যা if
প্রতিটি ক্ষেত্রের জন্য রাখ। এটি আমার পছন্দ নয় (ভাগ্যক্রমে) তবে ইতিমধ্যে বিদ্যমান এবং জটিল সিস্টেম যা আমি নিজেই পরিবর্তন করতে পারি না।
আমার প্রশ্নের মূলটি হ'ল: একক পদ্ধতিতে খুব বেশি সিসি না থাকা কেন এত গুরুত্বপূর্ণ ? জটিলতা হ্রাস করতে যদি আপনি কিছু শর্তগুলি এক বা একাধিক উপ-পদ্ধতিতে সরিয়ে থাকেন তবে এটি আপনার সামগ্রিক ক্রিয়াকলাপের ব্যয় হ্রাস করে না, এটি সমস্যাটি অন্যত্র সরিয়ে নিয়েছে, আমার ধারণা?
(ছোট ভুলের জন্য দুঃখিত, যদি থাকে)।
সম্পাদনা
আমার প্রশ্নটি গ্লোবাল সাইক্লোমেটিক জটিলতাগুলিকে বোঝায় না, তবে কেবলমাত্র একক পদ্ধতি জটিলতা এবং পদ্ধতি বিভাজন (আমার সঠিক অর্থটি বোঝাতে মোটামুটি সময় আছে, দুঃখিত)। আমি জিজ্ঞাসা করছি কেন এটি আপনার সুপারিশগুলিকে যদি কোনও 'সুপার পদ্ধতি' এর সাথে অন্তর্ভুক্ত করে তবে এটি আপনার শর্তগুলি আরও ছোট পদ্ধতিতে বিভক্ত করার অনুমতিযোগ্য কেন, যা কেবলমাত্র প্রতিটি উপ-পদ্ধতি কার্যকর করবে, এইভাবে অ্যালগরিদমে জটিলতা যুক্ত করবে।
তবে দ্বিতীয় লিঙ্কটি ( অ্যান্টি-প্যাটার্ন সম্পর্কে ) দুর্দান্ত সহায়ক help