Чи слід зазначити помилки, пов'язані з написанням / граматикою в чиємусь коді? [зачинено]


106

Переглядаючи код співробітника, я зіткнувся з деякими орфографічними помилками у назвах функцій, а також граматичними помилками на зразок 'didUserHasPermission ()' замість 'doesUserHavePermission ()' у функціях та назвах змінних.

Чи варто вказати на нього або я занадто педантичний, помічаючи їх?


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

31
Так. Це дуже засмучує, коли у вас API з неправильним написанням. Він поширюється, як лісова пожежа. Тож краще виправити це якомога швидше.

9
@Rei: англійська мова є їх рідною мовою чи ні, це не має значення в професійному середовищі; якщо це не дуже погано для них, але це не привід, вони повинні дотримуватися тих же стандартів.
Томас Боніні

4
@Rei, багато завдань програмування, як я бачу, рекламовані вимагають володіння рідними мовами саме з цієї причини. Вміння обговорювати вимоги, дизайн, специфікацію та конструкцію - це дуже важливо для всього програмного продукту в цілому.
Стівен Фурлані

Відповіді:


205

Код з орфографічними та граматичними помилками неможливий .

  • Люди не пам’ятатимуть погану граматику, тому спробують викликати функцію так, як вона повинна була бути написана, і ось так трапляються помилки.

  • Ви не можете похвастатися за щось у коді, якщо не знаєте, як це написано.

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

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


7
+1 Іноді важливо пощадити почуття когось, але коли це перегляд коду ... якщо ви його спіймаєте, це справедлива гра для коментарів. Моя компанія використовує тигель для огляду коду, який дозволяє всім оглядам бачити, що він потрапив, і дозволяє рецензенту відзначати його не як дефект, а як стиль.
opello

15
+1 - Після того, як орфографічні та граматичні помилки пробиваються в API, їх майже неможливо знову вийти. Я витратив більшу частину трьох років на те, щоб написати «Активність» замість «Діяльності», і це завжди боляче зробило це.
Джон Боде

7
На краще чи гірше, хороша практика програмування часто зводиться до чогось дуже схожого на педантизм. Крім того, я хотів би знайти людину, яка неправильно написала Referrerоригінальну специфікацію HTTP, і вдарила його в щиколотку. Звичайно, це був, напевно, Бернерс-Лі, і тому я після цього відчував би себе винним ...
Мальволіо

2
@Stephan Furlani: ось що я намагався зробити; це було частиною API, яким ми не володіли. Ми не змогли виправити це з нашого кінця, і процес його виправлення був некрасивим і тривалим, щоб ніхто не хотів з цим возитися.
Джон Боде

2
@John Bode, я думаю, ти мав би створити функцію обгортки :) C # має чіткий трюк для цього (я все ж забув його ім'я).
робота

38

Так, звичайно. Простіше запам'ятати ім'я, якщо воно граматично правильне. Спроба запам'ятати ім'я та помилки граматики - це зовсім інша справа.


29

Не зазначайте їх як дефекти в офіційному огляді коду. Замість цього позначте список і поговоріть з ним / ПРИВАТНО про них. Будьте настільки дипломатичними, наскільки це можливо, просто "Гей, щось я помітив, і я наткнувся на людей, які дійсно дивляться на подібні речі, вони думають, що це робить програміста недбалим і неохайним".

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

На прикладі, який ви подали, я підозрюю, що він почався як UserHasPermission, і хтось інший сказав йому, що місцева практика - це «UserBlahBlah» (), а не «UserBlahBlah» (), і він просто не помітив зміни граматики.


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

5
@HedgeMage: Мій особистий досвід з подібними речами полягає в тому, що деякі люди НАДЕЖНО зворушливі до речей, які вони сприймають як критику до себе. Гірше, що можуть бути справді негарні політичні наслідки, якщо людина, яку ви, як ви критикуєте, любить керівництво. (Так, у мене є шрами, щоб довести це.) І я бачив організації, які буквально не переймалися цим способом, доки код працював, для деякого визначення поняття «працював». Моє особисте відчуття полягає в тому, що ви маєте більше шансів виправити це з мінімальними іншими головними болями, якщо ви їдете обережно.
Джон Р. Стром

12
@John я можу , звичайно , бачимо , що погана робота ситуація може змусити кого - то , щоб ходити навшпиньки , як що - але це погана ситуація , якщо це питання в першу чергу. Хтось із таким крихким егою (і культурою на робочому місці, яка дозволяє їхнім шенагіганам) не для бізнесу починається.
HedgeMage

6
Більшість зрілих програмістів добре сприймають критику. Зрештою, те, для чого стосуються експертних оцінок (і ми всі робимо огляди коду, чи не так?) Цілком нормально критикувати написання та граматику коментарів, імен функцій тощо. ВСЕ відображає не лише автора, але й на всю їх організацію.
quick_now

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

10

Змініть самі.

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


5
І тоді ви виявите, що ви щойно зламали код третього хлопця. Вам потрібно виправити такі речі якнайшвидше, а не лише тоді, коли ви зможете дістатись до нього після того, як перший хлопець все перевірив.
Девід Торнлі

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

@CornelMasson: Не дуже. Це ключова частина розробки API.
Гонки легкості на орбіті

6

Я розробник, чия рідна мова - це не англійська, це насправді голландська, і зовсім не заперечував би, якщо хтось вкаже мені на граматичну чи орфографічну помилку. Таким чином я можу постійно вдосконалювати свою англійську. І точно не важко виправити всі помилки у всьому вихідному коді. Простий скрипт Perl може бути легко записаний для перегляду всіх файлів у папці. Можливо, навіть це можна зробити за допомогою sed? Не знаю.

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


