Czy powinienem wskazać błędy ortograficzne / gramatyczne w czyimś kodzie? [Zamknięte]

106

Przeglądając kod współpracownika, natknąłem się na niektóre błędy ortograficzne w nazwach funkcji, a także błędy gramatyczne, takie jak „doesUserHasPermission ()” zamiast „doesUserHavePermission ()” w nazwach funkcji i zmiennych.

Czy powinienem mu to wskazać, czy też jestem zbyt pedantyczny, zauważając je?

Rahul
źródło
3
Mogę być ostrożny, że osoba ta naprawdę potrzebuje pomocy w języku angielskim, jeśli nie jest to ich drugi język. Niektórzy ludzie są zadowoleni, wiedząc, że nie są zdolni do wyrażania ustrukturyzowanych myśli, że po prostu nie są w stanie mówić po angielsku. Jeśli angielski jest ich językiem ojczystym, to tak, myślę, że zła gramatyka jest problemem.
Rei Miyasaka
31
Tak. To naprawdę frustrujące, gdy masz interfejs API z nieprawidłową pisownią. Rozprzestrzenia się jak pożar. Lepiej więc jak najszybciej to poprawić.
9
@Rei: to, czy angielski jest ich językiem ojczystym, czy nie, nie powinno mieć znaczenia w środowisku zawodowym; jeśli nie jest to dla nich takie złe, ale nie jest to żadna wymówka, należy ich przestrzegać tych samych standardów.
Thomas Bonini,
4
@Rei, wiele prac programistycznych, które widzę w reklamach, wymaga biegłości w językach ojczystych z tego właśnie powodu. Możliwość omawiania wymagań, projektu, specyfikacji i budowy jest bardzo ważna dla całego oprogramowania jako całości.
Stephen Furlani,
11
HTTP-Refererczęsto mi przeszkadza. en.wikipedia.org/wiki/HTTP_referrer#Origin_of_the_term_referer
opłacony frajer

Odpowiedzi:

205

Kod z błędów ortograficznych i gramatycznych jest unmaintainable .

  • Ludzie nie będą pamiętać złej gramatyki, więc spróbują wywołać funkcję tak, jak powinna być napisana, i tak właśnie się dzieje.

  • Nie możesz grepować o coś w kodzie, jeśli nie wiesz, jak to się pisze.

  • Większość osób, które tworzą gramatykę / pisownię, robi to niekonsekwentnie, dlatego wprowadzają wiele błędów związanych z niedopasowaniem nazw. Jest to szczególnie problematyczne w językach, które nie wymagają jawnego zadeklarowania zmiennych przed użyciem, ponieważ możesz wprowadzić nową pisownię, a twój kod nie zatrzyma się, by poinformować cię, że masz problemy.

Rozwiązanie tych problemów nie jest pedantyczne, nie jest też konieczne przede wszystkim przez opinie innych na temat inteligencji, umiejętności czytania itp. (Choć jest to duży efekt uboczny); chodzi o jakość pisania , łatwy do utrzymania kod .

HedgeMage
źródło
7
+1 Czasami oszczędzanie czyichś uczuć jest ważne, ale gdy jest to przegląd kodu ... jeśli go złapiesz, uczciwa gra to komentowanie. Moja firma używa tygla do recenzji kodu, co pozwala wszystkim recenzjom zobaczyć, że został złapany i pozwala recenzentowi oznaczyć go nie jako wadę, ale jako styl.
opello
15
+1 - Kiedy błędy ortograficzne i gramatyczne trafią do interfejsu API, prawie niemożliwe jest ich ponowne wyjście. Spędziłem większą część trzech lat konieczności pisania „Avtivity” zamiast „aktywność”, a to zawsze fizycznie boli to zrobić.
John Bode
7
Na dobre lub złe, dobra praktyka programowania często sprowadza się do czegoś bardzo przypominającego pedanterię. Ponadto chciałbym znaleźć osobę, która błędnie napisała Referrerw oryginalnej specyfikacji HTTP i kopnęła go w kostkę. Oczywiście był to prawdopodobnie Berners-Lee, więc później poczułbym się winny ...
Malvolio
2
@Stephan Furlani: o to właśnie starałem się poruszyć; była to część interfejsu API, którego nie mieliśmy. Nie mogliśmy tego naprawić po naszej stronie, a proces jego naprawy był na tyle brzydki i na tyle długi, że nikt nie chciał z tym zadzierać.
John Bode
2
@John Bode, myślę, że powinieneś był utworzyć funkcję otoki :) C # ma do tego fajną sztuczkę (zapomniałem jej nazwy).
Job
38

