Моя первая настоящая работа в качестве программиста, и я вижу только код "Big Ball of Mud" (без полезных комментариев), но мне нравится делать чистый код, и мне действительно трудно писать код хуже путь.
Я ищу какой-то учебный пример, в котором использование чистого кода (здесь я вижу различные определения того, что такое чистый код) улучшило разработку и поддержку.
clean-code
case-studies
Ренато Динхани
источник
источник
Ответы:
Быстрый (но отнюдь не исчерпывающий) поиск в Google Scholar обнаруживает множество статей, которые ссылаются на « Чистый код» Боба Мартина , но лично я не видел ни одной статьи, в которой освещалась бы взаимосвязь между «чистым кодом» и улучшенной разработкой.
Однако задумайтесь над своим вопросом на мгновение. Вы спрашиваете об улучшении разработки, и это само по себе является очень широкой предметной областью, охватываемой не просто написанием лучшего кода, но и многими другими факторами, такими как общение, управление ожиданиями, методология и оптимизация процессов, тестирование, непрерывная интеграция и действительно вся коробка и игра в кости, когда вы учитываете, сколько всего нужно сделать, чтобы проект по разработке программного обеспечения был успешным, не говоря уже о его улучшении.
Таким образом, ваш вопрос, вероятно, должен звучать так: способствует ли написание чистого кода улучшению разработки программного обеспечения? Чтобы ответить на это, единственное «доказательство», которое я мог бы предоставить, было бы совершенно анекдотичным, и для этого я думаю, что книга « Чистый код» была бы отличным справочным пособием, поскольку она написана не только самим Бобом Мартином, но и многими другими некоторыми из самых умных разработчиков программного обеспечения там. Если это не поможет, то, возможно, может быть применена немного холодная жесткая логика.
Если вы устроите беспорядок в своем доме, и вы никогда не сможете почистить его, то жизнь в вашем доме станет рутиной. Становится все труднее находить вещи, труднее передвигаться, и никто в здравом уме не захочет навестить вас, если вы живете в грязной обстановке. То же самое и с кодом. Если в вашем коде беспорядок, вам будет трудно найти проблемы, не говоря уже о том, чтобы их исправить. Становится легче оправдать обходной путь, который может не справиться с работой, но, эй, это наверняка превосходит необходимость пробираться через всю эту старую гадость, не так ли? В конце концов, точно так же, как никогда не приводить в порядок свой дом, неуклюжий код будет стоить вам времени, усилий и создаст для вас трудности в долгосрочной перспективе. Однако поддержание чистоты вашего кода предоставит вам более удобную платформу для работы, сделает рефакторинг и отладку менее трудоемкой,
Нет, у меня нет прямых доказательств, чтобы предоставить вам, и это всего лишь мысли кого-то, кто занимался этим очень давно, и который, надеюсь, заработал немного мудрости в разработке программного обеспечения . :-)
источник
Что вам нужно понять, так это то, что ни одна компания не собирается писать посредственный код. Проблема в том, что 50% кода, отданного или полученного, написано ниже среднего уровня программистами вашей компании. Вы проповедуете хору, когда рассказываете о преимуществах чистого кода. Хитрость в том, как это сделать. Проведите некоторое исследование таких вещей, как инструменты рецензирования, статический анализ, автоматическое тестирование, непрерывная интеграция, TDD, scrum, экстремальное программирование и т. Д., И представьте потенциальные решения, а не просто объясните, почему проблема серьезна.
источник
Я знаю, что это пойдет не так, но время выхода на рынок, правильные требования, правильное финансирование, хороший маркетинг, правильная цена и просто удача оказывают гораздо большее влияние на успех программных продуктов, чем качество кода.
Это не означает, что качество кода следует игнорировать, но вы должны признать, что это лишь один из многих факторов.
Есть много примеров просто ужасного кода в чрезвычайно успешных продуктах (например, оригинальная Apple OS, которая оставила управление потоками приложениям).
Я не могу вспомнить ни одного примера того, как красивый код преодолевает плохо продуманный или переоцененный продукт.
Так что, если пришло время выходить на рынок против красивого кода, время выхода на рынок должно быть приоритетным!
источник
Вы должны отделить чистый код от реальных целей: снижение затрат на исправление дефектов после развертывания и уменьшение ненужных переделок. Когда вы говорите о «написании чистого кода, чтобы в нем было меньше ошибок», вы говорите о религии. Когда вы говорите о «снижении уровня дефектов на 10%, экономя 2 человека-месяца усилий на проекте», вы говорите об управлении. Чистый код - это инструмент, улучшающий исходное качество кодовой базы и тем самым снижающий общую стоимость, но он один из многих.
Следующая статья объясняет, почему с первого взгляда правильно понять, как это правильно: http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf
источник
Я не знаю о каком-либо конкретном исследовании, но посмотрите на работу Стива Макконнелла .
Если у кого-то есть, он будет. Например, двухминутное сканирование нашло это (16 лет, но все еще актуально сегодня).
источник
В дополнение к ответу Мэтнца, если вы еще этого не сделали, я бы сказал, что специально ознакомьтесь с Code Complete: практическое руководство по созданию программного обеспечения от Стива Макконнелла. Помимо того факта, что это, вероятно, улучшит ваше кодирование, он приводит многочисленные исследования на протяжении всей книги о том, как различные методы кодирования влияют на качество программ.
В качестве примера (из книги):
Кроме того, раньше это был ответ номер один на вопрос. Какую самую влиятельную книгу должен прочитать каждый программист?(хотя я вижу, что ответы на этот вопрос были недавно реорганизованы хромым способом)
источник