Существует ли тематическое исследование, которое убедительно демонстрирует, что чистый код улучшил разработку? [закрыто]

13

Моя первая настоящая работа в качестве программиста, и я вижу только код "Big Ball of Mud" (без полезных комментариев), но мне нравится делать чистый код, и мне действительно трудно писать код хуже путь.

Я ищу какой-то учебный пример, в котором использование чистого кода (здесь я вижу различные определения того, что такое чистый код) улучшило разработку и поддержку.

Ренато Динхани
источник
1
в любое время кто-то должен был отследить ошибку в чистом коде против грязи
трещотка урод
@ratchetfreak: Я думаю, что OP пытается найти опубликованные исследования, чтобы использовать аргумент, почему их организация должна очистить свой код.
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Да, но я не претендую на аргумент «против» компании. Это 16-летняя компания, использующая старые технологии в небольшом городе без параллелизма (по крайней мере, с другим мнением). Это просто любопытство и необходимость поощрения, чтобы не сдаваться «плохому коду».
Ренато Динхани
Вот текущий пример: kdenlive.org/users/ttill/kdenlive-fundraising-campaign
user16764
Помните, что «чистый код» - не единственное, что делает систему обслуживаемой. Таким образом, такое исследование, INMO, было бы трудно сделать, так как трудно выделить один фактор из многих других, которые способствуют результату.
NoChance

Ответы:

4

Быстрый (но отнюдь не исчерпывающий) поиск в Google Scholar обнаруживает множество статей, которые ссылаются на « Чистый код» Боба Мартина , но лично я не видел ни одной статьи, в которой освещалась бы взаимосвязь между «чистым кодом» и улучшенной разработкой.

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

Таким образом, ваш вопрос, вероятно, должен звучать так: способствует ли написание чистого кода улучшению разработки программного обеспечения? Чтобы ответить на это, единственное «доказательство», которое я мог бы предоставить, было бы совершенно анекдотичным, и для этого я думаю, что книга « Чистый код» была бы отличным справочным пособием, поскольку она написана не только самим Бобом Мартином, но и многими другими некоторыми из самых умных разработчиков программного обеспечения там. Если это не поможет, то, возможно, может быть применена немного холодная жесткая логика.

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

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

S.Robins
источник
Хороший ответ, и да, вопрос действительно тот, который вы указали.
Ренато Динхани
Хорошая аналогия, есть ли какие-либо исследования, которые говорят, что чистое рабочее место или дом улучшает производительность?
Боб
15

Что вам нужно понять, так это то, что ни одна компания не собирается писать посредственный код. Проблема в том, что 50% кода, отданного или полученного, написано ниже среднего уровня программистами вашей компании. Вы проповедуете хору, когда рассказываете о преимуществах чистого кода. Хитрость в том, как это сделать. Проведите некоторое исследование таких вещей, как инструменты рецензирования, статический анализ, автоматическое тестирование, непрерывная интеграция, TDD, scrum, экстремальное программирование и т. Д., И представьте потенциальные решения, а не просто объясните, почему проблема серьезна.

Карл Билефельдт
источник
5

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

Это не означает, что качество кода следует игнорировать, но вы должны признать, что это лишь один из многих факторов.

Есть много примеров просто ужасного кода в чрезвычайно успешных продуктах (например, оригинальная Apple OS, которая оставила управление потоками приложениям).

Я не могу вспомнить ни одного примера того, как красивый код преодолевает плохо продуманный или переоцененный продукт.

Так что, если пришло время выходить на рынок против красивого кода, время выхода на рынок должно быть приоритетным!

Джеймс Андерсон
источник
1
Я полностью согласен с вами, вот что происходит. Заказчик доволен, менеджеры-менеджеры удовлетворены, программисты усердно работают над магией кода и никогда не довольны.
Ренато Динхани
3

Вы должны отделить чистый код от реальных целей: снижение затрат на исправление дефектов после развертывания и уменьшение ненужных переделок. Когда вы говорите о «написании чистого кода, чтобы в нем было меньше ошибок», вы говорите о религии. Когда вы говорите о «снижении уровня дефектов на 10%, экономя 2 человека-месяца усилий на проекте», вы говорите об управлении. Чистый код - это инструмент, улучшающий исходное качество кодовой базы и тем самым снижающий общую стоимость, но он один из многих.

Следующая статья объясняет, почему с первого взгляда правильно понять, как это правильно: http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf

Джори Себрехтс
источник
1

Я не знаю о каком-либо конкретном исследовании, но посмотрите на работу Стива Макконнелла .

Если у кого-то есть, он будет. Например, двухминутное сканирование нашло это (16 лет, но все еще актуально сегодня).

mattnz
источник
1

В дополнение к ответу Мэтнца, если вы еще этого не сделали, я бы сказал, что специально ознакомьтесь с Code Complete: практическое руководство по созданию программного обеспечения от Стива Макконнелла. Помимо того факта, что это, вероятно, улучшит ваше кодирование, он приводит многочисленные исследования на протяжении всей книги о том, как различные методы кодирования влияют на качество программ.

В качестве примера (из книги):

Другое исследование различных 450 подпрограмм (что является просто необычным совпадением) показало, что подпрограммы с самыми высокими отношениями сцепления и когезии имели в 7 раз больше ошибок, чем те, которые имели самые низкие отношения связи к когезии и были в 20 раз дороже. исправить (Селби и Базили 1991).

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

пользователь
источник