Работа с ненормативной лексикой в ​​исходном коде [закрыто]

34

Как люди справляются с ненормативной лексикой в ​​исходном коде и комментариях VCS. Сохранить или удалить?

А как насчет мягких ругательств, таких как WTF или Arrgggh?

Это непрофессионально, оскорбительно или что-то, на что можно не обращать внимания?

Сэл
источник
15
В каждом конкретном случае ... комментарии - это путь для личности разработчиков. Так же, как вам приходится иметь дело с N типами личностей, вы также должны иметь дело с N типами комментариев, которые отбрасывают индивидуальность разработчиков. Как вы справляетесь с данным разработчиком, используя ненормативную лексику, когда вы общаетесь с ними через IM, электронную почту, в устной форме?
Аарон Макивер
10
Я должен был сказать некоторым младшим разработчикам, чтобы не оставлять ненормативную лексику в комментариях. ИМХО это очень непрофессионально. Если вы не ругаетесь перед своими коллегами или клиентами, зачем ругаться в комментариях / коде? И если бы вы клялись перед своими коллегами и клиентами ... тогда у вас гораздо более спокойная рабочая среда, чем у меня. :)
Тианна
4
@Tyanna: На моем последнем рабочем месте мы были даже немного расистами! Если вы можете назвать это так. Я думаю, что политкорректность ужасна среди коллег, которые видят друг друга изо дня в день. Будете ли вы бояться рассказывать расистские шутки кому-то, кого вы видите по 10 часов в день? С другой стороны, я живу в Боливии - я думаю, что у США гораздо больше иск, это, иск, этот менталитет, и поэтому никто не хочет наступать ни на что.
4
@ Анна Лир: в Дании никогда не предъявляют иск за то, что она рассказала острую шутку. Однако в США ... Все зависит от того, в какой атмосфере вы работаете. В США больше внимания уделяется HR-дронам, которые следят за каждой мелочью.
10
Просто сделайте grep f.ckисходный код ядра Linux. Если это достаточно хорошо для них, это достаточно хорошо для меня. Но никогда не ставьте что-либо оскорбительное в местах, где есть хоть малейшие шансы, что клиенты это заметят. Я сделал это один раз, и, к счастью, нам удалось получить обновление в последнюю минуту, но это было не весело. (Ну, на самом деле это было потом.)
biziclop

Ответы:

41

Это должно быть мягко обескуражен

..Вы не можете знать, кто увидит исходный код в течение его жизни.

В то время как все это является частью работы, которая заключается в том, чтобы разочароваться в особенно сложном или старом куске кода и захотеть высказать свое мнение об этом, помещать в исходный код ругательства / недовольство / ASCII-арт / плохие шутки / оскорбительные замечания - и непрофессионально, и плохая идея в моем опыте. Иногда инженер, пишущий комментарии, не замечает возможных последствий, которые могут иметь его комментарии - вот лишь некоторые из проблем, которые я вижу:

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

В то время как у всех нас должны быть некоторые выходы для разочарования / веселья / раскачивания, исходный код не место для этого, IMO. Вы не будете помещать ругательные / шутки / оскорбительные комментарии в Контракт, Справочные страницы, Чертежи или другие профессиональные документы, даже если эти документы могут быть прочитаны даже реже, чем исходный код.

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

Нет никаких оснований утверждать, что комментарии компилируются - как насчет JavaScript или любого другого динамического кода на стороне клиента?

Вот некоторые из моих реальных опытов, которые сформировали мое мнение:

  • Работая в Microsoft, я обнаружил, что один инженер-программист не знал правильное написание слова «не может» - он пропустил o, l и d - и усыпил большую часть своего кода длинными объяснениями того, как он не мог заставить X работать, потому что Y человек вызывал проблему Z. Его код был великолепен; его написание было не так хорошо. Достаточно сказать, что любой последующий рецензент этого кода (например, я) был встревожен, увидев большое количество случайных ругательств в коде. Часть этого кода была показана партнерам (авторам драйверов). Вообразите их ужас при виде ругательств. В идеале рант должен был быть перед менеджером проекта в устной форме (в этом случае лицо Y может быть привлечено к обсуждению) или, возможно, зафиксировать сообщения, но не в источнике.

  • В одной компании человек, говорящий на иностранном языке, присоединился к преимущественно англоязычной команде. Он писал комментарии на своем языке, думая, что никто другой не сможет их прочитать. Это было хорошо, пока Babelfish / Google Translate не выпустили опцию «на английский» для своего языка, после чего остальная часть команды перевела несколько комментариев и была потрясена грязными и часто уничижительными комментариями, которые парень делал о компании. , его команда и сотрудница. Неудобно .

  • В другой компании один парень действительно увлекся искусством ASCII и поместил все виды искусства в свой исходный код, незапятнанный (или, возможно, благословленный) рецензентами кода. Через некоторое время он почему-то остановился на драконах, обычно с какой-то меткой. Позже к команде присоединился валлиец. Государственный герб Уэльса - красный дракон, поэтому новичок сначала был очень рад фотографиям, но затем обиделся, когда некоторые глупые метки можно было бы назвать оскорбительными. Да, требуется некоторое посредничество руководителя группы, но этого не должно было случиться.


