Dyndające przecinki, czyli notacja przecinkowa

Oryginalnie Dangling Commas (lub comma-dangle) to reguła pozwalająca na pozostawienie przecinka przy ostatnim elemencie typu wyliczeniowego, tablicy, czy też obiektu (podczas inicjalizacji). W związku z tym kompilatory oraz lintery w dobrej wierze zezwalają na ten niepoprawny znak przy ostatnim elemencie umożliwiając nam:

Zachowanie czytelniejszego repozytorium

Dodanie kolejnego elementu wygeneruje jednoliniową zmianę kodu.

Powyższy przykład pokazuje, że dodanie liczby do tablicy, która nie jest napisana zgodnie z notacją przecinkową, powoduje wygenerowanie zmiany dwuliniowej (linia 8 i 9). Natomiast dodanie litery do tablicy, napisanej zgodnie z regułą, skutkuje wygenerowaniem zmiany jednoliniowej (linia 16).

Łatwiejsze rozwiązywanie konfliktów

Dodany element zawiera już wymagany przecinek, nie trzeba dodawać go ręcznie.

Powyższy obrazek prezentuje sytuację kiedy dwóch programistów w tym samym momencie zmodyfikowało tą samą linię kodu dodając kolejny element (pierwszy programista z widoku B dodał liczbę 4 oraz literę ‘D’; drugi programista z widoku C dodał liczbę 3 oraz literę ‘C’). Podczas rozwiązywania konfliktów oczywistym faktem jest to, iż chcemy obie nowe wartości, toteż w dolnym oknie wynikowym widzimy dodanie do pliku wynikowego zmiany zarówno programisty pierwszego, jak i drugiego. I tak w pierwszym przypadku, gdzie nie ma notacji przecinkowej, dodanie nowych liczb (liczby 3 i 4) powoduje iż sami musimy dodać wymagany przecinek pomiędzy liczbą 3 a 4. Natomiast w drugim przypadku, gdzie reguła jest zastosowana, dodanie nowych liter (litery ‘C’ i ‘D’) skutkuje tym, że przecinki są obecne, a tym samym nie wymaga to ręcznych poprawek.

Wniosek

Pozostawianie przecinka przy ostatnim elemencie to krótka reguła do zapamiętania, która przynosi same pozytywy. Ja osobiście nie znajduję minusów tego podejścia. Jeśli Ty widzisz jakieś wady, to podziel się proszę w komentarzu.


Repozytorium w którym znajduje się przykład opisanych wyżej przypadków znaleźć można tutaj: https://github.com/lkurzyniec/comma.dangle

Podbij ↑

What do you think?
Like Love Haha Wow Sad Angry
3

2 thoughts on “Dyndające przecinki, czyli notacja przecinkowa

  1. Wada: niestety nie pamiętam w której konkretnie wersji przeglądarki IE (chyba do wersji 8, a może i później też) pozostawienie takiego przecinka w kodzie JS powodował błąd interpretacji skryptu. Bardzo nieprzyjemny, trudny do wykrycia. Jak ktoś raz się na tym przejechał do potem dla pewności wyrabiał sobie nawyk czyszczenia tych przecinków.

    Pytanie, które można by tu postawić, to które języki i ich kompilatory/interpretery radzą sobie poprawnie z taką notacją. A które nie.

    • Krzysztof,
      To prawda, starsze przeglądarki mogą nie wspierać tej notacji. Niemniej jednak transpilery i minifajery na pewno wspierają, a co więcej, potrafią sobie doskonale poradzić. Tak samo nowsze kompilatory i interpretery. Problem niestety pojawia się w momencie kiedy utrzymujemy starsze systemy i nie możemy korzystać z nowszych narzędzi.

Leave a Reply

Your email address will not be published. Required fields are marked *