Чи варто брати на себе зобов’язання виключно для вирішення некритичних помилок?


67

Якщо я натрапив на некритичну помилку в коді (скажімо, помилковий апостроф у заяві про друк (помилку)), чи варто взяти на себе зобов’язання вирішити цю помилку, чи її просто слід залишити в спокої?

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


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

@ root45 Хоча якщо ви подивитесь на результати для них, то всі вони граматики іншого типу, ніж це питання.
Ізката

Відповіді:


130

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

Ви можете скористатись тефтом TRIVIAL:або позначити його як тривіальний, якщо його підтримує VCS.


72
Просто хочу додати до цього те, що я хотів би скоріше, щоб такі речі, як це робилося окремо, аніж зв'язали щось інше. Проблема з грудкою полягає в тому, що занадто багато шуму може відволікати рецензента коду від релевантних змін. +1
Енді

9
+1 для згадування ефекту розбитого вікна. Малі речі мають значення. Якщо все по-справжньому чисто, люди подумають двічі, перш ніж зробити недбало написаний чи неперевірений код.
Рой Тінкер

25
Крім того, якщо ви згрупуєте його за допомогою функції, тоді відіграйте функцію, яку ви втратите. Вчиняйте по одній справі.
ctrl-alt-delor

4
Мені б дуже цікаво, які ДКС дозволяють позначати коментар як тривіальним. Я працював зі SVN, Hg та Git, і нічого подібного не помічав ні в одному.
Xion

3
@Andy, що шум - це не найгірша частина ... якщо хтось пізніше вирішить, наприклад, скасувати це зобов’язання, оскільки вони не хочуть цієї функції, раптом ви також втратите невелике поліпшення, яке було частиною комітетів.
rFactor

49

Ви не педантичні, і краще вирішувати їх окремо. Чим більше атомних змін, тим краще - ви не хочете, щоб виправлення помилки, що збивається, змішувалося з 500 змінами коментарів / помилок.


9
+1 Кожна редакція повинна стосуватися лише одного конкретного виправлення. Це НОЧНА МАРА для резервного виправлення виправлень, якщо кожна редакція також має купу випадкових помилок, зафіксованих між реальними змінами.
Грант

28

У загальному випадку: Так

Це завжди варто того , щоб збільшити ремонтопридатність Вашого програмного забезпечення.

Просто займіться цим.

Якщо ви просто збираєтеся відправити реліз ...

... а якщо ви не керівник команди, то проконсультуйтеся з ним .


Щодо змісту журналу комісій ...

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

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

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

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


7
Перевірка з вашим керівником команди щодо виправлення помилок друку? Якби я був керівником команди, який підкреслив майбутній реліз, я б не хотів, щоб мене турбували такі дрібниці.
Джон

2
@Joh: справа не в тому, що ви можете обов'язково порушити збірку, але можуть бути й інші завдання збирання, або ви можете бути вже позначені тегами та готові до використання, і ваш контроль аудиту (залежно від вашої галузі) може змусити вас пов’язати цю нешкідливу комісію до завдань і вимог, тому, якщо це з’явиться з нізвідки, це може просто трохи боліти; яку ви могли легко зберегти протягом декількох днів після виходу релізу. Але загалом я погодився б із вами, і я навіть сказав, що така компанія, яка працює, робить це неправильно. Але ти не той, хто це виправить, тому керуй ними, якщо ти не старший.
хайлем

2
@Joh: в основному, якщо керівник моєї команди побачить, що нова збірка раптово підскочить в системі збирання, коли він збирається розпочати нову збірку (або вже розпочав її), то я можу запевнити, що рівень його стресу буде підвищений за допомогою цього підходу а також ...
haylem

7

Друкарські помилки повинні бути додані як фіксація. Виправлення неправильно написаних слів або граматичних помилок збільшить читабельність вашого коду.

