Có một chức năng trong đó có trường hợp chuyển đổi và chúng ta cần phải giảm CC của nóLàm thế nào để giảm Cyclomatic phức tạp của Switch trường hợp báo cáo
string data = string.empty;
switch (value)
{
case "Less than 2 billion":
data = "0 - 2B";
break;
case "2 billion to 10 billion":
data = "2B - 10B";
break;
case "10 billion to 20 billion":
data = "10B - 20B";
break;
case "20 billion to 50 billion":
data = "20B - 50B";
break;
case "Greater than 50 billion":
data = "> 50B";
break;
case "N/A":
data = "N/A";
break;
case "[items] > 0":
data = string.Empty;
break;
}
return data;
IMHO CC là số liệu phải là hướng dẫn không phải là quy tắc. Câu lệnh switch cho phép CC cao hơn nhưng thực sự có vấn đề bảo trì ở đây không? – FuleSnabel
Nhưng làm giảm CC bằng cách thay thế nó bằng một từ điển tăng khả năng bảo trì thật sự hoặc nó chỉ làm giảm CC? Theo kinh nghiệm của tôi; bất cứ khi nào tôi đã thay thế các loại chuyển đổi báo cáo với một tra cứu từ điển các phản ứng đã được: "Tôi thích báo cáo chuyển đổi tốt hơn". Ai là chính xác về bảo trì? Số liệu CC hoặc các nhà phát triển đang duy trì nó? – FuleSnabel
Tôi không nghĩ rằng việc thay thế điều này bằng một từ điển làm cho nó ít phức tạp hơn và tôi nghĩ bạn nên cố gắng hết sức để nỗ lực ở nơi khác. Tuy nhiên, một điều khiến tôi lo lắng là các chuỗi được mã hóa cứng (ví dụ: "Ít hơn 2 tỷ" và "0 - 2B"), những thứ này thực sự là hằng số để bảo trì. FYI bạn không cần nghỉ ngơi trên mỗi trường hợp nếu bạn chỉ trả về dữ liệu, chỉ cần 'return" 0-2B ";' – Joey