+7 (499) 346-87-75
21.10.2016

Контроль качества кода в перспективе развития проекта

советы начинающим стартаперам

*Эта статья впервые опубликована в издании Хабрахабр от 19 Октября 2016. Тут публикуется полная её версия.

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

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

Так вот, проанализировав множество различных проектов специалисты компании Software Improvement Group (SIG) разработали набор простейших принципов и правил, следуя которым, можно в значительной степени улучшить такое состояние вещей. Эти принципы были изложены в книге-руководстве Building Maintainable Software, Java Edition: Ten Guidelines for Future-Proof Code (ISBN print: 978-1-4919-5352-5, ISBN eBook: 978-1-4919-5348-8).

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

Возьму на себя смелость тезисно изложить основные моменты из этого руководства.

Важность более простой поддержки для бизнеса

  • Сроки внедрения новых функций существенно меньше. Продукт на шаг впереди конкурентов.
  • Время исправления багов значительно сокращается. Заказчик и клиенты в выигрыше.
  • Простота введения в проект новых разработчиков. Диверсификация рисков.
  • Оптимизация по любому другому параметру системы требует изменений в коде проекта.
  • Хорошо поддерживаемый код, как правило, работает на порядок стабильнее. Изменения в нем имеют меньше побочных эффектов.

Особенности внедрения

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

Перечень рекомендаций

  1. Пишите короткие методы
  2. Пишите простые методы
  3. Пишите код только один раз
  4. Старайтесь создавать маленькие интерфейсы для методов и конструкторов
  5. Распределяйте задачи по модулям
  6. Создавайте компоненты со слабой связанностью
  7. Соблюдайте баланс между компонентами
  8. Старайтесь писать меньше кода
  9. Автоматизируйте тестирование и деплой
  10. Пишите чистый код

Некоторые из этих принципов можно легко контролировать в автоматическом режиме, для этого были созданы специальные программные средства для таких языков как Java и C#. Мы предлагаем простейшую реализацию автоматического контроля для PHP разработки. Нами был реализован контроль следующих базовых принципов:

  • Длина функций не должна превышать 15 строк кода;
  • Цикломатическая сложность функции не должна быть более 5;
  • Функции не должны принимать более 4 входных аргументов;
  • Класс не должен содержать более 15 методов;

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

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

P.S. Чтобы получать наши новые статьи раньше других или просто не пропустить новые публикации - подписывайтесь на нас в Facebook, VK, Twitter

P.P.S. Совсем скоро в нашей бизнес-школе Digitov стартуют курсы: Хочу стать Junior PHP Developer!, Symfony 2. Гибкая разработка. Подписывайтесь на курсы сейчас и сможете купить их со скидкой.

Автор

Сергей Харланчук
Сергей Харланчук
Senior Web Developer / Team Lead, компания SECL Group / Internet Sales Technologies
+7 (499) 346-87-75 info@seclgroup.ru
ВВЕРХ
Форма заказа