Я роками стикався з правилами стилю коду, як і багато інших на цьому форумі. Сюди входять як посібники стилю бойових дій, яких я вважаю неприкритими, так і намагаються заохотити інших використовувати посібники для стилю, щоб перешкодити їхньому стилю, щоб вони могли бути зрозумілішими в цілому.
Корпорація отримує переваги від загального стандарту кодування. Є багато важливих речей, які слід враховувати при розробці програмного забезпечення для компанії, як, наприклад, як ми будемо навчати нових розробників для вибору коду попереднього покоління. Коли ви пишете код, ви не завжди про це думаєте. Насправді багато кодерів вирішують навіть не враховувати, як інші можуть захотіти наблизитися до коду через 5 або 10 років після того, як вони пішли. Посібник зі стилю кодування - це спосіб корпорації забезпечити фокус для цих 5 та 10-річних цілей, що полегшує розробникам роботу в більшій схемі речей.
З іншого боку, посібники зі стилів кодування, як відомо, недосконалі, тому що неможливо розробити ідеальний стиль кодування та записати його. Ви насправді починаєте стикатися з кумедними кутовими справами, коли математичні докази починають виходити з ладу, якщо ви намагаєтесь зробити його ідеальним. Тож ми знаємо, що посібники зі стилю кодування недосконалі. Вони можуть не ідеально орієнтуватися на те, що нам потрібно від 5 до 10 років вниз.
Якби ми «застосували» стиль кодування, ми б принесли в жертву значення для значення пізніше. Це можна назвати "інвестицією", якби ми могли бути впевнені, що ми отримаємо віддачу від своїх зусиль, але будь-який розробник, який працював із погано написаним керівництвом стилю кодування, може засвідчити, що ці прибутки від "читабельності" платять дорого, відволікаючи розробників. від їх коду. На мій досвід, є лише дуже мала кількість випадків, коли примусові стилі кодування мають переваги, як правило, для програмного забезпечення для унікальних льодовикових клієнтів, де програмне забезпечення може використовуватися протягом 30 або 40 років!
Натомість я вважаю найефективнішим трактувати посібник зі стилем кодування як маніфест: "Це те, що ми вважаємо найкращим стилем кодування для нашої групи". Це купа рідинних думок, зафіксованих словами. Слово "вірити" є важливим: якщо переконання змінюються, посібники зі стилем кодування повинні змінюватися разом із ним.
Тут випливає цитата "сильних особистих заперечень". У тому, що я б назвав "ідеальним" світом, ви пишете той код, який вважаєте найкращим, і ви живете з наслідками. Ми часто любимо не помічати "м'яких" наслідків, коли ми програмуємо, але в цьому випадку вони важливі. Я не маю жодних проблем, коли ти пишеш у своєму власному стилі, якщо ти не заперечуєш, щоб я ніколи не давав тобі важливого і довговічного розвитку.
Подумайте про всю систему як про поле для гольфу. Стиль кодування прокладає простий шлях вниз по фарватеру. Якщо ви будете дотримуватися стандарту кодування, ми переконаємось, що життя проходить так само просто, як ми можемо. Чим далі ви потрапляєте в грубі, використовуючи власні стандарти кодування, тим більше вам доведеться доводити свою цінність команді.
Якщо я приходжу вранці в понеділок, щоб побачити, що ти витратив цілі вихідні на вирішення проблеми, про яку ми роздуваємось протягом року, і ти це зробив у своєму власному «спеціальному» стандарті кодування, я не збираюся розповідати тобі Полагодь це. Я скажу вам піти прийняти душ. Якщо ваш "особливий" стандарт кодування є винятково "особливим", я навіть можу запропонувати розробнику початкового рівня "переглянути" код, щоб поширити знання про те, як працює ваш код, і наголосити, що якщо щось важко читати, він / вона повинен охайно. Ти в минулі вихідні ви надали компанії достатню цінність, що навіть не варто згадувати про порушені вами порушення кричущих стандартів кодування.
Звичайно, в цій гольф-метафорі немає меж. Якщо я попрошу виконати якусь задачу, можливо, додавши нові поля до якоїсь форми, і ви вирішите скористатися можливістю перефактурувати весь код заповнення форми відповідно до вашого конкретного стилю, використовуючи купу тінистих символів, таких як визначити макроси і деякі жахливі методи метапрограмування шаблонів, які ви тільки що дізналися з обміну стеками, вас попросять повернути назад і виправити це. Ви вирішили діяти, це наслідки.
( Відмова: Я повністю написав цю реалізацію, is_base_of
щоб вирішити найголовнішу задачу, і заробляв кожний шматочок пекла, який я отримав за це від старших розробників. Я кажу, що це того варте. Я все одно отримую чудовий міхур сміху щоразу, коли я подивіться на те, як такі клини, як 7 непов'язаних частин специфікації C ++ разом, щоб зробити щось дивовижне. Візьміть це, ви, старші розробники! Це те, що ви отримуєте за заборону boost
на цей конкретний проект! )