Використання повідомлення про фіксацію, наприклад "Виправлена ​​помилка" або "Виправлена ​​помилка у файлі.c", допоможе вам відрізнити ці коміти від інших основних кодів.


7

Так, вам слід зробити це абсолютно, особливо на початку проекту.

Чому? Два бали:

  1. Ви, ймовірно, не дізнаєтесь, чи є помилка "критичною" чи ні, поки не пізно. Деякі виправлення, ймовірно, не виправляються, оскільки всі думають, що це не буде великою справою. Поки не буде.

  2. Виправити помилку на друку на ранній стадії та навмисно буде набагато простіше, ніж виправити її після того, як з нею було здійснено кілька сотень рядків викликів коду / функції. Знову ж таки, тимчасові хаки можуть стати настільки постійними напрочуд швидко. Ось чому мені доводиться мати справу з об'єктами, які мають і методи "CollapseAll", і "ColapseAll".


2
Так - з усіх правильних відповідей, мені найбільше подобається ця згадка, що вона залежить від "коли".
Wonko the Sane

4

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

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


3

Якщо ви переживаєте за те, щоб змусити журнал фіксувати, ви робите щось не так. :-) Часті вчинки - це добра справа! Я постійно здійснюю виправлення помилок. Отримайте їх у кодовій базі якнайшвидше та прискоріть цикл розробки!


2
I commit typo fixes all the timeІМО, що хвилює, спробуйте знайти програмістів з кращою англійською мовою?
Лежать Раян

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

2

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


0

Чи дозволяє ваш процес управління змінами?

У моєму середовищі кожне зобов’язання, яке я приймаю, повинно бути пов'язане із запитом на зміну, який було запропоновано або діловими користувачами, або з обов'язковою зміною на системному рівні разом із відповідними процесами тестування кінцевих користувачів. Простий друкарський помилок, як ви описуєте, мабуть, не був би записаний як жоден із цих (я знайшов помилки друку та граматичні помилки в одному з моїх додатків, який існував більше 4 років, але ніхто не помічав), тож якщо / коли аудитори прийшли зателефонувавши, я б дуже важко пояснив себе.

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


+1 У деяких середовищах це правда. Будь ласка, не зволікайте з цього приводу лише тому, що це неправда там, де ви працюєте.
MarkJ

-1 ваш процес управління змінами, здається, висмоктує великий час . Я розумію (і навіть вважаю за краще ), що кожне зобов'язання має бути пов'язане із запитом на зміну - ця частина вашого процесу виглядає чудово. Але OMG виглядає так, що ініційовані розробниками запити (як рефактор цього / виправити помилки в цьому ) заборонені, що піднімає для мене великий червоний прапор . Це передбачає, що ділові користувачі / аудитори завжди знають краще, ніж розробники - якщо це колись буде близьким до істини, тоді вони самі писали б код
gnat

Якщо розробник може переконати людей, які схвалюють рух уперед, із тими змінами, які вони варто внести, вони можуть рухатися вперед. Але якщо я знайду простую помилку в назві методу або знайду який-небудь код, який копіює / вставляє, який слід переробити в метод, я не можу внести зміни без авторизації. Справа не просто в тому, щоб "зробити правильну справу з кодом" - тестування прийняття повинно бути виконано, а розробники не в змозі сказати діловим людям: "Я вніс цю зміну, ви ніколи не помітите, що я зробив, але вам доведеться пройти тестовий цикл ".
alroc

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

Дозвольте спробувати пояснити це ще раз. Якщо я можу виправити помилку друку або витягнути метод під час роботи над іншою, затвердженою зміною, я можу пропустити її, не маючи кому-небудь продавати її. Але я не можу внести зміни, які не є видимими користувачеві і не мають прямого позитивного впливу на бізнес / користувачів, не продаючи повноваження, які будуть на нього спочатку.
alroc

-1

Використовуйте DVCS для редагування історії

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

Зберігайте здоровий глузд інакше

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

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

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

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