Что такое плохой код / Skillbox Media
Что такое качество кода, как его улучшить, и почему иногда хороший код — это плохо. Статья подготовлена на основе нашего вебинара с Глебом Михеевым.
Содержание:
Бесплатный курс по Python ➞ Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе.
Узнать большеВРЕМЯ ПРОСМОТРА
1 ч. 19 мин.
ВРЕМЯ ЧТЕНИЯ
4 мин.
ЭКОНОМИЯ
1 ч. 15 мин.
Плохой код — как плохой ремонт. Работать может и даже работает, но плохо и недолго, выглядит так себе и исправить в нём что-то непросто. Он хаотичен, имеет непонятную структуру, и вообще не сразу поймёшь, что же хотел сказать автор.
Признаки некачественного кода:
- в нём тяжело ориентироваться;
- части, которые можно написать двумя строчками, написаны десятью;
- по названию функции нельзя понять, что она делает (xyz, function, n);
- если в него что-то добавить, остальное перестанет работать.
Вот такой логикой, как на картинке, всё-таки лучше не пользоваться: если программа работает, это ещё не значит, что с ней всё в порядке.
Чем грозит проекту плохой код
На первый взгляд, плохой код — не катастрофа. Программа же работает, разве это не главное? На самом деле он приносит много проблем, особенно в долгосрочной перспективе. И вот почему:
- чтобы внести изменения в некачественный код, нужно много времени и стоит это дорого, причём со временем цена и продолжительность только увеличиваются;
- добавить что-то новое тоже сложно;
- код непредсказуем — вы никогда не знаете, что и когда перестанет работать;
- командный дух падает, если людям приходится работать с такими шедеврами («Да кто это вообще писал?!»).
В итоге скорость разработки снижается, сроки удлиняются, стоимость изменений растёт. Если это критично для потребителя или заказчика, то плохой код может похоронить проект.
Как писать хороший код
Чтобы писать качественный код, надо знать, что он из себя представляет. Вот его основные качества:
- код легко читается, у него чёткая структура, в ней нет путаницы;
- он легко поддерживается: небольшие изменения не вызывают желания написать его заново;
- его можно расширять;
- код прошёл тестирование;
- он документирован;
- производителен.
Комментарии действительно очень важны, чтобы код легко читался. Это поможет не только другим программистам, когда они будут работать с вашим кодом, но и вам в будущем.
Подробнее почитать об этом можно здесь: Как писать техническую документацию для программ на C#
Вот пять действий, которые улучшают код.
- Unit тестируют отдельные части программы.
- e2e тестируют систему в целом.
- Нагрузочные проверяют, насколько хорошо программа справляется с нагрузками.
- Скриншотные сравнивают скриншоты до и после, реагируют на изменения.
- Прочие: мутационные, пенетрационные…
С тестами действительно нужно быть внимательными, чтобы не получилось, что вы часами ищете ошибку в коде, а проблема в самих тестах. Поэтому полезно сначала писать тесты, а потом уже браться за сам код, когда у вас в голове есть чёткая структура и понимание, что надо делать и что вы хотите получить.
Есть и другие способы улучшить код (например, парное программирование). Самые лучшие результаты можно получить, если использовать сразу несколько способов: так надёжнее.
Если хотите улучшить свой код, то советуем почитать эту статью: Ужасы чужого кода: как найти смысл и не умереть. Там много полезных советов и личного опыта.