Хотя грамматически неправильно, но при написании идентификаторов для функций, переменных и т. Д. Имеет ли смысл просто добавлять "s" к множеству слов, оканчивающихся на Y? Моя причина этого заключается в том, что если вам нужно найти и заменить, например, замену «company» на «vendor», то «company» будет соответствовать формам единственного и множественного числа (« company» и « company s»), тогда как если множественное число было написано правильно, вам придется сделать два отдельных поиска.
9
Ответы:
Любой такой поиск и замена должны выполняться с осторожностью, и каждое изменение должно проверяться вручную, чтобы, например, не допускать, чтобы «сопровождающий» в комментарии становился «автором» изменения вашей компании / поставщика. Таким образом, два отдельных поиска «компании» и «компаний» не должны создавать значительных накладных расходов по сравнению с временем, затрачиваемым на проверку и утверждение каждого изменения.
Таким образом, неправильно написанные слова для выполнения только одного поиска предлагают негативные признаки плохого внешнего вида и того, что их труднее читать, чем нужно, без какой-либо очевидной выгоды.
источник
Я предполагаю, что вы говорите о переименовании в файлах исходного кода. В сегодняшних IDE это всегда следует делать с помощью инструментов рефакторинга IDE. Если ваша IDE не имеет этого, рассмотрите возможность перехода на другую IDE. Большинство инструментов рефакторинга IDE также хранят историю рефакторинга, давая вам возможность быстро «отменить», если вам не нравятся результаты рефакторинга. Используя поиск / замену, вы не сможете отменить весь набор изменений (если только вы не используете инструменты контроля версий и не возвращаетесь к ранее принятой версии). Кроме того, используя инструменты рефакторинга, вы защищены от случайного изменения чего-то, что вы не собирались менять.
источник
Да! Да! Да! Это имеет смысл сделать это. И я делал это годами.
Раскрытие 1: английский не мой родной язык.
Раскрытие 2: Мои знания грамматики английского языка значительно лучше, чем у среднего носителя языка.
Раскрытие 3: Когда дело доходит до общения с людьми, я - яростная нацистская грамматика.
И теперь, когда эти раскрытия не в порядке, позвольте мне заявить, что английской грамматике нет места в коде. Видите ли, именно поэтому это называется кодом, а не прозой . Предполагается, что он имеет некоторое сходство с языком, понятным людям, с целью читабельности, но кроме этого, в коде нам больше всего нужны не качества прозы; это другие, более технические качества, такие как точность , однозначность и краткость . Вот почему C синтаксис
if( x != y ) y++;
является более предпочтительным по сравнению сIF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
синтаксисом Кобола. Предполагаемая желательность компиляторов, которые понимают естественный язык, является ошибкой, и не верьте мне на слово, посмотрите, что скажет по этому поводу О'Эдсгер:Эдсгер В. Дейкстра. О глупости "программирования на естественном языке" .Другим важным качеством является вычислимость идентификаторов . Тот факт, что вызываемое свойство
Color
всегда может быть прочитано через вызываемыйgetColor()
и записываемый метод,setColor()
имеет первостепенное значение. Эти идентификаторы вычисляются по названию свойства, поэтому вам не нужно знать их наизусть. Если бы программист выбрал пару методов, вызываемыхgetColor()
с одной стороны, ноcolorize()
с другой стороны, их коллеги по праву рассмотрели бы этот саботаж. Вот как важен идентификатор вычислимости.Кроме того, могут быть написаны инструменты программирования (и многие из них были написаны, например, Hibernate ), которые могут вычислять эти имена. Без вычислимости имени идентификатора вам пришлось бы использовать дополнительный синтаксис (например, в Hibernate, дополнительные аннотации), чтобы точно указать каждому инструменту, как создавать каждое отдельное имя идентификатора, или точно, какое специальное имя вы дали каждой сущности.
Таким образом, вычислимость идентификатора важна, в то время как грамматика английского языка не имеет значения, (поскольку мы не занимаемся программированием на естественном языке), поэтому иметь возможность вычислять имя коллекции сущностей, всегда добавляя «s» к имени одного экземпляра имеет смысл, не говоря уже о том, что он нарушает чувствительность большинства людей (включая мою) к английскому языку.
И нравится нам это или нет, это тенденция будущего. Родным языком большинства программистов на планете уже не является английский, и в этом направлении тенденция будет оставаться очень сильной . (Кроме того, я бы даже не хотел ставить деньги на предположение, что английский сейчас является родным языком большинства программистов, работающих в США.) Это люди, которые в значительной степени при попытке вычислить имя коллекции из названия одного экземпляра «компания», просто добавит «s», а форма «компании» даже не придет им в голову. Для огромного и постоянно растущего процента программистов в мире знание особенностей английского языка не добавляет никакой ценности их работе, а лишь усложняет ее.
источник
Companys
когда это должно бытьCompanies
. В конце концов, весь смысл кода, который мы обычно пишем, заключается в том, чтобы сделать его ближе к естественному языку.