Иногда нужно копаться в чужом коде, понимать его и, возможно, реорганизовывать/исправить. Поэтому мне интересно, какие инструменты/методы вы используете для этого? Речь идет не о каком-либо конкретном языке или платформе, а о некоторых рекомендациях в целом.
Мне самому очень удобно запускать данный код под отладчиком (если это возможно, конечно), установить контрольные точки и пройти через код.
Также я использовал несколько инструментов UML с функциями обратной инженерии, чтобы увидеть общую картину. Визуализация работает очень хорошо для меня.
Есть один инструмент, который я использовал совсем немного: Understand. Это не инструмент UML, но у него есть куча визуализации для кода. Например, блок-схема управления для функции, которая не является частью UML, но иногда она очень полезна.
Я слышал, что иногда люди пишут тесты на код, который они хотят узнать, но он не работает для меня. Иногда код, который я хочу понять, не очень проверен.
Существуют и другие инструменты, такие как профайлеры, контрольно-измерительные приборы, регистраторы и т. Д. Использует ли кто-нибудь его с успехом? И как?
С чего начать первое использование? Что дальше?
Инструменты и рекомендации для понимания чужого кода
ответ
Я был в этой ситуации раньше ... Это не очень весело. Лучший способ, который я нашел, - написать модульные тесты, чтобы охватить области, которые будут меняться. Даже если тесты уже существуют, это дает вам опыт как с api, так и с поведением кода, который вы собираетесь реорганизовать. Кроме того, вы получаете больше тестов для проверки реализации замены.
Вы ищете высокоуровневую структуру, такую как модули, пространства имен и классный дизайн? Или вы пытаетесь понять внутренности классов, например. как работают определенные строки кода? Это два различных инструмента анализа.
Обычно я делю эти виды запросов на 2 лагеря:
исправить ошибку, а не весь код. В этом случае я хотел бы прочитать код и посмотреть, могу ли я легко установить исправление без существенных изменений, например. добавив 5 строк кода или меньше. Именно здесь сделанные изменения похожи на хирургический удар, который оказывает минимальное влияние на достижение желаемого результата.
Оторвите код и поставьте гораздо лучший материал. В этом случае нет хорошего способа сделать это, или есть много небольших изменений, которые хотят попасть в мини-проект, где необходимо переварить весь код, и это не быстрое небольшое изменение , В качестве примера можно привести сайт ASP и включить его в новейшую инфраструктуру .Net.
Определение какого рода изменения чего-то это требует немного практики и опыта в понимании того, что кто-то может назвать, «Еще одна вещь, если вы могли бы ...», что может быть огромное дело, но они этого не делают см. так, например мы могли бы добавить небольшой модуль, который регистрирует любую ошибку и отправляет мне электронное письмо, когда что-то происходит плохо, что может быть не так просто после того, как все остальные требования будут отработаны, например, если код не может отправить почтовое сообщение, делать.
Вид конкретной платформы, но ReSharper отлично подходит для дразнения скрытого значения кода .NET. Мне нравится функция «Find Usages Advanced», в которой вы можете искать наборы, получатели, реализации и т. Д.
Выезд nWire.Это плагин Eclipse, в настоящее время для Java & PHP, который анализирует ваш код и предлагает инструменты для поиска, визуализации и поиска кода. Инструмент состоит в понимании ассоциаций в вашем коде: иерархии классов, вызовы, экземпляры и многое другое.
Мне очень полезно копать в кучи кода (BTW, для меня даже мой собственный код становится отчужденным после нескольких месяцев, не касаясь его).
- 1. Инструменты для понимания кода C
- 2. Инструменты для понимания исходного кода сайта
- 3. Запуск кода чужого кода
- 4. Инструменты и методы для улучшения понимания незнакомого кода?
- 5. Метод или инструмент для понимания комплексного кода
- 6. Инструменты для понимания архитектуры решения
- 7. Инструменты для понимания HTML-макета
- 8. Анализ и рекомендации Javascript-кода
- 9. Использование UML для понимания кода
- 10. Инструменты профилирования кода .NET
- 11. Инструменты для визуализации базы данных и понимания данных быстро
- 12. Что такое инструменты и рекомендации для тестирования веб-сервисов?
- 13. медиана медиан понимания кода
- 14. owasp инструменты для автоматического анализа кода
- 15. Инструменты анализа статического кода для VB6
- 16. Концепция понимания кода ASP.net?
- 17. Инструменты, советы и рекомендации для мониторинга многопоточных приложений .NET
- 18. Инструменты для обнаружения дублированного кода (Java)
- 19. Инструменты покрытия кода и TDD
- 20. Сглаживание матрицы понимания кода
- 21. Инструменты покрытия кода для Scala
- 22. Инструменты для выполнения фрагмента кода
- 23. Инструменты покрытия кода для PHP
- 24. Инструменты для анализа кода Java
- 25. понимания кода поток
- 26. Инструменты для «обратного» покрытия кода?
- 27. Хорошие инструменты для измерения кода?
- 28. Идентификация ID с номерами - Стилирование кода чужого кода
- 29. Бесплатные инструменты для покрытия кода
- 30. Инструменты для C рефакторинга кода
Оба. Для меня легче понять код, когда я вижу большую картину, а затем иду на низком уровне. – Max