Научитесь любить старые кодовые базы

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

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

Многие люди пытались определить, что такое устаревший код, так как это довольно суровый значок для кодовой базы:

«Код без тестов » - Майкл Фезерс

«Исходный код, относящийся к более не поддерживаемой или производимой операционной системе или другой компьютерной технологии» - Википедия

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

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

Десять причин работать над унаследованным кодом

1. Ваши навыки отладки стремительно растут

ошибка - это ошибка, и обнаружение ошибки выполняется путем отладки.

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

Отладка является необходимым навыком для любого разработчика и часто приводит к новому обучению и развитию. Это также дает вам момент волнения, когда вы, наконец, понимаете, почему произошла эта ошибка, и получаете этот момент «ага».

В нашу современную эпоху веб-разработки мы можем использовать созданные для нас высокоразвитые инструменты отладки, такие как инструменты разработчика Vue.js или инструменты разработки React. Будучи сверхмощными, они показывают нам много информации о поведении нашего приложения, что делает отладку простой и удобной.

В устаревших базах кода у вас есть возможность изучить инструменты разработчика браузера (что тоже так здорово), изучить такие концепции, как стек вызовов, исходные карты и добавить точки останова, а также изучить функции и получить массу удовольствия во время процесса.

2. Вы видите закономерности везде

Мы все виноваты в этом, и я до сих пор этим занимаюсь: copypasta. Разве не поэтому Stack Overflow стал таким популярным?

Разработчики склонны копировать и вставлять по нескольким причинам. Стаж здесь не имеет значения. Это может произойти из-за непонимания или следования существующим шаблонам проектирования. Или, может быть, это потому, что функции настолько похожи, что не стоит абстрагироваться.

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

Совет: вот инструмент, который поможет вам обнаружить скопированный код в кодовых базах JavaScript.

3. Вы углубляете свое понимание новых функций во фреймворке.

Не знаю, как вы, но я испачкал руки миром Vue. Когда Vue 2 уже был выпущен, я понятия не имел о Vue 1 API или его наборе функций. К счастью, после этого я работал над приложением Vue 1, и затем моя любовь к Vue выросла еще больше.

Один из примеров, демонстрирующих эту точку зрения, снова связан с миром JavaScript. При переходе с Vue 1 на Vue 2 опция props twoWay была удалена.

Опоры теперь всегда в одну сторону. Чтобы вызвать побочные эффекты в родительской области, компонент должен явно генерировать событие вместо того, чтобы полагаться на неявную привязку . - Руководство по миграции на Vue.js

Было действительно сложно отлаживать приложения среднего размера с десятками компонентов, двусторонней привязкой данных и изменяющимися свойствами. Я думаю, что большинство новичков воспринимают вещи как должное, потому что они не сталкивались с проблемами, вызванными twoWay bindings.

4. Вы получаете множество возможностей для рефакторинга.

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

На мой взгляд, это самая интересная часть программирования:

  • Открытие файла, удаление всего его и запись пары строк
  • Чтение уродливого фрагмента кода и его переписывание в более читаемый фрагмент
  • Абстрагирование большого количества дублированного кода
  • Оптимизация процессов сборки / CI

Старые унаследованные кодовые базы полны возможностей, которые можно улучшить в интересах компании, клиентов и вас самих.

5. Вы действительно понимаете, что такое технический долг.

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

В зависимости от ситуации может иметь смысл получить долг и выплатить его позже. Наличие стороннего крайнего срока - это один случай.

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

6. Вы понимаете деловую сторону своего программного обеспечения.

Большинство посетителей веб-сайтов не заботятся о том, используете ли вы хуки или jQuery. Они даже не понимают, что такое Javascript. Я хочу сказать, что никого не волнует, насколько аккуратна кодовая база, когда дело касается прибыльности.

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

7. Вы разбираетесь в программном обеспечении бизнеса.

В отличие от последнего пункта, вы также увидите, как чистая и элегантная кодовая база влияет на бизнес.

Обычно использование современного технологического стека приводит к более быстрой доставке новых функций и более коротким циклам обратной связи. Это выгодно для увеличения конкурентных преимуществ.

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

8. Вы развиваете непредвзятый образ мышления.

Судить о навыках других разработчиков - это обычное плохое мышление некоторых разработчиков, когда они читают плохой код.

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

Вы понимаете, что разработчики совершают ошибки и что каждый делает все, что в его силах, учитывая их знания и способности на тот момент.

9. Вы понимаете, что не вся работа доставляет удовольствие.

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

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

Иногда процесс неприятен, но он помогает вам расти как личность и ценить, насколько вам повезло, что вы всегда получаете удовольствие и получаете за это деньги.

10. Вы получите опыт работы со старой кодовой базой.

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

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

Спасибо за прочтение. Если вы работали с устаревшей кодовой базой, дайте мне знать, что вы думаете.