Имена / особенности удалены, чтобы защитить невинных.

JBRWilkinson
источник
1
Я бы добавил, что не стоит поощрять ненормативную лексику в вашей системе отслеживания дефектов. Имея возможность попросить отправителя отредактировать свой комментарий, чтобы удалить ненормативную лексику, я могу вам сказать, что это не очень приятная позиция для руководителя / руководителя группы / менеджера. Особенно, когда они отказываются.
fast_now
@ quickly_now, как ты справился с такой ситуацией?
Я спросил снова. Когда человек снова отказался, я отредактировал комментарии, чтобы очистить их. Я не думал, что это стоило пройти процесс консультирования / дисциплинарного наказания (шаг № 1, ведущий к увольнению), но я также сообщил своему боссу, что я нашел и сделал. Мы все согласились, что это не пойдет дальше, если не повторится (и это не повторилось). Не смешно. [Я должен также добавить, что оскорбительные комментарии были сообщены мне другим сотрудником, который был обеспокоен. Это сделало мою проблему решить. Иногда старшие должности не стоят дополнительных $ !!!]
quick_now
«но потом обиделась, когда некоторые глупые метки могли быть истолкованы как оскорбительные». Вы должны быть ОЧЕНЬ глубоко обеспокоенным человеком, чтобы обидеться с изображением дракона, потому что вы валлиец.
Майлз Рут
24

Если вы продаете свой исходный код (то есть вы пишете компоненты), его, вероятно, там быть не должно.

Если это вопрос ханжества, тогда как угодно, решать только вам.

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

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

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

