কোড রিভিউ- তে একটি প্রশ্নের জন্য ধন্যবাদ আমি নীচের কোডটির জন্য সাইক্লোমাটিক জটিলতাটি কী তা সম্পর্কে কিছুটা দ্বিমত (যা মূলত কিছু শেখার সুযোগ) হয়ে পড়েছিল।
public static void main(String[] args) {
try {
thro();
thro();
thro();
thro();
thro();
thro();
thro();
}
catch (NullPointerException e) {
}
}
private static Random random = new Random();
public static void thro() throws NullPointerException {
if (random.nextBoolean())
throw new NullPointerException();
System.out.println("No crash this time");
}
ইক্লিপসে এই কোডটি লেখার সময় এবং এক্লিপস মেট্রিক্স প্লাগইন ব্যবহার করার সময় , এটি আমাকে বলে যে মূল পদ্ধতির জন্য ম্যাককেব সাইক্লোমেটিক জটিলতা 2 এবং thro
পদ্ধতিটির জন্য এটি 2 বলে।
তবে, অন্য কেউ আমাকে বলেছেন যে thro
একাধিকবার কল করার জটিলতা number of calls * method complexity
, এবং তাই দাবি করে যে মূল পদ্ধতির জটিলতা 7 * 2 = 14।
আমরা কি বিভিন্ন জিনিস পরিমাপ করছি? আমরা দুজনই কি সঠিক হতে পারি? বা এখানে প্রকৃত চক্রবৃদ্ধি জটিলতা কি?