Tôi vừa đo được một đoạn mã PHP lớn (1153 dòng) bằng PHPMD ( http://phpmd.org/ ) và nó cho tôi biết mã có độ phức tạp NPath là 16244818757303403077832757824.
Điều đó có vẻ như là một con số lớn điên rồ đối với tôi, cho thấy rằng có lẽ PHPMD đã bị phá vỡ theo một cách nào đó. Thậm chí có thể một đoạn mã được viết bởi con người có độ phức tạp NPath cao như vậy không? Độ phức tạp chu kỳ là 351.
Hai chi tiết quan trọng có thể -
Đây là mã thủ tục, được trộn lẫn với HTML và PHPMD sẽ chỉ đo mã hướng đối tượng. Để giải quyết vấn đề này, tôi đã gói toàn bộ tệp trong một lớp bằng một hàm duy nhất - đây là đại diện cho cách sử dụng.
Tệp này bao gồm một loạt các câu lệnh chuyển đổi lồng nhau, và bên trong chúng có rất nhiều câu lệnh if..else - vì vậy nó chắc chắn khá phức tạp.
Biên tập
Tôi muốn làm rõ rằng tôi không đặt câu hỏi liệu PHPMD có nói dối tôi không. Tôi biết rằng mã là một mớ hỗn độn khủng khiếp, tôi chỉ tự hỏi liệu có thể có mã nào thực sự tệ đến vậy không. Có vẻ như câu trả lời là có, nó rất có thể.
WP_Query::get_posts()
có độ phức tạp NPath là 1.435 Quindecillion vào năm 2013. Ngày nay thậm chí còn tệ hơn nữa