Питер Тернер
источник
1
+1 за пункт о том, что не нужно продавать исходный код Код должен быть тщательно проверен на наличие таких комментариев перед доставкой.
FrustratedWithFormsDesigner
2
Грубые комментарии определенно не очень хорошая идея, если вы разработчик HTML. :)
biziclop
@biziclop, что очень печально, потому что HTML настолько разочаровывает язык, насколько это возможно. Проверьте @ the jinx ссылку на уровень ненормативной лексики в источнике. Похоже, что Javascript привязан в первую очередь (не уверен, включает ли это случайную минимизированную прокрутку javascript)
Питер Тернер
Наш простой фильтр контента, работающий на jenkins, имел проблему с этим: void pushItem (...
sal
17

Я работаю в компании из списка Fortune 500, которая разрабатывает, производит и продает потребительские продукты, в которых микроконтроллеры работают с кодом, разработанным собственными силами. Судебные разбирательства всегда возможны, либо со стороны потребителей, надеющихся быстро разбогатеть, либо со стороны конкурентов, заявляющих о нарушении. Из-за этого мы пишем наш код и ВСЕ комментарии со знанием того, что он может (вероятно, будет) подвергнуться проверке враждебных присяжных заседателей в какой-то момент. Это означает, что имена переменных и функций не должны содержать подстрекательских терминов, например KILL_CHILD(int process_id). Хотя цель этой примерной функции вполне могла бы заключаться в прекращении дочерних процессов, как враждебное жюри может просмотреть это имя функции, если ребенок истца был убит во время использования продукта?

Комментарии в коде могут быть еще хуже. Хотя достойная команда защиты могла бы, вероятно, справиться с объяснением того, что такое дочерний процесс (из предыдущего примера) и почему его, возможно, нужно прекратить, было бы почти невозможно защититься от такого комментария:

// The following section of code is REALLY BAD!!!  I hope
//  it doesn't burn anybody's house down.

Подобные комментарии были решающими факторами в реальных судебных делах.

Что касается смежной темы, названия для проектов также могут быть проклятыми под микроскопом интенсивного судебного разбирательства. Помните ли вы, что в середине 90-х годов шумные группы консерваторов сообщили о том, что «SATAN Unleashed On The Internet» опубликован ?

<rant_mode_off>

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

oosterwal
источник
1
+1 за указание на самый опасный аспект этого НЕПРОФЕССИОНАЛЬНОГО поведения. Я работал в командах «due diligence», которые изучали исходный код компаний, которые собирался купить F500, для которого я работал. Мы искали такого рода вещи по причинам, которые вы упомянули, и имело значение, кто получил постоянную работу, а кто нет, когда слияние было завершено. В частности, крупная компания (глубокие карманы) не покупает небольшую компанию для того, чтобы унаследовать судебные иски о преследовании / враждебной рабочей среде, поэтому правонарушители увольняются / становятся излишними после завершения покупки.
kloucks
5
KILL_CHILD - просто абсурдный пример. И мне бы хотелось, чтобы цитата из таких комментариев была решающим фактором в реальных судебных делах. (Я не просто говорю, что как STFU ... Я действительно хотел бы прочитать цитату.)
Вольфгер
1
«Это означает, что имена переменных и функций не должны содержать подстрекательских терминов, таких как KILL_CHILD». Это самая глупая вещь, которую я когда-либо читал, и вам должно быть стыдно даже предположить, что KILL_CHILD - это плохое имя для функции.
Майлз Раут
9

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

Однако, если это только беспокоит вас, и, кажется, никто не возражает, возможно, вам следует просто смириться с этим.


источник
Вот в чем дело: я не "сосу" вещи.
gnasher729
7

Возможно, я не тот человек, которого нужно спрашивать, поскольку я часто использую ненормативную лексику

Я думаю, что это в основном зависит от того, насколько ПК (политкорректно) ваша среда.

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

Мне кажется, что в США и некоторых других странах люди гораздо больше (или застряли) в ПК, чем в Нидерландах, где я живу и работаю.

В качестве дополнительного бонуса приведем некоторые статистические данные о ненормативной лексике в коде: http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/

JinX
источник
1
Я думаю, что это больше зависит от сектора - в условиях высокого давления, таких как финансы, ругательства распространены.
JBRWilkinson
это также сильно зависит от того, что вы считаете "ненормативной лексикой". Как и в статье, связанные «lol» и «rofl» были выбраны как ненормативная лексика, когда большинство из нас, я думаю, не будет классифицировать их как таковые.
jwenting
Речь идет не о ПК, а о правильном использовании языка (вы можете быть совершенно не ПК и все же не использовать ненормативную лексику - вы можете быть глубоко оскорбительным и грубым и все же не использовать ненормативную лексику). Об этом нужно думать так, чтобы не допустить чрезмерного оскорбления - неуместного, потому что почти все оскорбительно для кого-то, - но большинство из нас знает, где находится линия, и, как правило, клянутся, что слова не на той стороне. Сдержанность в этой области полезна - если вы не ругаетесь много или часто, тогда когда вы замечаете людей ...
Murph
6

Я склонен согласиться с тем, что это может быть довольно непрофессионально, но все время от времени ругаются, поэтому я стараюсь не противопоставлять себя другим. Тем не менее, кодовая база имеет тенденцию отражать общий профессионализм группы, поэтому объяснительная загруженная кодовая база может отражать непрофессиональную группу, и может потребоваться встреча для того, чтобы «применить некоторую полировку» к группе. Аналогично, если в коде появляются определенные тенденции, это может быть индикатором общих проблем в группе, которые необходимо решить (т. Е. API, с которым вы работаете, имеет проблемы, которые расстраивают разработчиков).

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

rjzii
источник
3
+1, Интересно, я не думал об использовании шаблонов expletive-появлений для отслеживания разочарования в связи с конкретными функциями / библиотеками.
FrustratedWithFormsDesigner
1
Relevent: osnews.com/images/comics/wtfm.jpg
Daenyth
5

Это непрофессионально, оскорбительно или что-то, на что можно не обращать внимания?

Возможно, все три ... в зависимости от вашей точки зрения.

Это человеческая природа, чтобы люди выражали себя, используя «красочный язык» в определенных ситуациях. В одних культурах больше, чем в других, а у некоторых людей больше, чем у других. Но эта тенденция универсальна.

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

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

Стивен С
источник
Ключевым моментом здесь является «в определенных ситуациях» - то есть, где это уместно и приемлемо. Я думаю, что разумно предположить, что комментарии (код или коммит) не являются действительно приемлемыми местами и поэтому не подходят.
Мерф
5

Одна из проблем с ненормативной лексикой заключается в том, что она отличается от культуры к культуре. В США невинные вещи, как правило, «выдыхаются», в то время как в других странах часто можно услышать один и тот же язык, которым обмениваются в парламентских дискуссиях.

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

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

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

Быстрое решение этой проблемы - установить фильтр ненормативной лексики в вашей системе контроля версий (в виде сценария предварительной отправки или регулярной проверки).

Uri
источник
2
Я должен не согласиться с вашим предложением автоматического фильтра ненормативной лексики. Во-первых, вы рискуете столкнуться с проблемой Сканторпа, а во-вторых, как говорит Стивен С., ненормативная лексика, скорее всего, является признаком другой проблемы, и запрет ее не устранит ее волшебным образом.
Скотт
2
+1 Для фильтра ненормативной лексики, но важно избегать «ошибочной ошибки» ( thedailywtf.com/Articles/The-Clbuttic-Mistake-.aspx )
rjzii
фильтры ненормативной лексики не работают. Они имеют тенденцию блокировать безобидные вещи и позволять плохим вещам проходить. Они также, как правило, легко обходятся.
jwenting
cntd. Я делаю модерацию для форума фотографии природы. Когда администраторы решили установить фильтр ненормативной лексики, все обсуждения о бобрах, домашних кошках, птицах и т. Д. Будут подвергаться цензуре. Прежде чем он был удален снова, пользователи начали разрабатывать способы обхода фильтра. Если вы не можете рассказать о своей поездке снимать бобров (упс, 3 плохих слова в одном коротком предложении), вы, например, говорите о своем tr.ip с sh.oo.t be.ave.rs, а фильтр быть слишком stu.pi.d (другое слово, которое было запрещено), чтобы поймать его.
jwenting
Для меня аргумент об отказе от ненормативной лексики «потому что многие из них являются дерьмом» имеет такой же смысл, как и отказ от спам-фильтров, sql-дезинфицирующих средств и т. Д. Существуют достойные сторонние варианты. Если вы используете просто регулярные выражения, вы SOL.
Ури
3

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

/ * * игорь: я сделаю себя публичным массером? * Франкенштейн: а, игорь, я унаследую твои лучшие черты ... * /

Так продолжалось долго. Он создал два названных объекта, как вы уже догадались: Франкенштейн и Игорь как часть проверки здравомыслия. Это было на самом деле очень креативно, но это пустая трата времени. Я бы скорее увидел несколько WTF или ругательств, чем сценарий между двумя объектами C # ...

Nodey The Node Guy
источник
Забавно. Непродуктивно, но смешно.
Пол Натан
@ Пол: Ха! Извините, да - не очень продуктивно, но было нелепо видеть этот день, просматривая какой-то код.
Nodey The Node Guy
2

Зависит от культуры компании / клиента. Например, если вы разрабатываете библейское программное обеспечение, ругательства в любой форме, безусловно, нежелательны. С другой стороны, разработчик игры может не заботиться так сильно (или перейти к другой крайности).

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

Тем не менее, я не использую ругательства, но я буду иногда использовать такие вещи, как "Doh!" или "А?" который не слишком отличается по духу. Если это вас беспокоит, поговорите об этом с обидчиком - возможно, он не думает об этом. Если вам говорят, что нужно пойти в поход, и вы сильно к этому относитесь, позвоните менеджеру. Если вы не получите поддержки от менеджера, то вам придется научиться жить с ним или пойти в другое место.

Берин Лорич
источник
Извините, что такое "Библейское программное обеспечение"? (не англичанин здесь).
Ладья
2
В Библии записано христианское учение. Библейское программное обеспечение - это программное обеспечение, которое христиане могут использовать для перекрестного изучения текста в разных переводах, поиска того, что ученые сказали об определенном отрывке, и в целом изучения текста. В одном отрывке из Священных Писаний говорится о том, что «пусть из ваших уст не исходит коррумпированное общение», что на старом английском языке не ругайте, и не говорите о вещах, которые разрушают людей. Я уверен, что есть и другие религиозные приложения, где проклятие было бы одинаково нежелательным.
Берин Лорич
3
Христиане разбирают исполняемые файлы для поиска ругательств в источнике?
Хм, комментарии не скомпилированы так, что это даже не сработает;)
JinX
5
Поэтому, если я пишу программное обеспечение для Библии, я должен подвергать цензуре все непристойные вещи в Библии?
Wooble
1

Ну, я не совсем уверен, что еще вы должны сказать о коде так:

tocommit = (n + (COMMITSIZE/PAGESIZE) - 1) & ~(COMMITSIZE/PAGESIZE - 1);

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

dsimcha
источник
3
Убей этого самца с помощью огня и магнита!
1

Как уже говорили другие, это зависит от рабочего места и того, кто увидит исходный код.

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

В настоящее время мой сервер сборки сообщает о комментариях OMG, WTF, kludge, mess и TODO как показатель оставшейся очистки, чтобы сделать это прямо сейчас, они являются частью процесса.

Билл
источник
1

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

Эндрю Гримм
источник
0

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

Они тебя беспокоят ? Исходя из того, что вы задаете этот вопрос, я предполагаю, что они это делают. В этом случае удалите их или очистите их в более подходящие комментарии о том, что не так.

Марси
источник