Ten argument zakłada, że nie masz problemu z pisaniem Unicodów ani czytaniem greckich liter
Oto argument: czy chciałbyś pi czy circular_ratio?
W tym przypadku wolałbym pi od circular_ratio, ponieważ dowiedziałem się o pi, odkąd byłem w szkole podstawowej i mogę się spodziewać, że definicja pi jest dobrze zakorzeniona dla wszystkich programistów wartych jego soli. Dlatego nie miałbym nic przeciwko wpisaniu π, aby oznaczać okrągły_ratio.
A co z tym?
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
lub
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
Dla mnie obie wersje są równie nieprzejrzyste, tak jak pi
lub π
są, z tym wyjątkiem , że nie nauczyłem się tej formuły w szkole podstawowej. winner_sigma
i Wwin
nic dla mnie nie znaczy ani dla kogokolwiek, kto czyta kod, a użycie żadnego z nich σw
nie poprawi go.
Tak więc, używając opisowych nazw, na przykład total_score
, winning_ratio
itd zwiększyłoby czytelność znacznie lepsze niż przy użyciu nazwy ASCII jedynie wymawia greckie litery . Problemem nie jest to, że nie mogę odczytać greckich liter, ale nie mogę skojarzyć znaków (greckich lub nie) z „znaczeniem” zmiennej.
Na pewno rozumiał problem siebie, gdy powiedział: You should have seen the paper. It's just eight pages...
. Problem polega na tym, że jeśli nazewnictwo zmiennych opiera się na papierze, który wybiera zwięzłość liter zamiast zwięzłości (bez względu na to, czy są greckie), wówczas ludzie musieliby przeczytać gazetę, aby móc skojarzyć litery z literą "znaczenie"; oznacza to, że stwarzasz sztuczną barierę, aby ludzie mogli zrozumieć Twój kod, a to zawsze jest złe.
Nawet jeśli mieszkasz w ASCII tylko świata, zarówno a * b / 2
i alpha * beta / 2
są równie nieprzejrzysta rendering height * base / 2
, formuła obszar trójkąta. Nieczytelność użycia zmiennych jednowymiarowych rośnie wykładniczo wraz ze wzrostem złożoności formuły, a formuła AllegSkill z pewnością nie jest formułą trywialną.
Zmienna z pojedynczymi literami jest akceptowana tylko jako prosty licznik pętli, bez względu na to, czy są one greckimi pojedynczymi literami, czy pojedynczymi literami ascii, nie obchodzi mnie to; żadne inne zmienne nie powinny składać się wyłącznie z jednej litery. Nie dbam o to, czy używasz greckich liter do swoich imion, ale kiedy ich używasz, upewnij się, że mogę skojarzyć te imiona z „znaczeniem” bez konieczności czytania dowolnego artykułu w innym miejscu.
Będąc w szkole podstawowej, zdecydowanie nie miałbym nic przeciwko widzeniu wyrażeń matematycznych wykorzystujących symbole takie jak: +, -, ×, ÷, dla podstawowej arytmetyki, a √ () byłaby funkcją pierwiastka kwadratowego. Po ukończeniu szkoły podstawowej nie miałbym nic przeciwko dodaniu nowych błyszczących symboli: ∫ do integracji. Zwróć uwagę na trend, to są wszyscy operatorzy. Operatory są znacznie częściej używane niż nazwy zmiennych, ale rzadziej są ponownie wykorzystywane do zupełnie innych znaczeń (w przypadku, gdy matematycy ponownie używają operatorów, nowe znaczenie często ma pewne podstawowe właściwości starego znaczenia; nie jest tak w przypadku przy ponownym użyciu nazw zmiennych).
Podsumowując, nie, nie jest źle używać znaków Unicode w nazwach zmiennych; jednak zawsze źle jest używać nazw liter o pojedynczych literach w nazwach zmiennych, a możliwość używania nazw w Unicode nie jest licencją na używanie nazw liter o zmiennej nazwie.