як дізнатись, чи є орфографічні помилки у вихідному коді серйозною проблемою чи ні? [зачинено]


15

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

ArgumnetCount
Timeount
Gor message from queue 

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

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

Мені хотілося б дізнатися, як це серйозне питання чи ні?

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



4
Голосували за закриття як поза темою. Це пов'язано не з розробкою, а з будь-яким доменом, куди пишуть люди, від коментарів YouTube до вмісту веб-сайтів. Деяких людей просто не цікавить їх написання та перевірка орфографії. Вони із задоволенням створюють свій широкомасштабний веб-сайт електронної комерції, який має три помилки у власній назві, написані великою кількістю на домашній сторінці. І, на жаль, більшість користувачів цього веб-сайту електронної комерції не турбувались ні про те.
Арсеній Муренко

5
@MainMa: письмово мовою програмування досить відрізняється від написання людською мовою. Коли ви пишете для коментарів YouTube, цілком очевидно, що ви пишете для людських читачів, але з вихідним кодом поширене ставлення до того, що поки він збирається і працює, все добре.
tdammers

2
@tdammers: коли ви пишете вихідний код, або запитання на Stack Exchange, чи книгу, або коментар YouTube, або вміст домашньої сторінки веб-сайту електронної комерції, у будь-якому випадку ви це робите для людей, які читають це. Програмування не відрізняється, і вашому компілятору не важливо, чи будете ви називати свою змінну ArgumentCountабо ArgumnetCount.
Арсеній Муренко

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

Відповіді:


19

Правописні помилки можуть означати одну з двох речей:

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

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

Але чому саме орфографічні помилки погані, а всі інші рівні? Зрештою, код працює, і компілятор зовсім не переймається тим, як ви називаєте свої ідентифікатори, якщо вони не порушують правила синтаксису. Причина в тому, що ми пишемо код не тільки для комп’ютерів, але і, і найбільше, для людей. Якби це не було, ми все одно використовуємо збірку. Вихідний код пишеться один раз, але читається сотні разів протягом його життєвого циклу. Орфографічні помилки ускладнюють читання та розуміння вихідного коду - легкі помилки змушують читача спотикатися на частку секунди, багато з них можуть спричинити значні затримки; дійсно погані помилки можуть зробити вихідний код абсолютно нечитабельним. Існує ще одна проблема, яка полягає в тому, що більшість коду, який ви пишете, буде посилатися на інший код, і цей код частіше за все пише хтось інший. Якщо ви неправильно написали свої ідентифікатори, хтось інший повинен буде запам'ятати (або шукати вгору) не тільки те, що це ім’я, але і те, як саме воно неправильно написано. Це вимагає часу і порушує потік програмування; і оскільки більшість кодів не раз торкаються в обслуговуванні, кожна орфографічна помилка викликає безліч перерв.

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


5
Я хотів би додати , що орфографічні помилки можуть привести до важко проблеми налагодження , де thisVaraibleі thisVariableвиглядають майже однаково і «технічно» правильно.
Спенсер Ратбун

6
+1, але твердження: "якщо ви не можете чітко висловити свої думки англійською мовою, швидше за все, ви теж не можете їх добре висловити мовою програмування" - це абсолютно нісенітниця!
Мартін Ба

2
@Martin: Мені ще не потрібно знайти програміста світового класу із жорстоким стилем письма. Усі топ-програмісти, яких я знаю, також здатні писати лаконічну, чітко виражену англійську мову; деякі з них (Knuth, Dijkstra) навіть дещо славляться своїм стилем письма.
tdammers

5
@tdammers: Якщо вони носії англійської мови, я погоджусь. Але якщо у вас інша рідна мова, ви можете досить жахливо зрозуміти англійську мову і все-таки бути хорошим програмістом. Це я мав на увазі дурниці. Я погоджуюся, що хороші програмісти також вміють добре писати - якою б природною мовою вони не володіли. (Трохи англійської мови, очевидно, допомагає знайти свій шлях по мережі, але вам ні в якому разі не потрібно вільно говорити або хороший письменник або будь-яке розуміння граматики чи стилю англійською мовою :-)
Martin Ba

5
Зауважте, як Dijkstra не є носієм мови ...
tdammers

9

Я насправді сумніваюся, чи "Timeount" - це питання не бути носієм мови. Люди роблять тонни друкарських помилок своєю рідною мовою. Я б не кваліфікував ці конкретні приклади як "англійські".

Сказавши це, я розумію, що мова не йде про ці конкретні приклади. Я згоден з вами в принципі. Я зіткнувся з фактичними неприємностями, спричиненими цим типом матеріалів ("якщо немає стовпчика з назвою вкладень, створіть вкладення").

Бути програмістом - це бути точним і обережним з друкарськими помилками, комами, крапками з комою, крапками, що більшість часу є агностиком людини.


9

Перший раз, коли ви витрачаєте час на пошук Timeoutзмінної, щоб дізнатись, що вона написана так Timeount, ви дізнаєтесь ще одну причину важливості написання.