6

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


10
І ми ніколи не хочемо бачити подібні речі знову.
Девід Торнлі

4

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

Я також хочу додати кілька речей:

  • Код часто пишуть люди, які не дуже добре володіють англійською мовою та / або англійська мова не є їх рідною мовою. Якщо в коді, який ви переглядаєте, є граматична помилка, це не означає, що ваш колега допустив цю помилку. Можливо, це була просто копія-вставка з веб-сайту.
  • Якщо англійська мова не є рідною мовою вашого колеги, можливо, це буде гарна або дуже погана ідея сказати їй / йому про цю помилку. Будучи з Франції, я завжди вітаю зауваження щодо помилок, які я роблю англійською мовою, тому що це єдиний спосіб, коли я можу їх уникнути в майбутньому; з іншого боку, я знаю кількох людей, які відчувають себе дуже боляче, якщо ви розповісте їм про граматичні помилки, які вони роблять.
  • Як сказав Джон Р. Стром, ніколи цього не робіть публічно. Більшість людей буде справді роздратовано цим.

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

3
Я погоджуюся на 100%, що як професіонали ми повинні поводитись як дорослі, і не сприймати це особисто. Але це абсолютно потрібно вказати і виправити. Так, слід використовувати такт і підходити до нього за потребою, залежно від конкретної особи. Але якщо ви перебуваєте в оточенні, де рекомендується взагалі уникати проблеми, можливо, саме час піти. Це вказувало б на отруєне середовище.
Марк Фрідман

Будь-яку орфографічну помилку можна перевірити за допомогою простого пошуку в Google
JoelFan

2

Я б рекомендував використовувати IDE із вбудованим інструментом перевірки орфографії. IntelliJ Idea робить чудову роботу для програм Java. Існує безліч невтішних помилок, які вона ловить не тільки у назвах функцій, але, наприклад, у повідомленнях про винятки, які користувач бачить. Програма, яка видає повідомлення, сповнені помилок, не викликає великої впевненості.


0

Я роблю це лише в тому випадку, якщо

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

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

if userHasPermission() ...

1
Однак граматичні помилки все ще є однаковими, оскільки в цьому випадку userHavePermission()було б неправильно.
Дін Хардінг

Але саме в цьому справа !! userHasPermission()означає, що він повертає bool через граматику ~ OR ~, це може означати, що він встановлює дозвіл користувача. (Офіцер має міст: користувач має дозвіл). Це все ще невиразно.
Стівен Фурлані

Хоча я згоден з тим, що назви прикладів у Q надмірно довгі, я застерігаю щодо «занадто довгого» узагальнення. У цьому випадку поняття можна виразити меншою кількістю слів, тому воно повинно бути коротшим. Однак, що таке "занадто довго"? Чи є обмеження символів чи слів?
LS

0

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

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

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


0

Застосовується Золоте правило

Робіть іншим так, як ви хотіли б їх робити вам.

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


2
-1 для розпливчастості - я поняття не маю, що ви радите запитувачу робити.
HedgeMage

@HedgeMage, я раджу ОП застосувати en.wikipedia.org/wiki/The_Golden_Rule
kevpie

2
Я з цим знайомий. Окрім того, що явно нерозумно (немає причин вважати, що так, як Аліса хоче поводитись з ним, як Боб хоче поводитися), це відволікає від реального питання: створення хорошого коду. Впевнений, я не збираюся з цим хитритись, але я не базуюсь на тому, чи варто піднімати технічну проблему на тому, чи хоче людина, яка пише поганий код, піднята!
HedgeMage

Я думаю, що скаргу @ HedgeMage можна проілюструвати так: Я хочу, щоб код був найвищою якістю, дозволеною наявними часом та ресурсами, тому що я дбаю про проект та мою подальшу роботу над ним. Боб хоче уникнути критики за виправлені помилки, оскільки критику не сприймає добре. Ми будемо реалізовувати «золоте правило» зовсім інакше.
безглазкість

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

0

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


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

Така автоматизація не вирішує цих проблем, вона просто вловлює деякі помилки, які роблять люди.
перекрито

Автокорекція ??? В Інтернеті є чимало прикладів автоматичного виправлення "несправностей". Це точно не добре.
Флоріан Ф

0

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

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

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


-1

userPermission () можливо? -

Останнє, на що я натрапила, - це глобальна проблема результатів пошуку, не висвітлену через те, що ім'я класу було написано високим світлом. Дуже незрозумілий помилка на пляму.


Скидання без коментарів - гидота.
mplungjan

-1

Звичайно, зауважте, але не витрачайте час на перевірку орфографічних помилок. Використовуйте інструмент для автоматизації цього на вашому ІС. У .net fxCop може це зробити ...


-2

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

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

/ rant :)


2
Наполягаючи на речах, я так і є. Наполягаючи, що речі використовують правильний написання та граматику - це зовсім інша річ.
Девід Торнлі

Не зовсім впевнений, чому моя відповідь є голосною, але ніколи не має значення ... Крім того, куди пішла моя відповідь на коментар Девіда? У будь-якому разі, 100% правильна граматика англійської мови не завжди бажана в розвитку. У моєму вище прикладі "Завантаження об'єктів даних" не є повним реченням, але це більш краща формулювання двох - стислий, простий у локалізації та не займає багато місця.
JohnL
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.