Okej, to jedna z tych małych rzeczy, które zawsze mnie denerwowały. Zazwyczaj nie skracam identyfikatorów, a jedyny raz, kiedy używam krótkiego identyfikatora (np. i
), Jest dla ciasnej pętli. Więc denerwuje mnie, kiedy pracuję w C ++ i mam zmienną, którą należy nazwać operator
lub class
muszę ją obejść lub użyć skrótu, ponieważ w końcu wystaje. Zastrzeżenie: może się to zdarzyć nieproporcjonalnie często, ponieważ dużo pracuję nad projektowaniem języka programowania, w którym obiekty domeny mogą odzwierciedlać koncepcje w języku hosta i przypadkowo powodować konflikty.
Jak sobie z tym poradzisz? Skracać? ( op
) Błędnie piszesz? ( klass
) Coś jeszcze? ( operator_
)
$var
składnię PHP , to jest to.Odpowiedzi:
Zaakceptuj, że być może będziesz musiał wprowadzić niewielkie zmiany w konwencji nazewnictwa, takie jak dodanie wielkich liter. Lepiej jest to zaakceptować jak najszybciej, aby cały kolejny kod był spójny.
Zastanów się nad bardziej szczegółowym. Słowa kluczowe wydają się być dość szeroki, więc zwężenie
class
dółdemonstrationClass
nie działa tylko wokół zagadnień, ale również zwiększa czytelność.źródło
To nie jest coś, z czym się zetknąłem, ale jeśli dostanę się w takiej sytuacji, spróbuję rozwiązać to z następującymi opcjami, w kolejności.
źródło
const Foo&
nie ma żadnej rozsądnej pełnej nazwy innej niżfoo
. To prawda, że lepiej byłoby podać swojeFoo
bardziej opisowe imię, niżfoo
gdyby żyło w ciele funkcyjnym i służy mniej wyspecjalizowanemu celowi.Język wygrywa; nie możesz przechytrzyć kompilatora (ignorując takie obrzydliwości jak PL / 1
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END
, ale wtedy PL / 1 nie spowodowałoby, że zadałeś pytanie w pierwszej kolejności). Zasadniczo musisz przestrzegać zasad języka i znaleźć alternatywę dla słów kluczowych tego języka na własny użytek - lub znaleźć inny język.Tak więc, z wyjątkiem bardzo nietypowych okoliczności, dostosowujesz się do języka, a nie odwrotnie.
źródło
Zamiast skracać, co powiesz na wydłużenie? Jeśli implementujesz konstrukcję klasy w języku Foo, co powiesz na użycie FooClass i foo_class? (Modulo bez względu na preferencje dotyczące obudowy).
źródło
Niektóre skróty, których używałem
class
, w kolejności częstotliwości:cls
clss
clazz
theClass
aClass
Jeśli wiem, jaką klasę
Class
reprezentuje instancja, mogę zawrzeć ją w nazwie zmiennej:stringClass = Class.forName("java.lang.String");
źródło
W C i C ++ słowa kluczowe są pisane małymi literami, a w języku rozróżniana jest wielkość liter, więc od czasu do czasu naciskaj klawisz Shift, a wiele problemów zniknie.
W Modula-2, słowa kluczowe są wielkie - ale tak długo, jak identyfikatory mają jakieś małe litery różnica jest oczywista i ściera się niemożliwe.
Poza tym absolutnie konwencje nazewnictwa do pewnego stopnia muszą odzwierciedlać normalne konwencje używanego języka, więc z pewnością napisałbym „myClass” w Javie, gdzie bardziej prawdopodobne byłoby napisanie „My_Class” w C ++.
Zasadniczo nie piszesz tylko dla kompilatora, ale to, co ludzie uważają za czytelne, zależy w pewnym stopniu od kontekstu i powiązanych oczekiwań.
źródło
class
iClass
szkodzi to czytelności kodu.Nie często się na to natrafiam, ale kiedy to robię, zwykle nie jest to problemem, ponieważ używam Delphi i pozwala to obejść ten problem, przygotowując znak & do identyfikatora. Zatem „klasa” nie jest prawidłowym identyfikatorem, ale „& klasa” to.
źródło
Dodałbym pewien rodzaj przestrzeni nazw do nazwy zmiennej. Załóżmy na przykład, że masz moduł o nazwie użytkownik, a następnie zmodyfikowałbym operator nazwy zmiennej tak, aby był jak użytkownik_operator lub użytkownik_operator.
źródło
a
,an
ithe
stosować zakłócania częstotliwości przez początkujących CS studentów.aPerson
.a
od zmiennych zmiennych ścisłych: /zmień lub dostosuj moją konwencję nazewnictwa
źródło