Sufiks "Async" w metodach

0

Dołączacie sufiks Async do metod asynchronicznych?

1

Tak

6

W pracy tak, bo się czepiają na review.
Tak normalnie, to nie.

11

Nie używam i jestem przeciwnikiem stosowania Async w nazwach metod i całkiem niedawno z mojej inicjatywy w pracy wprowadziliśmy nową konwencję aby tego nie stosować, i powoli usuwać z istniejących metod w ramach scout rule które stosujemy. Główne powody są trzy:

  1. Suffix Async został wprowadzony przez Microsoftu w celu zachowania wstecznej kompatybilności. Po prostu dla metod synchronicznych wprowadzono odpowiedniki asynchroniczne, a ponieważ na podstawie zwracanego typu metody w C# nie można przeciążyć metody, to MS musiał coś wymyślić.
  2. Wystarczy spojrzeć na to że metoda zwraca Task by wiedzieć że można ją wywołać asynchronicznie.
  3. Nowe właściwości języka nie powinny rzutować na to jak nazywamy elementy naszego kodu. W przeciwnym razie za każdym razem kiedy wychodzi jakaś nowa, ważna cecha języka można by wprowadzać nową konwencję nazewnictwa. Np. można by sobie wymyślić że po wprowadzeniu w C# Value Tuple każda metoda zwracająca tenże typ powinna mieć suffix Tuple... Nie mówiąc już o tym że zawsze powtarzam że nazewnictwo w kodzie powinno odzwierciedlać domenę i procesy biznesowe, a więc pomijać technikalia chyba że to jest absolutnie niezbędne (bo np. metoda robi coś bardzo technicznego, co zazwyczaj znajdzie się w najniższych warstwach kodu infrastruktury).
1

Nie

1

Nie

1

Nie

1
somekind napisał(a):

W pracy tak, bo się czepiają na review.
Tak normalnie, to nie.

Tak samo

1
Kokoniłaj napisał(a):

Dołączacie sufiks Async do metod asynchronicznych?

Ja czytałem, że nie ma zasady i to zależy od przyjętej konwencji.

1
Kokoniłaj napisał(a):

Dołączacie sufiks Async do metod asynchronicznych?

Tak. W wielu różnych bibliotekach występuje taka konwencja. Przyjemniej mi się czyta tak napisany kod.

1
XardasLord napisał(a):
somekind napisał(a):

W pracy tak, bo się czepiają na review.
Tak normalnie, to nie.

Tak samo

W kolejnym projekcie który rozpoczęliśmy przegadaliśmy sprawę i odeszliśmy od tej konwencji.

1

Ludzie, słuchajcie @Aventus bo dobrze prawi. Async w nazwach metod został dodany tylko dlatego, że async/await psuje sensowne reguły programowania i trzeba mieć dwie metody robiące to samo, jedną dla synchronicznej operacji a drugą dla asynchronicznej. A ponieważ C# nie pozwala na przeciążanie metod na podstawie zwracanego typu (ciekawostka: pozwala na to w jednym przypadku, czytelnik zechce podać przykład (ciekawostka 2: czytelnik zechce pokazać, jak wywołać taką metodę przez refleksję)), to trzeba robić taką patologię nazewniczą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1