Tak, zdecydowanie. Łatwiej zapamiętać nazwę, jeśli jest poprawna gramatycznie. Próba zapamiętania błędów w nazwie i gramatyce to zupełnie inna sprawa.

Jason Baker
źródło
29

Nie wskazuj ich jako wad w formalnym przeglądzie kodu. Zamiast tego zaznacz wpis i porozmawiaj o nim PRYWATNIE. Bądź tak dyplomatyczny, jak to możliwe, po prostu „Hej, coś, co zauważyłem, i natknąłem się na ludzi, którzy NAPRAWDĘ nie patrzą na tego rodzaju rzeczy, myślą, że to sprawia, że ​​programista wygląda niedbale i niechlujnie”.

Jeśli jest to kod, który klient zobaczy, absolutnie MUSI zostać poprawiony. Czy ci się to podoba, czy nie, odzwierciedla on reputację twojej firmy.

W podanym przez ciebie przykładzie podejrzewam, że zaczął się on jako UserHasPermission, a ktoś inny powiedział mu, że lokalną praktyką jest raczej UserSlabaBlah () niż UserBlahBlah (), a on po prostu przeoczył zmianę gramatyki.

John R. Strohm
źródło
12
Mówienie, że dotyczy postrzegania innych osób, sprawia, że ​​wydaje się to nieistotne. Mów prawdę - utrudniają utrzymanie i rozbudowywanie kodu.
HedgeMage
5
@HedgeMage: Moje osobiste doświadczenia z takimi rzeczami są takie, że niektórzy ludzie są BARDZO drażliwi wobec rzeczy, które postrzegają jako krytykę samych siebie. Co gorsza, mogą wystąpić naprawdę brzydkie reperkusje polityczne, jeśli osoba, którą wydaje się krytykować, jest ukochana przez kierownictwo. (Tak, mam blizny, aby to udowodnić.) I widziałem organizacje, które dosłownie nie obchodziły tego rodzaju rzeczy, dopóki kod działał, dla pewnej definicji „działał”. Moim osobistym odczuciem jest to, że masz większą szansę na naprawienie go przy minimalnych innych bólach głowy, jeśli pójdziesz delikatnie.
John R. Strohm,
12
@John Z pewnością widzę, że zła sytuacja w pracy może zmusić kogoś do chodzenia po takich skorupkach jajek - ale jest to zła sytuacja, jeśli jest to problem przede wszystkim. Ktoś z tak kruchym ego (i kulturą pracy, która pozwala ich shenaniganom) nie jest dobry dla biznesu na początek.
HedgeMage
6
Większość dojrzałych programistów dobrze przyjmuje krytykę. W końcu do tego właśnie służą recenzje użytkowników (i wszyscy robimy recenzje kodu, prawda?) Całkiem dobrze jest krytykować pisownię i gramatykę komentarzy, nazw funkcji itp. WSZYSTKO odzwierciedla nie tylko autora, ale na całej ich organizacji.
Szybko_niedz.
6
Muszę się zgodzić z HedgeMage tutaj, jeśli nie możesz wskazać takich błędów podczas przeglądu kodu (szczególnie gdy są one obiektywnie złe, jak w przykładzie w pytaniu), to masz większe problemy ...
Dean Harding
10

Zmień to sam.

Mamy nadzieję, że znajdujesz się w środowisku, w którym „własność” kodu nie stanowi problemu. Jeśli masz dostęp do projektu pod kontrolą źródła, po prostu wejdź i napraw go sam. Jeśli widzisz konkretnego współpracownika, który konsekwentnie popełnia ten sam rodzaj gramatyki lub błędy ortograficzne, możesz to wskazać, ale będzie to zależeć od twojego związku, tego, czy dana osoba jest rodzimym językiem angielskim, i jego ogólnej wrażliwości. Ale bez względu na to, czy zdecydujesz się to zrobić, czy nie, po prostu spokojnie i napraw. Robię to cały czas, jeśli widzę literówkę, szczególnie w sygnaturze metody lub we właściwości publicznej, po prostu to naprawiam. Czasami nie mogę się oprzeć pokusie poprawienia literówki w komentarzu, ale to tylko ja :)

