Цей аргумент передбачає, що у вас немає проблем із введенням унікодів та читанням грецьких літер
Ось аргумент: хотіли б ви pi чи circular_ratio?
У цьому випадку я віддаю перевагу pi перед circular_ratio, тому що я дізнався про pi ще з навчання в класі, і можу очікувати, що визначення pi добре вбудоване для всіх програмістів, які вартують його солі. Тому я не був би проти введення π, щоб означати circular_ratio.
Однак про що
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
або
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
Для мене обидві версії однаково непрозорі, як pi
і π
є, за винятком того, що я не вивчив цю формулу в школі. winner_sigma
і Wwin
нічого не означає ні для мене, ні для когось іншого, хто читає код, і використання жодного σw
не робить його кращим.
Таким чином, використання описових імен, наприклад total_score
, winning_ratio
тощо, значно збільшить читабельність, ніж використання імен ascii, які просто вимовляють грецькі літери . Проблема не в тому, що я не можу читати грецькі букви, але я не можу пов’язати символи (грецькі чи ні) із "значенням" змінної.
Ви , звичайно , зрозуміли цю проблему самостійно , коли ви прокоментували: You should have seen the paper. It's just eight pages...
. Проблема полягає в тому, що якщо ви базуєте свою назву змінної на папері, який вибирає однолітерні назви для стислість, а не для читабельності (незалежно від того, грецькі вони), то людям доведеться читати папір, щоб мати змогу асоціювати букви з "значення"; це означає, що ви ставите штучний бар'єр, щоб люди могли зрозуміти ваш код, і це завжди погано.
Навіть якщо ви живете в ASCII-тільки світу, як a * b / 2
і alpha * beta / 2
є настільки ж непрозорий рендеринг height * base / 2
формула трикутника область. Нечитабельність використання однобуквенних змінних зростає експоненціально, оскільки формула зростає у складності, а формула AllegSkill, безумовно, не є тривіальною формулою.
Змінна одинарна літера є прийнятною лише як простий лічильник циклу, будь то грецька однобуквенна або одноциліфрована асції, мені все одно; жодні інші змінні не повинні складатися виключно з однієї літери. Мені байдуже, якщо ви використовуєте грецькі літери для своїх імен, але коли ви їх використовуєте, переконайтесь, що я можу пов’язати ці імена зі «значенням», не потребуючи читати довільний папір деінде.
Коли в школі класу я точно не заперечував би бачити математичні вирази, використовуючи такі символи, як: +, -, ×, ÷, для основної арифметики, а √ () буде функцією квадратного кореня. Після закінчення школи я не заперечую проти додавання нових блискучих символів: ∫ для інтеграції. Зауважте тенденцію, це всі оператори. Оператори набагато сильніше використовуються, ніж імена змінних, але їх рідше використовують для зовсім іншого значення (у випадку, коли математики повторно використовують оператори, нове значення часто все ще має деякі основні властивості старого значення; це не стосується при повторному використанні імен змінних).
На закінчення, ні, не погано використовувати символи Unicode для змінних імен; однак завжди використовувати імена однієї літери для змінних імен завжди погано, а дозволяти використовувати імена Unicode - це не ліцензія на використання одноіменних імен змінних.