7

Якщо ця проблема вас хвилює, більшість IDE тепер дозволяють перевіряти орфографію в коментарях, щоб дислексики могли принаймні виглядати так, як вони знають, як написати. Це точно мені допомагає! Тому тривіальна «фіксація» - мати гарне написання.


2
Якщо ви проголосуєте, чи можете ви витратити час, щоб сказати, чому я можу вдосконалити свою відповідь?
Сардатріон - проти зловживань з боку SE,

6
Я не заявив, але ви не дуже відповідаєте на його запитання. Ви даєте поради, як уникнути орфографічних помилок. Це цілком коректний коментар, але не те, про що вимагала ОП.
Конрад Моравський

6

Правописні помилки в назвах і методах публічного класу просто непрофесійні. Вони коштують часу і грошей. Вони болісні в статично набраних мовах, таких як Java, де IDE може створювати меню назв класів та методів. Вони нестерпні в динамічно набраних мовах.

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

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


5

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

Також, особливо в коментарях, речовина важливіша за форму. Тут немає англійської мови:

String s = "Вікіпедія"; / * Присвоює значення "Wikipedia" змінній s. * /

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

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

Загальнодоступні речі, звичайно, повинні бути ретельно прочитані.


2
Скажіть, будь ласка, ви навмисно набрали "porblem". :)
pdr

2
Звичайно, я так і зробив. Якщо ви вважаєте, що це дратує, ви можете виправити це;)
Joonas Pulakka

2
О ні. Я вважав це надзвичайно кумедним.
pdr

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

4

Проблема тут не в самій англійській мові, а в недостатній ясності коментарів. Ідеальна англійська мова не потрібна, англійська мова зрозуміла. Тривіально щось запустити через Google, щоб зібрати очевидні помилки.

Наприклад, це не ясно з першого погляду, якщо Gor message from queueозначає "отримав повідомлення з черги" або "повідомлення GOR з черги". Вам потрібно буде прочитати код, щоб зрозуміти значення коментаря (тим самим переможивши об'єкт коментаря).

Вам слід попросити впровадити огляд коду у вашій компанії. Тоді ви можете "критикувати" людей конструктивно, поки вони роблять те саме.


2

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

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

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

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


Майк, невідповідність відповідей та запитання - це нещодавнє масове редагування, внесене до нього. До Rev 3, заголовок питання був: Що ви думаєте про вихідний код англії? і текст сильно відповідав цьому
gnat

Це має сенс @gnat; Я видалив додатковий абзац зі своєї відповіді.
Майк Партрідж

2

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

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


1

Це фактично два окремих, але пов'язані з цим питання. Це залежить від того, де неправильно написані:

1) У вихідному коді. Якщо у вас є такий ідентифікатор ArgumnetCount, це може створювати справжні проблеми, коли хтось приходить і використовує правильне написання. Тож слід виправляти ці помилки, коли це можливо. Якщо вам потрібно зберегти зворотну сумісність API, ви можете зробити щось на кшталт:

/**
 * @deprecated - use setArgumentCount()
 */
public void setArgumnetCount(int c) {
    setArgumentCount(c);
}

2) У читаному для людини тексті (електронні листи, документація, коментарі до коду). Написання цих текстів важливо, але я б сказав, що це нижчий пріоритет, оскільки програмне забезпечення для розбору всередині вашої голови набагато прощає. Якщо ви бачите текст з декількома помилками, який все ще читається, тоді не хвилюйтеся - це не ваша проблема. Але якщо хтось надсилає вам якусь вільну асоціативну нісенітницю і очікує, що ви будете використовувати цю нісенітницю як креслення для багатокористувацького веб-додатку, то вам слід надіслати автору ввічливу записку з проханням роз'яснити (щось на кшталт: "Ви неграмотний дебіл, як це зробити ти очікуєш, що я зрозумію це лайно? ")


-1

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

Не дозволяйте цьому вийти з рук. Постарайтеся навчити всіх, хто не підтримує код читачів.


1
"Намагайся всіх навчати" - я це зробив, і тепер вони неправильно написали / вводили речі, лише щоб мене не зважати. Подобається ...
MetalMikester

5
@MetalMikester: можливо, настав час шукати більш професійний магазин.
Кевін Клайн

-1

Ну, це багатогранна культурна проблема.

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

Зважаючи на такий стан речей, і англійська мова є "lingua franca", особливо в галузі програмного забезпечення, неминуче, що на саму англійську мову впливає величезна кількість носіїв мови. Але для носіїв англійської мови це все-таки краще, ніж вимагати, щоб сказати, китайською мовою, щоб взяти участь у галузі SW.


-1

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

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


-3

У мене є сенс: Охайний код не обов'язково означає охайний розум, але аверс, безумовно, правда: неохайний код, неохайний розум.

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

Так, це серйозне питання для продукту, для команди та для окремих людей.

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

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