Marcie
źródło
5
A potem okazało się, że właśnie złamałeś kod trzeciego człowieka. Musisz jak najszybciej naprawić tego rodzaju rzeczy, nie tylko wtedy, gdy możesz to zrobić po sprawdzeniu wszystkiego przez pierwszego faceta.
David Thornley
Jeśli obawiasz się, że poprawka do dowolnego fragmentu kodu może złamać kod „cudzej” i nie masz możliwości powiedzieć, to masz większe problemy niż pisownia.
Cornel Masson,
@CornelMasson: Nie bardzo. Jest to kluczowa część projektowania interfejsu API.
Wyścigi lekkości na orbicie
6

Jestem programistą, którego językiem ojczystym nie jest angielski, a właściwie holenderski, i nie miałbym nic przeciwko, gdyby ktoś wskazał mi błąd gramatyczny lub ortograficzny. W ten sposób mogę ciągle doskonalić swój angielski. I z pewnością nie jest trudne poprawienie wszystkich błędów w całym kodzie źródłowym. Prosty skrypt Perla można łatwo napisać, aby przeglądać wszystkie pliki w folderze. Być może nawet można to zrobić za pomocą sed? Nie wiem

Z pewnością wskazałbym błędy gramatyczne lub ortograficzne w czyimś kodzie, ale tylko jeśli jestem absolutnie pewien, czy to prawda, co mówię.


źródło
6

Chyba warto tu wspomnieć, że nagłówek strony odsyłającej HTTP w protokole HTTP został błędnie zapisany jako „referer” (i musimy z tym żyć / nauczyliśmy się z nim żyć.) :)

Królik
źródło
10
I nigdy więcej nie chcemy tego oglądać.
David Thornley,
4

Zgadzam się z innymi odpowiedziami, mówiąc, że kod z błędami gramatycznymi jest nie do utrzymania.

Chcę też dodać kilka rzeczy:

  • Kod jest często pisany przez osoby, które nie mówią zbyt dobrze po angielsku i / lub angielski nie jest ich językiem ojczystym. Jeśli w sprawdzanym kodzie występuje błąd gramatyczny, nie oznacza to, że współpracownik popełnił ten błąd. Może to tylko kopia i wklej ze strony internetowej.
  • Jeśli angielski nie jest językiem ojczystym twojego współpracownika, dobrym lub złym pomysłem może być poinformowanie go o tym błędzie. Będąc z Francji, zawsze z zadowoleniem przyjmuję uwagi na temat błędów, które popełniam w języku angielskim, ponieważ jest to jedyny sposób, aby uniknąć ich w przyszłości; z drugiej strony znam kilka osób, które czują się naprawdę zranione, jeśli powiesz im o popełnionych przez nich błędach gramatycznych.
  • Jak powiedział John R. Strohm, nigdy nie rób tego publicznie. Większość ludzi będzie tym naprawdę zirytowana.
Arseni Mourzenko
źródło
11
„Może to tylko kopia i wklej ze strony internetowej”. Osoba kopiująca powinna była złapać problem i go naprawić. Kopiowanie go dosłownie i pozostawianie błędów jest równie złe lub gorsze niż samodzielne pisanie i tworzenie błędów. „Znam kilka osób, które naprawdę czują się zranione, jeśli powiesz im o popełnionych przez nich błędach gramatycznych” W biznesie wszyscy powinniśmy zachowywać się jak dorośli i współpracownicy, którzy starają się osiągnąć wspólny cel. Osoba poruszająca tę kwestię musi użyć taktu, a osoba otrzymująca krytykę musi ją zaakceptować i wyrastać z niej.
Tin Man
3
Zgadzam się w 100%, że jako profesjonaliści powinniśmy zachowywać się jak dorośli i nie brać tego osobiście. Ale absolutnie należy to wskazać i poprawić. Tak, należy zastosować takt i należy do niego podejść w zależności od potrzeb, w zależności od osoby. Ale jeśli jesteś w środowisku, w którym zachęca się do całkowitego uniknięcia problemu, być może nadszedł czas, aby odejść. Wskazywałoby to na zatrute środowisko.
Mark Freedman,
Każdy błąd pisowni można sprawdzić za pomocą prostego wyszukiwania w Google
JoelFan
2

