Wpis z mikrobloga

No nie wiem. Po pierwsze - argumenty funkcji już i tak mają nazwy i typy, więc po co powtarzać je w nazwie metody? Konstruktor w stylu:

Complex(double realPart) {
a = realPart;
b = 0.0;
}

jest równie czytelny, a krótszy i mniej zaskakujący.
  • Odpowiedz
@tell_me_more: Wydaje mi się, że równie czytelny nie jest, a dodatkowo gdy przeciążeń jest dużo to ciężko na pierwszy rzut oka powiedzieć, które należy wykorzystać. W przypadku fabryki sprawa jest jasna.
  • Odpowiedz
@tell_me_more: Dam Ci przykład, chociaż nie upieram się, że nie masz racji:)

In such a case it is necessary to write a good documentation and explain all functions. For example if you want to create a TimeSpan of one month, will it be allowed to call the following constructors?

TimeSpan(0,1,0)
TimeSpan(0,0,31)
TimeSpan(744,0,0,0)
TimeSpan(0,1,0,0,0,0,0)

Maybe the class will support all these ways to create the instance. But you will have two major
  • Odpowiedz
@FEAofTruss: To zalezy od IDE i umiejętności korzystania, niektórzy nienawidzą var (C#) inni uwielbiają. Tak samo tutaj według mnie metody są tylko porzebne jeśli argumenty nie są wystarczająco opisowe. Zawsze można najechać i sprawdzić nazwy argumentów.
  • Odpowiedz
@FEAofTruss: no właśnie. Jesli preferujesz fabrykę to także preferujesz:
foreach(BardzoDlugaNazwaKlasy item in items)
zamiast
foreach(var item in items)

te kłótnie trwają bez końca. Jedni wolą widzieć odrazu i żeby było jasne jak przegladasz np w historii repozytorium a drudzy wolą mniej pisać.
  • Odpowiedz
Jedni wolą widzieć odrazu i żeby było jasne jak przegladasz np w historii repozytorium a drudzy wolą mniej pisać.


@zibizz1: jeżeli piszesz coś, co nie będzie wymagało zbyt wiele późniejszego utrzymania to sprawa jest jasna. Inaczej to wygląda w przypadku projektów które się ciągną latami, wtedy IMO lepiej napisać więcej, bo na czytaniu tego kodu ostatecznie spędzisz wielokrotność czasu który spędziłeś na pisaniu.

Zaraz zaczniecie namawiać do pisania w notacji węgierskiej
  • Odpowiedz
@tell_me_more: wiem co IDE potrafi, ale nie jestem germanskim plemieniem żeby na wszystko najezdzac :-P wole szybko scrollowac i mieć to podane na tacy, tam jakby ci germanie francuakie plemię najechali :-P
  • Odpowiedz
Więcej kodu czytasz niż piszesz.


@nilphilus: nazwy tego typu (4 człony i więcej) to code smell, oznaczają, że nie masz kodu dobrze podzielonego na pakiety/namescpace-y. I nie chodzi o to, że się dłużej wklepuje, bo masz uzupełnianie, tylko o to, że to właśnie utrudnia czytanie kodu, bo tego kodu do przeczytania jest po prostu więcej. Komu wzrok nie prześlizguje się jak czyta 30-znakową nazwę klasy niech pierwszy rzuci kamieniem. Widziałem kilka
  • Odpowiedz