Чи є тематичне дослідження, яке переконливо демонструє, що чистий код покращив розвиток? [зачинено]


13

Я на своїй першій справжній роботі програміста, і те, що я бачу, є лише кодом «Великий бал грязі» (без корисних коментарів), але мені подобається робити чистий код, і мені дуже важко кодувати гірше шлях.

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


1
в будь-який час комусь довелося відслідковувати помилку в чистому коді проти грязі
храповик виродка

@ratchetfreak: Я думаю, що ОП намагається знайти опубліковані дослідження, щоб використовувати аргумент, чому їхня організація повинна очистити свій код.
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner Так, але я не претендую на аргумент "проти" компанії. Це 16-річна компанія, яка використовує старі технології в маленькому місті без однозначності (принаймні, з іншим розумом). Це просто трохи цікавості та потреби в заохоченні, щоб не здаватися на "поганий код".
Ренато Діньяні

Ось поточний приклад: kdenlive.org/users/ttill/kdenlive-fundraising-campaign
user16764

Пам'ятайте, що "чистий код" - не єдине, що робить систему бездоганною. Отже, таке дослідження INMO було б важко зробити, оскільки важко виділити один фактор від багатьох інших, які сприяють результату.
NoChance

Відповіді:


4

Швидкий (але аж ніяк не є вичерпним) пошук в Google Scholar з'являється багато статей , які відносяться до Бобу Мартін чистого кодексу , але я особисто не бачив ніяких документів , які охоплюють кореляцію між «чистим кодом» і поліпшенням розвитком.

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

Тому, мабуть, у вас має бути таке запитання: чи сприяє написання чистого коду вдосконаленій розробці програмного забезпечення? Відповісти на це, єдині "докази", які я міг би надати, були б цілком анекдотичними, і тому я вважаю, що книга " Чистий кодекс" була б чудовою орієнтиром, оскільки її написав не тільки сам Боб Мартін, але й безліч розділів деякими найрозумнішими розробниками програмного забезпечення там. Якщо це не допомагає, можливо, може застосуватись трохи холодна жорстка логіка.

Якщо ви зробите безлад у своєму будинку, і ви ніколи не збираєтеся його прибирати, то жити у вашому домі стане справою. Знайти речі стає важче, важче пересуватися, і ніхто з розумом не захоче відвідати вас, якщо ви живете в брудних умовах. Те ж саме з кодом. Якщо ваш код заплутаний, вам важче вирішити проблеми, не кажучи вже про їх усунення. Стає легше виправдати обхід, який може не виконати цю роботу, але ей, це впевнено перемагає необхідність перебирати всю цю стару спадщину, так? Зрештою, так само, як ніколи не прибирати свій будинок, дозволяти коду стати неохайним, це коштуватиме вам часу та зусиль та створить для вас труднощі в довгостроковій перспективі. Однак збереження чистого коду надасть вам кращу платформу для роботи, зробить рефакторинг та налагодження менше клопоту,

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


Приємна відповідь, і так, питання справді те, що ви вказали.
Ренато Діньяні

Хороша аналогія, чи є там якісь дослідження, які говорять про те, що чисте робоче місце чи дім підвищує продуктивність?
Боб

15

Що вам потрібно зрозуміти, це те, що жодна компанія не ставить собі за мету написати посередній код. Проблема полягає в тому, що 50% коду, дають або беруть, записують нижче середні серед програмістів вашої компанії. Ви проповідуєте хору, коли викладаєте переваги чистого коду. Хитрість полягає в тому, як це зробити. Проведіть деякі дослідження, такі як інструменти експертного огляду, статичний аналіз, автоматизоване тестування, безперервна інтеграція, TDD, scrum, екстремальне програмування тощо, і представляйте потенційні рішення, а не просто пояснюючи, чому проблема погана.


5

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

Це НЕ означає, що якість коду слід ігнорувати, але, ви повинні визнати, що це лише один із багатьох факторів.

Існує безліч прикладів просто жахливого коду в надзвичайно успішних продуктах (наприклад, оригінальна ОС Apple, яка керувала потоками управління у програмах).

Я не можу придумати жодного прикладу прекрасного коду, який долає погано задуманий або завищений товар.

Тож якщо час на ринок порівняно з гарним кодом, час на ринок повинен мати пріоритет!


1
Я повністю з вами згоден, саме так і відбувається. Клієнт задоволений, директори управління задоволені, програмісти, наполегливо працюють, щоб зробити магію з кодом і ніколи не задоволені.
Ренато Діньяні

3

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

Наступний документ пояснює, чому правильне вперше має значення з точки зору витрат: http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf


1

Я не знаю жодного конкретного дослідження, але перевірити роботу Стіва МакКоннелла .

Якщо хтось має, той і буде. Наприклад, дві хвилини виявили це сканування (16 років, але актуальне і сьогодні).


1

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

Як приклад (з книги):

Інше дослідження, що стосується 450 процедур (що є просто незвичним збігом обставин), виявило, що підпрограми з найвищим співвідношенням сполучення та згуртованості мали в 7 разів більше помилок, ніж у тих, що мають найнижчі коефіцієнти сполучення та згуртованості, і були в 20 разів дорожчими виправити (Селбі та Базілі 1991).

Також це була відповідь номер один на питання Що є найбільш впливовою книгою, яку повинен прочитати кожен програміст? (хоча я бачу, що відповіді на це питання нещодавно були реорганізовані кульгаво)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.