Polecam używanie IDE z wbudowanym sprawdzaniem pisowni. Idea IntelliJ wykonuje wspaniałą pracę dla programów Java. Jest wiele kłopotliwych literówek, które wychwytuje, nie tylko w nazwach funkcji, ale w np. Komunikatach wyjątków, które użytkownik widzi. Program, który generuje wiadomości pełne literówek, nie budzi zaufania.

Roman Zenka
źródło
0

Robię to tylko wtedy, gdy

  • wpływa na korzystanie z programu
  • wpływa na dokładność programu
  • Wiem wyraźnie, że autor chce być poprawiony.

Na marginesie, jeśli nazwy funkcji są wystarczająco długie, aby mieć gramatykę, prawdopodobnie są one zbyt długie. W podanym przykładzie wywołałbym funkcję userHasPermission i przeniósłbym „gramatykę” do twojego kodu, mniej więcej tak:

if userHasPermission() ...
Mark Harrison
źródło
1
Nadal istnieje jednak ten sam potencjał błędów gramatycznych, ponieważ w tym przypadku userHavePermission()byłoby źle.
Dean Harding,
Ale o to właśnie chodzi !! userHasPermission()oznacza, że ​​zwraca bool z powodu gramatyki ~ LUB ~ może to oznaczać, że ustawia uprawnienia użytkownika. (Oficer ma most :: użytkownik ma uprawnienia). To jest wciąż niejasne.
Stephen Furlani,
Chociaż zgadzam się, że przykładowe nazwy w Q są niepotrzebnie długie, ostrzegam przed „zbyt długim” uogólnieniem. W takim przypadku pojęcie można wyrazić w mniejszej liczbie słów, dlatego powinno ono być krótsze. Co jednak jest „zbyt długie”? Czy istnieje limit znaków lub słów?
LS
0

Zdarza się to również DUŻO w moim projekcie (zaludnionym przez native speakerów hebrajskich, rosyjskich lub arabskich), ale nawet na wyższym poziomie - często widzę kod, który używa niejasnej terminologii, która okazuje się być tym, co słownik utworzył jako tłumaczenie co autor miał na myśli i nie ma to nic wspólnego z tym, co mieli na myśli ...

Osobiście, gdy zdarza się to tak często i przez tak wielu członków zespołu, którzy mogliby napisać kod jeszcze przed przystąpieniem do projektu, zwykle go ignoruję, ponieważ to po prostu nie ma znaczenia.

Jeśli jednak popełniam trochę pracy w tym samym pliku, co kod lub komentarze, które zostały napisane dawno temu i mają literówki, poprawię je tylko dlatego, że nie jest to zbyt wiele pracy.

Daniel Hershcovich
źródło
0

Obowiązuje złota zasada

Czyńcie innym, tak jak chcecie, aby wam to robili.

Chcę, żeby inni mieli tego rodzaju plecy, więc pomagam innym. Bycie łaskawym i wspierającym może przejść długą drogę na twoją korzyść.

kevpie
źródło
2
-1 za niejasność - nie mam pojęcia, co radzisz pytającemu.
HedgeMage
@HedgeMage, radzę OP zastosować en.wikipedia.org/wiki/The_Golden_Rule
kevpie
2
Znam to. Oprócz tego, że jest głupiutko (nie ma powodu, aby sądzić, że sposób, w jaki Alice chce być traktowana, to sposób, w jaki Bob chce być traktowany), odwraca uwagę od prawdziwego problemu: tworzenia dobrego kodu. Jasne, nie zamierzam się tym przejmować, ale nie opieram się na tym, czy poruszyć problem techniczny, czy osoba pisząca zły kod chce go podnieść!
HedgeMage
Myślę, że skargę @ HedgeMage można zilustrować w następujący sposób: chcę, aby kod był najwyższej jakości dozwolonej przez czas i dostępne zasoby, ponieważ dbam o projekt i moją przyszłą pracę nad nim. Bob chce uniknąć krytyki za możliwe do naprawienia błędy, ponieważ nie przyjmuje dobrze krytyki. „Złotą zasadę” będziemy wdrażać zupełnie inaczej.
powiek
Ta rada oznacza, że ​​PO działa tak, jak chciałby być traktowany. Nie traktować Boba, jak Bob chciałby być traktowany. Zachęcałem OP do poprawienia Boba, ponieważ on (OP) chciałby być poprawiony za te same błędy, szczególnie w kontekście, który udostępnił OP.
kevpie
0

