Должен ли я указать на ошибки, связанные с правописанием / грамматикой, в чьем-то коде? [закрыто]


106

Просматривая код сотрудника, я столкнулся с некоторыми орфографическими ошибками в именах функций, а также грамматическими ошибками, такими как «doesUserHasPermission ()» вместо «doUserHavePermission ()» в именах функций и переменных.

Должен ли я указать ему на это или я слишком педантичен, замечая это?


3
Я мог бы быть осторожным, что человек действительно хочет помочь с их английским языком, если это не их второй язык. Некоторые люди довольны знанием того, что они не способны выражать структурированные мысли, что они просто неспособны к правильному английскому языку. Если английский является их родным языком, то да, я думаю, что плохая грамматика является проблемой.
Рей Миясака

31
Да. Это действительно расстраивает, когда у вас есть API с неправильным написанием. Это распространяется как лесной пожар. Так что лучше исправить это как можно скорее.

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

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

Ответы:


205

Код с орфографическими и грамматическими ошибками не поддерживается .

  • Люди не будут помнить плохую грамматику, поэтому они попытаются вызвать функцию так, как она должна была быть написана, и именно так происходят ошибки.

  • Вы не можете найти что-то в коде, если не знаете, как оно написано.

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

Исправление этих проблем не педантично, и при этом это не требуется прежде всего мнением других о чьем-то интеллекте, грамотности и т. Д. (Хотя это большой побочный эффект); речь идет о написании качественного, поддерживаемого кода .


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

15
+1 - После того, как орфографические и грамматические ошибки попадают в API, их уже почти невозможно выбраться снова. Я потратил большую часть трех лет на то, чтобы написать «Avtivity» вместо «Activity», и это всегда было физически больно .
Джон Боде

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

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

2
@ Джон Боде, я думаю, что вы должны были создать функцию-обертку :) C # имеет хитрый прием для этого (хотя я забыл его название).
Работа

38

Да, безусловно. Имя легче запомнить, если оно грамматически правильно. Попытка запомнить имя и грамматические ошибки - это совсем другое.


29

Не указывайте на них как на недостатки в официальном обзоре кода. Вместо этого отметьте список и поговорите с ним / ней ЧАСТНО о них. Будьте настолько дипломатичны, насколько это возможно, просто «Эй, кое-что я заметил, и я столкнулся с людьми, которые ДЕЙСТВИТЕЛЬНО смотрят свысока на такие вещи, они думают, что программист выглядит небрежным и неряшливым».

Если это код, который клиент увидит, его абсолютно НЕОБХОДИМО исправить. Нравится вам это или нет, это влияет на репутацию вашей компании.

Для примера, который вы привели, я подозреваю, что он начинался как UserHasPermission, и кто-то другой сказал ему, что местная практика - это «UserBlahBlah ()», а не «UserBlahBlah ()», и он просто пропустил изменение грамматики.


12
Сказать, что это о восприятии других, делает его неважным. Скажи правду - они делают код сложнее поддерживать и развивать.
HedgeMage

5
@HedgeMage: Мой личный опыт с такими вещами заключается в том, что некоторые люди ЧРЕЗВЫЧАЙНО обидчивы на вещи, которые они воспринимают как критику самих себя. Хуже того, могут быть действительно ужасные политические последствия, если человек, которого вы критикуете, очень любим руководством. (Да, у меня есть шрамы, чтобы доказать это.) И я видел организации, которые буквально не заботились о такого рода вещах, пока код работал, для некоторого определения «работал». Мое личное ощущение, что у вас больше шансов исправить это, с минимальными другими головными болями, если вы будете осторожны.
Джон Р. Штром

12
@John я могу , конечно , видим , что плохая работа ситуация может заставить кого - то , чтобы ходить на цыпочках , как что - но это плохая ситуация , если это вопрос в первую очередь. Кто-то с таким хрупким эго (и культурой рабочего места, которая позволяет их махинациям) не годится для бизнеса с самого начала.
HedgeMage

6
Большинство зрелых программистов хорошо воспринимают критику. В конце концов, для этого и нужны рецензии (и мы все делаем рецензии кода, не так ли?) Вполне нормально критиковать написание и грамматику комментариев, имен функций и т. Д. Это ВСЕ отражается не только на авторе, но и на авторах. на всю их организацию.
fast_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 из-за грамматики ~ ИЛИ ~, это может означать, что он устанавливает права пользователя. (У офицера есть мост :: у пользователя есть разрешение). Это все еще расплывчато.
Стивен Фурлани

Хотя я согласен с тем, что имена примеров в Q неоправданно длинные, я предостерегаю насчет «слишком длинного» обобщения. В этом случае понятие может быть выражено меньшим количеством слов, поэтому оно должно быть короче. Однако что такое «слишком долго»? Есть ли ограничение на количество символов или слов?
LS

