Niedawno odziedziczyłem aplikację konsoli C#, która wymaga kilku funkcji czyszczenia i czyszczenia. Krótko mówiąc, aplikacja składa się z pojedynczej klasy zawierającej ponad 110 000 linii kodu. Tak, ponad 110 000 linii w jednej klasie. Aplikacja jest oczywiście podstawą naszej działalności, która "aktualizuje dane na bieżąco w dynamicznej witrynie internetowej". Chociaż powiedziano mi, że mój poprzednik był "naprawdę dobrym programistą", to oczywiste, że wcale nie był w OOP (lub kontroli wersji).W jaki sposób programowo identyfikować liczbę odwołań do metody za pomocą C#
W każdym razie ... podczas zaznajamiania się z kodem znalazłem wiele metod, które są zadeklarowane, ale nigdy nie wspomina się o nich. Wygląda na to, że kopiowanie/wklejanie było używane do wersji kodu, na przykład mówię, że mam metodę o nazwie getSomethingImportant(), jest szansa, że istnieje inna metoda o nazwie getSomethingImortant_July2007() (wzorzec to functionName_ [datestamp] w większości przypadków). Wygląda na to, gdy programista został poproszony o zmianę w getSomethingImportant(), którą skopiował/wkleił, a następnie zmienił nazwę na getSomethingImortant_Date, wprowadził zmiany w getSomethingImortant_Date, a następnie zmienił wszystkie wywołania metod w kodzie na nową nazwę metody, pozostawiając starą metodę w kod, ale nigdy nie wspominając o nim.
Chciałbym napisać prostą aplikację konsolową, która przeszukuje jedną wielką klasę i zwraca listę wszystkich metod z liczbą odwołań do każdej metody. Według moich szacunków istnieje ponad 1000 metod, więc zrobienie tego ręcznie zajęłoby trochę czasu.
Czy istnieją klasy w ramach platformy .NET, z których mogę skorzystać w celu zbadania tego kodu? Lub inne przydatne narzędzia, które mogą pomóc w określeniu metod, które są zadeklarowane, ale nigdy nie są do nich odwoływane?
(Pytanie boczne: Czy ktoś jeszcze widział taką aplikację C#, jedną dużą klasę? Jest to mniej więcej jeden wielki proces proceduralny, wiem, że to pierwszy, jaki widziałem, przynajmniej tej wielkości.)
Twoja sugestia, aby usunąć jak idę przez kod była moja pierwsza myśl zbyt. Będę używał tej metody plus NDepend, jak sugerowali inni, do dalszej analizy. – Duffy