Podobnie jak w przypadku wielu innych dobrych praktyk programistycznych, jedynym obiektywnym, niepolitycznym i skutecznym sposobem wdrożenia polityki dotyczącej pisowni w programach jest zautomatyzowanie jej w ramach procesu wstępnego zatwierdzenia. Automatyzacja uratuje cię od ogromnych skarg, nawet jeśli będziesz musiał napisać własne narzędzie do tego celu.

Apalala
źródło
3
Wiele najważniejszych błędów nie może zostać wychwyconych automatycznie. Dotyczy to także pisowni i gramatyki. Możesz wykonać automatyczną kontrolę, ale wyniki będą musiały być równoważne z ostrzeżeniami. Wynika to z faktu, że sprawdzanie pisowni generuje zarówno fałszywe pozytywy (np. Właściwe rzeczowniki), jak i fałszywe przeczenia (również dwa). Konieczna jest zatem ręczna interwencja.
Matthew Flaschen
Tego rodzaju automatyzacja nie rozwiązuje tych problemów, po prostu wychwytuje niektóre błędy, które popełniają ludzie.
zrozumiał
Autokorekta ??? W Internecie istnieje wiele przykładów autokorekty „nieudanych”. To zdecydowanie nie jest dobre.
Florian F
0

Jest to niewielki błąd w kodzie, ale jest błędem. Traktuj to jak każdy inny błąd, jaki znajdziesz. Moja polityka zawsze zakłada, że ​​moi współpracownicy są kompetentni i traktują ich w ten sposób, dopóki nie udowodnią inaczej.

Jeśli jest to pojedynczy błąd, mógłbym to naprawić i sprawdzić. Jeśli jest to wzorzec, mogę zacząć prosić współpracownika o sprawdzenie poprawek. Poinformuj ich, że uważasz, że są dobrym programistą, ale że jest to coś, co warto poprawić. Nie sądzę, żebym kiedykolwiek zrobił coś wielkiego na temat czegoś takiego.

Tak długo, jak nie traktujesz tego jako poważnego problemu, powinno być łatwo postawić tego współpracownika w sytuacji, w której można go poprawić bez narażania ego na ryzyko.

zrozumiany
źródło
-1

userPermission () może? -

Ostatnio natknąłem się na globalny problem braku wyników wyszukiwania, ponieważ nazwa klasy została przeliterowana. Bardzo niejasny błąd do wykrycia.

mplungjan
źródło
Głosowanie bez komentowania jest obrzydliwością.
mplungjan
-1

Oczywiście, zaznacz to, ale nie marnuj czasu na sprawdzanie błędów ortograficznych. Za pomocą narzędzia zautomatyzuj to w swoim CI. Na .net fxCop może to zrobić ...

khebbie
źródło
-2

Zależy to w dużej mierze od tego, jakie są błędy, jak często i jak bardzo są one złe, oraz od tego, czy to rzeczywiście bona fide błąd, czy też nie, jak byś to powiedział.

Ja osobiście nie mogę tego znieść, gdy jakiś idiota przeciąga 5-minutową recenzję kodu na pół godziny, ponieważ chce, aby wszystko przemianowano na sposób, w jaki to zrobi, i wszystkie komentarze zostały przeredagowane tylko dlatego, że lubi wsadzać wiosło. Wiersz logowania oznacza to, że „Ładowanie obiektów danych” nie musi być zmieniane na „Komponent modułu ładującego obiekty danych będzie teraz ładować odpowiednie obiekty danych z komponentu przechowywania obiektów danych”.

/ rant :)

JohnL
źródło
2
Naleganie na moje rzeczy to jedno. Naleganie, aby rzeczy używały właściwej pisowni i gramatyki, to zupełnie inna sprawa.
David Thornley,
Nie jestem do końca pewien, dlaczego moja odpowiedź zasługuje na głos negatywny, ale nie ma znaczenia ... Gdzie się podziała moja odpowiedź na komentarz Davida? W każdym razie, 100% poprawna gramatyka języka angielskiego nie zawsze jest pożądana w rozwoju. W moim powyższym przykładzie „Ładowanie obiektów danych” nie jest kompletnym zdaniem, ale jest to bardziej preferowane sformułowanie tych dwóch - zwięzłe, łatwe do zlokalizowania i nie zajmuje dużo miejsca.
JohnL