0

Это также происходит ОЧЕНЬ МНОГО в моем проекте (будучи заполненным исконно ивритом, русскими или говорящими на арабском языке людьми), но даже на более высоком уровне - часто я вижу код, который использует некоторую неясную терминологию, которая является тем, что словарь произвел как перевод для что имел в виду автор, и это не имеет ничего общего с тем, что они имели в виду ...

Лично, когда это происходит так часто и так много членов команды, которые могли бы написать код еще до того, как я присоединился к проекту, я склонен игнорировать его, потому что это просто не имеет значения.

Однако, если я выполняю какую-то работу в том же файле, что и код или комментарии, которые были написаны давно, и в них есть опечатки, я исправлю их только потому, что это не слишком много работы.


0

Золотое правило применяется

Делайте с другими так, как вы бы хотели, чтобы они поступали с вами.

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


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

@HedgeMage, я советую ОП применить en.wikipedia.org/wiki/The_Golden_Rule
kevpie

2
Я знаком с этим. Помимо того, что это явно глупо (нет никаких оснований полагать, что то, как Алиса хочет, чтобы к ней относились, так же, как Боб хочет, чтобы к ней относились), она отвлекает от реальной проблемы: создания хорошего кода. Конечно, я не собираюсь быть придурком по этому поводу, но я не основываюсь на том, стоит ли поднимать технический вопрос о том, хочет ли тот, кто пишет плохой код, его поднимать!
HedgeMage

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

Совет означает, что ОП действует так, как он хотел бы, чтобы относились к нему. Не относиться к Бобу так, как хотел бы, чтобы относился Боб. Я рекомендовал ОП исправить Боба, поскольку он (ОП) хотел бы исправить те же ошибки, особенно в контексте, которым ОП поделился.
kevpie

0

Как и в случае со многими другими хорошими практиками программирования, единственный объективный, неполитический и эффективный способ реализации политики правописания в программах - это автоматизировать ее как часть процесса предварительной фиксации. Автоматизация избавит вас от огромного количества жалоб, даже если вам придется написать собственный инструмент для этой цели.


3
Многие из наиболее важных ошибок не могут быть обнаружены автоматически. Это относится и к орфографии и грамматике. Вы можете сделать автоматическую проверку, но результаты должны быть эквивалентны предупреждениям. Это связано с тем, что средства проверки орфографии производят как ложные срабатывания (например, имена собственные), так и ложные отрицания (два тоже). Так что ручное вмешательство необходимо.
Мэтью Флешен

Такая автоматизация не решает эти проблемы, она просто улавливает некоторые ошибки, которые совершают люди.
выдержал

Автокоррекции ??? Есть много примеров автозамены "сбоев" в Интернете. Это определенно не хорошо.
Флориан Ф

0

Это небольшая ошибка в коде, но это ошибка. Относитесь к этому как к любой другой ошибке, которую вы найдете. Моя политика заключается в том, чтобы всегда предполагать, что мои коллеги компетентны, и обращаться с ними таким образом, пока они не докажут обратное.

Если это будет единственной ошибкой, я могу просто исправить ее и проверить. Если это шаблон, я могу попросить этого сотрудника просмотреть эти исправления. Дайте им знать, что вы думаете, что они хороший кодер, но это то, что было бы неплохо улучшить. Хотя я не думаю, что когда-нибудь сделаю что-то подобное.

Пока вы не относитесь к этому как к большой проблеме, должно быть легко поставить этого сотрудника в положение, где он может улучшиться, не ставя эго на линию.


-1

userPermission () возможно? -

Последней, с которой я столкнулся, была глобальная проблема, когда результаты поиска не выделялись, потому что имя класса было написано с подсветкой. Очень неясная ошибка, чтобы обнаружить.


Понижение голосов без комментариев - это мерзость.
mplungjan

-1

Обязательно укажите это, но не тратьте свое время на проверку орфографических ошибок. Используйте инструмент для автоматизации этого на вашем CI. На .net fxCop можно сделать это ...


-2

Это в значительной степени зависит от того, какие ошибки есть, насколько они распространены и насколько они плохие, а также от того, действительно ли это является истинной ошибкой или просто от того, как вы это скажете.

Лично я не могу этого вынести, когда какой-то идиот затягивает 5-минутный просмотр кода на полчаса, потому что он хочет, чтобы все переименовывалось так, как он это делал, и все комментарии переписывались только потому, что ему нравится вставлять весло. Строка регистрации что говорит «Загрузка объектов данных» не нужно менять на «Компонент загрузчика объектов данных теперь будет загружать соответствующие объекты данных из компонента хранения объектов данных».

/ напыщенная речь :)


2
Настаивать на своем - это одно. Настаивать на том, что вещи используют правильное правописание и грамматику - это совсем другое.
Дэвид Торнли

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