Gần đây tôi đã kế thừa ứng dụng giao diện điều khiển C# cần được cắt bớt và dọn dẹp. Dài câu chuyện ngắn, ứng dụng bao gồm một lớp duy nhất chứa hơn 110.000 dòng mã. Yup, hơn 110.000 dòng trong một lớp duy nhất. Và, tất nhiên, ứng dụng này là cốt lõi cho hoạt động kinh doanh của chúng tôi, chạy 'vòng đồng hồ cập nhật dữ liệu được sử dụng trên một trang web động. Mặc dù tôi đã nói với người tiền nhiệm của tôi là "một lập trình viên thực sự tốt", rõ ràng anh ta không phải là tất cả vào OOP (hoặc kiểm soát phiên bản).Làm thế nào để bạn có thể lập trình xác định số tham chiếu đến một phương thức với C#
Dù sao ... trong khi tự làm quen với mã tôi đã tìm thấy nhiều phương thức được khai báo, nhưng không bao giờ được tham chiếu. Có vẻ như sao chép/dán đã được sử dụng để phiên bản mã, ví dụ như tôi có phương thức getSomethingImportant(), có thể có một phương thức khác gọi là getSomethingImortant_July2007() (mẫu là functionName_ [datestamp] trong hầu hết các trường hợp). Có vẻ như khi lập trình viên được yêu cầu thực hiện thay đổi getSomethingImportant(), anh ta sẽ sao chép/dán rồi đổi tên thành getSomethingImortant_Date, thực hiện các thay đổi cho getSomethingImortant_Date, sau đó thay đổi bất kỳ lời gọi phương thức nào trong mã thành tên phương thức mới, để phương thức cũ trong mã nhưng không bao giờ được tham chiếu.
Tôi muốn viết một ứng dụng bảng điều khiển đơn giản thu thập thông qua một lớp rất lớn và trả về danh sách tất cả các phương pháp với số lần mỗi phương pháp được tham chiếu. Theo ước tính của tôi có hơn 1000 phương pháp, do đó, làm điều này bằng tay sẽ mất một lúc.
Có các lớp trong khuôn khổ .NET mà tôi có thể sử dụng để kiểm tra mã này không? Hoặc bất kỳ công cụ hữu ích nào khác có thể giúp xác định các phương thức được khai báo nhưng không bao giờ được tham chiếu?
(Câu hỏi phụ: Có ai khác từng thấy ứng dụng C# như thế này, một lớp học lớn không? Nhiều hay ít quy trình thủ tục rất lớn, tôi biết đây là lần đầu tiên tôi thấy, ít nhất là kích thước này.)
Đề xuất xóa cũng như ý kiến đầu tiên của tôi cũng là suy nghĩ đầu tiên của tôi. Tôi sẽ sử dụng phương pháp này cộng với NDepend, như những người khác đã đề xuất, để thực hiện phân tích sâu hơn. – Duffy