Вы здесь

Управление и измерение сложности ядра Друпала

В то время как мы сделали Друпал 7 более простым в использовании и расширили его возможности, мы одновременно добавлили сложности в разработку ядра. Это не удивительно, с развитием программного обеспечения возрастает и его сложность, особенно если не ведётся работа, чтобы снизить издержки. Когда это происходит, то это может стать препятствием для внедрения в программу изменений из-за её сложности, сделать исправление ошибок более сложным и ухудшить картину с привлечением новых разработчиков. В настоящее время общее настроение разработчиков ядра таково, что необходимо предпринять шаги, чтобы снизить сложность Друпала. Я полностью с этим согласен.

Многие люди сообщества выдвинули много хороших предложений, чтобы сделать это. Они включают удаление ненужных возможностей, разделение систем, улучшение API и абстракции. Нам нужно рассмотреть, что мы можем тут сделать. Фактически, мы уже удалили некоторые ненужные модули и возможности из ветки разработки Друпала 8. Кроме того, я ищу со-разработчика, технические навыки которого позволят работать с управлением сложностью ядра Друпала.

Я тоже хотел бы этим заняться. Было бы здорово, если бы у нас был подходящий инструмент и мы могли бы с помощью него оценивать сложность в эволющии Друпала. Это позволило бы нам сказать что-то вроде «Друпал 7 на 30% сложнее Друпала 6», «Сложность этого сайта составляет 420 баллов» или «Этот патч снизит сложность на 12 пунктов».

Было бы здорово, если бы мы придумали «оценку сложности Друпала». Очевидно, что это потребовало бы учитывать различные показатели — количество вызовов функции; количество модулей к которым обращается функция; размер функции; количество вводимых аргументов; количество комментариев на функцию; количество связей с глобальными переменными; количество различных путей кода и так далее.

«Оценка сложности Друпала» не панацея и мы никогда не получим отличной системы оценки. Но я думаю, что даже базовая версия такого инструмента, внедрённая в документооборот обзора патча (включая наши тестботы и DrEditor), станет большой победой. Сложно управлять тем, что вы не можете измерить. Как минимум, она уменьшит сложность впереди и в центре для каждого рецензента и мэйнтейнера.

Мысли?