Устаревшая кодовая база: все, что вам нужно знать

Устаревшая кодовая база: все, что вам нужно знать

13 марта 2023 г.

Вы наверняка слышали о загадочной устаревшей кодовой базе, написанной давно и забытой. Говоря простым языком, речь идет о «коде, который написали разработчики, которых уже нет в компании и никто не знает, как с ним работать». На то оно и «наследство», оно досталось в наследство от предыдущих команд или даже компаний. Тем не менее, это гораздо больше. А я постараюсь описать концепцию и свой опыт эффективной работы с унаследованным кодом.

Что такое устаревший код?

Определение необходимо. Устаревшая кодовая база относится к программным системам или приложениям, которые были разработаны с использованием устаревших технологий и методов программирования. Это один из способов взглянуть на это: приложения, которые были созданы на основе старомодных методов. Кроме того, более точным определением может быть: n n «Устаревший код относится к коду, который был унаследован от предыдущих разработчиков или программных систем и больше не поддерживается и не поддерживается. С этим типом кода может быть сложно работать, потому что он может не иметь документации, использовать устаревшие языки программирования или фреймворки и не соответствовать текущим стандартам кодирования».

Еще больше ответов на вопрос "что такое устаревший код?" и они довольно разные. Доказательством этого являются горячие дискуссии на Stackoverflow.

Исходя из этих определений, основные характеристики такого кода являются:

* относительно старая кодовая база все еще используется * отсутствует документация (или она очень плохая) * оригинальный автор(ы) не могут быть найдены * отсутствуют тесты или система типов * не следует современным практикам (не имеет контекста в коде) * использует технологии, которые в основном не используются (трудно найти специалистов)

Все эти факторы затрудняют работу с устаревшей кодовой базой. Как луковица со многими слоями, которые жгут, когда их чистишь. Иво Лукач в своем опросе утверждали, что половина респондентов-разработчиков предпочли бы не работать с унаследованным кодом, а 11% просто ненавидят его. Как гласит старая мудрость: «Мы не должны этого трогать. Это устаревший код».

Как улучшить и сократить устаревший код?

Эффективная работа со старым кодом требует анализа, затрат и самоотверженности разработчиков. Я не могу недооценивать терпение, которое требуется, чтобы разобраться в сути проблемы, провести рефакторинг и перестроить систему. Методы работы с устаревшими кодовыми базами структурируют работу и помогает прояснить шаги.

Самый ценный совет, который я узнал, — это рефакторинг кода и обеспечение контекста для вашего кода. Мы скоро перейдем к рефакторингу, но второй совет еще важнее. Читать код часто труднее, чем его писать. Таким образом, предоставление контекста — это меньшее, что вы можете сделать для следующих команд разработчиков. Улучшение качества кода важно, а комментирование кода еще важнее для удобочитаемости. Документация является необходимым шагом, как и настройка среды в редакторе кода.

Размер кода VS и любое расширение JetBrains помогает командам получить полезную информацию о техническом долге. Устаревший код обычно является частью технического долга. В этих расширениях разработчики могут отслеживать долги, добавлять закладки и организовывать свои задачи в редакторе кода.

Рефакторинг: чудодейственная таблетка для кодовой базы

Не доверяйте заголовку (в нем есть изюминка). Код рефакторинга может творить чудеса, если делать его постепенно и с резервными копиями. полное определение рефакторинга, данное Мартином Фаулером: n n "Рефакторинг — это процесс изменения программной системы таким образом, что внешнее поведение кода не изменяется, но при этом улучшается его внутренняя структура. Это дисциплинированный способ очистки кода, сводящий к минимуму вероятность внесения ошибок. По сути, когда вы проводите рефакторинг, вы улучшаете дизайн кода после его написания».

Идея состоит в том, чтобы изменить часть кода, затем еще несколько и постепенно улучшить общая система. С устаревшей кодовой базой то же самое. Любые ненужные строки кода должны быть удалены или переписаны. Классы и переменные упрощаются и объединяются. Методы команд переписаны. Код, который мы получаем, легче читать, поддерживать и адаптировать.

Взгляните на фрагменты кода. :

Перед рефакторингом:

После рефакторинга:

Рефакторинг унаследованного кода на сегодняшний день является наиболее эффективным способом постепенного запуска систем. Однако вам необходимо понять код, прежде чем улучшать его, и протестировать его после изменения.

Другие способы

На самом деле, это один из способов: Активное обслуживание и тестирование. Когда вы оставляете какой-либо код без присмотра, он нестабилен. Функции устаревают, сторонние интеграции перестают работать, все тормозит. Вы поняли идею. Итак, нам нужно какое-то время, чтобы поддерживать код, исправлять сломанные части и тестировать. Для этого нам нужно:

* Активно осуждайте и удаляйте код, который больше не служит цели. * Отслеживайте развитие языковых стандартов и библиотек. * Исправьте ошибки и проверьте наличие уязвимостей. * Приведите приложение в соответствие со стандартами безопасности и проведите тестирование на проникновение. * периодически проходить различные уровни тестирования программного обеспечения (особенно модульные тесты)< /p>

Подведение итогов

Эффективная работа с устаревшим кодом — непростая задача. Некоторые разработчики программного обеспечения иногда используют эти языки для поддержки устаревших систем. Однако такой подход становится слишком дорогостоящим и истощающим ресурсы. Есть два варианта действий: полностью переписать систему или реорганизовать ее до тех пор, пока она не станет работать лучше. В первом случае это совершенно новый проект со значительными затратами, и нет никаких гарантий, что на этот раз у вас получится лучше. Второй вариант экономически эффективен, но также требует много времени и рискован. Мое мнение таково: унаследованные кодовые базы, которые имеют ценность для бизнеса, должны улучшаться постепенно. Как вы думаете?


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE