LINUX.ORG.RU

История изменений

Исправление kmeaw, (текущая версия) :

Предлагаю сначала ответить на гораздо более простой (похожий) вопрос.

Вот есть свободный проект, в нём установлены некоторые технические правила. Код пишем на C++, UB запрещён, отступы в четыре пробела, разбиение на модули вот такое, система сборки такая, тесты должны проходить.

Есть фича, которую очень хотят пользователи этого проекта, но которую нетривиально реализовать.

И вот приходит такой суперразработчик и приносит патч. Но там внутри адовый ад — код написан не на C++, а на C, куча UB внутри, indentation вообще не соблюдается, нарушены все принципы SOLID, во время сборки запускается sed и patch на исходники, тесты падают. И вообще, ничего не понятно, всё в одном коммите, поверх другие PR не применяются — куча merge conflicts.

При попытке договориться с этим разработчиком сделать всё «красиво» он отвечает — «я художник, я так вижу», и не хочет играть по чужим правилам, не считая их важными, объясняя всё тем, что «цель оправдывает средства». Вот вам работающий код, если не нравится, то можете его переписать. Но времени на то, чтобы разобраться и переписать уйдёт примерно столько же, сколько займёт его написание «с нуля».

Но при всём этом — программа выглядит работающей, альфа-тестеры счастливы, ничего не глючит и не падает. С точки зрения конечного пользователя результат идеален, и польза от такого коммита очевидна.

Принимать такой pull-request или нет?

Исходная версия kmeaw, :

Предлагаю сначала ответить на гораздо более простой (похожий) вопрос.

Вот есть свободный проект, в нём установлены некоторые технические правила. Код пишем на C++, UB запрещён, отступы в четыре пробела, разбиение на модули вот такое, система сборки такая, тесты должны проходить.

Есть фича, которую очень хотят пользователи этого проекта, но которую нетривиально реализовать.

И вот приходит такой суперразработчик и приносит патч. Но там внутри адовый ад — код написан не на C++, а на C, куча UB внутри, indentation вообще не соблюдается, нарушены все принципы SOLID, во время сборки запускается sed и patch на исходники, тесты падают. И вообще, ничего не понятно, всё в одном коммите, поверх другие PR не применяются — куча merge conflicts.

Но при всём этом — программа выглядит работающей, альфа-тестеры счастливы, ничего не глючит и не падает. С точки зрения конечного пользователя результат идеален, и польза от такого коммита очевидна.

Принимать такой pull-request или нет?