Софт постоянно усложняется. Стабильность и простота расширения приложения напрямую зависят от качества кода.
К сожалению, почти каждый разработчик, и я в том числе, в своей работе сталкивается с кодом плохого качества. И это — болото. У такого кода есть токсичные признаки:
* Функции слишком длинные, и на них слишком много задач
* Часто у функций есть побочные эффекты, которые сложно определить, а иногда даже сложно отлаживать
* Непонятные имена у функций и переменных
* Хрупкий код: небольшая модификация неожиданно ломает другие компоненты приложения
* Плохое покрытие кода тестами или вообще его отсутствие
Всем знакомы высказывания «я не понимаю, как работает этот код», «бредовый код», «этот код сложно изменить» и другие.
Однажды мой коллега уволился, потому что пытался справиться с REST API на Ruby, который было трудно поддерживать. Он получил этот проект от предыдущей команды разработчиков.
Исправление текущих ошибок создавало новые, добавление новых функций рождало новую серию ошибок, и так далее (хрупкий код). Клиент не хотел перестраивать приложение, делать ему удобную структуру, и разработчик принял правильное решение — уволиться.
![][1]
Такие ситуации случаются часто, и это печально. Но что делать?
[Читать дальше →][2]
[1]:
https://habrastorage.org/files/71d/da6/7ae/71dda67ae918424b933c7fd217cd8a47.jpg
[2]:
https://habrahabr.ru/post/310590/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut