Wpis z mikrobloga

@DiKey: wpisałem w google "enum php" i wyszło mi takie coś, myślałem, że nie ma inaczej, ale post sprzed kilku lat jak patrzę to może... nie wiem, u mnie bym napisał "enum class {" ale chciałem tak dostosować pod ciebie i wtopa. :P
  • Odpowiedz
@Dijuna: może niepotrzebnie dodałem tę informację, że autor pisał wcześniej w #php, ale zwróć uwagę na moje komentarze powyżej - wklejony kod jest w Typescript'cie.
  • Odpowiedz
@cevilo: dla 3 i więcej porównań do tej samej zmiennej wolę użyć metody Array.indexOf(), jest czytelniejsze zwłaszcza jak dojdą do tego inne warunki.
  • Odpowiedz
@cevilo: z jednej strony racja, a z drugiej strony jest to powszechnie wykorzystywane rozwiązanie w #javascript i w alternatywie mamy tylko długiego switcha:

switch(type) {

case 'web':

case 'forum':
  • Odpowiedz
@DiKey: Ale tak serio to w czym problem bo nie rozumiem? To jest jakiś contest kto zrobi najlepszy "clever code" (który oprócz szpanu ma g---o a nie zastosowanie) czy jak?

Rozumiem, że zarabiając po 10,000 zł to nie można napisać prostego, czytelnego kodu? Rozumiem, że od pułapu 10,000 nie można napisać

let a = b+2;
a zamiast
  • Odpowiedz
@larvaexotech: poczytaj komentarze. Tak na szybko odpowiadając:
Kod ma być czytelny i działający (tutaj nie ma tego drugiego, a niepotrzebny if jest... niepotrzebny) i właśnie tego bym oczekiwał po "programiście 10k".
1. Owszem, przed definicją funkcji powinien wystąpić modyfikator dostępu, jednak nie jest to jakiś rdzeń systemu, więc nic się złego nie stanie jak go akurat tutaj zabraknie.
2. j/w
3. Powinien być i w moim rozwiązaniu jest.
4. No dokładnie to samo mu
  • Odpowiedz
Dlaczego druga funkcja nazywa się "get" skoro nie zwraca żadnych danych?

@larvaexotech: pełno tutaj takich funkcji, niestety już za późno na zmiany i tłumaczenia...
Fajnie, że widzisz co można poprawić (chociaż główny aspekt gdzieś Ci umknął), ale niefajnie, że próbujesz robić to o co sam oskarżasz innych.
  • Odpowiedz
@DiKey: Ok przyznam że przeleciałem tylko wzrokiem po kodzie i nie wiem czemu odniosłem wrażenie że tam jest if type == 'xx' || type == 'yy'. Ok kod nie działa zgadzam się z tym i tu masz rację.

Natomiast niestety ze wszystkim innym nie potrafię się zgodzić.

1. Lepiej trzymać się zasady "zawsze" - bo dlaczego nie w zasadzie? Tylko nie chcę słyszeć słowa o tym że więcej znaków trzeba wstawić bo to nigdy nie jest kluczowym argumentem w programowaniu
  • Odpowiedz
ale niefajnie, że próbujesz robić to o co sam oskarżasz innych.


@DiKey: Wiem że mój koment był nacechowany negatywnie, bo tak zawsze się nastawiam gdy ktoś wyśmiewa kolegę z branży bez wyraźnych powodów. No może oprócz tego, że kod nie działa ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)
  • Odpowiedz
Lepiej trzymać się zasady "zawsze"

@larvaexotech: ja się trzymam, ale nie mam siły wymuszać tego na innych.
2. Tutaj wszystko jest raczej oczywiste, a projekt nie był dokumentowany od samego początku (dopiero teraz podczas refactoringu "core functionality" dodaję JSDoci), więc nie mogę tego nagle zacząć wymagać do każdej pomniejszej funkcji.

Podaj mi racjonalny argument, bo dla mnie Twój sposób jest po pierwsze mniej czytelny

4. Jak napisałem wyżej - w Javascript jest to bardzo powszechnie używane, podobnie jak operator || przy przypisywaniu wartości do zmiennej. W każdym języku jest kilka rzeczy, które trzeba znać na pamięć i według mnie to są właśnie jedne z takich rzeczy. Dla mnie z kolei nieczytelne są wielolinijkowe ify, wolę prostsze instrukcje warunkowe i funkcjonalność przeniesioną do mniejszych funkcji. Po za tym, u nas raczej frontend zagląda do backendu i oba są oparte na tym samym języku. Różnica wydajności na poziomie mikrosekundy nie ma żadnego znaczenia, z czego pewnie dobrze sobie zdajesz sprawę. Niejednokrotnie poświęcamy ją dla lepszej
  • Odpowiedz
if (variable == 'string1' || variable == 'string2' || variable == 'string3') then return true;


@cevilo: nawet IDE da Ci przy takiej instrukcji podpowiedź, że może zostać uproszczona do return (variable == 'string1' || variable == 'string2' || variable == 'string3');
  • Odpowiedz