Wpis z mikrobloga

10/100 dni z książką

“Funkcje powinny coś wykonywać lub odpowiadać na jakieś pytanie, ale nie powinny robić tych dwóch operacji jednocześnie. [...] Jako przykład weźmy następującą funkcję:

Public boolean set(String attribute, String value);
Lepszym rozwiązaniem jest oddzielenie polecenia od zapytania, dzięki czemu niejasność nie występuje:

if(attributeExists(“username”) {
setAttribute(“username”, “unclebob”);
}



#feaoftruss #czystykod #programowanie #programista15k #webdev #gamedev

Podobało się? To zaplusuj i zapisz się do wołania (link w stopce)

************

[Chcesz być wołany?]
  • 23
Wołam przez MirkoListy plusujących i komentujących ten wpis (38)

Sponsor: Grupa Facebookowa z promocjami z chińskich sklepów

Nie chcesz być wołany/a jako plusujący/a? Włącz blokadę na https://mirkolisty.pvu.pl/call lub odezwij się do @IrvinTalvanen

Uważasz, że wołający nadużywa MirkoList? Daj znać @IrvinTalvanen

! @SwordPL @Arc2 @Pan_Jerzy @grabtom_ @Kierman @Arktos @darkdancerr @LordFen @samjesteszajety @folxuxd @ZegnajPrzyjacielu @RAYKER @arti040 @Vadzior @Shaunee @priveth @matka_boska_w_klapie @Kilgharrah @CzczeSzatana @jaywalker @efodiks @PiotrasSNK @grindiez @kaziu12 @czolgistka93 @KodakWhite @FilusN @motokate @
@zibizz1: kiepskie to bylo wymyslenie ze to do bazy można uzyc ;-)

@FEAofTruss: pewnie chodzi o to ze wymuszalo by dwa zapytania.

PS. Mi się podoba TryAdd w Dictionary, robi dwie rzeczy, ale w wielowatkowosci np takie uzycie jest zaleta. No i jasno wskazuje komwencje.

PS2: SetUsername już by było lepsze. Bo kod który wymaga znajomości pol też nie jest bardzo czysty
@nilphilus: Jesli nawet nie do bazy to i tak przykład jest słaby
Coś jak:
if(zmienna == true ) zmienna = false;

jest masa funkcji które coś robią i coś zwracają i nie uważam że to nie jest czytelne.

BTW
Jesli już jesteśmy w temacie na temat tego co powinna robic funkcja to osoby początkujące czesto mają problem z takim czymś jak

list.Clear(); //modyfikuje[czyści] liste
name.Replace("old","new"); //nie modyfikuje obiektu, tylko zwraca zmodyfikowany
@zibizz1: no z częścią że przykład mógłby być lepszy się zgodzę. Ale sama idea kryje sie raczej za tym, zeby set nie robil takiego ifa. Bo spodziewasz się zmiany, a tu zonk, bo już jest coś ustawione. A w przykladzie widac ze tak naprawde to chcesz tylko zainicjalizowac jak nic nie jest ustawione. Sam if exist nie jest zlaczony z setAttr - tzn nie musisz używać, ale możesz
no z częścią że przykład mógłby być lepszy się zgodzę. Ale sama idea kryje sie raczej za tym, zeby set nie robil takiego ifa. Bo spodziewasz się zmiany, a tu zonk, bo już jest coś ustawione. A w przykladzie widac ze tak naprawde to chcesz tylko zainicjalizowac jak nic nie jest ustawione. Sam if exist nie jest zlaczony z setAttr - tzn nie musisz używać, ale możesz


@nilphilus: twoja tresć wskazuje
@zibizz1: no trochę wyjęte z kontekstu jest więc musimy założyć co samo 'set' ma robic. Ja raczej myslalem o czyms takim ze operujemy na np. Mongo i mozemy sobie ustawiać jakikolwiek atrybut chcemy - samo Set sugeruje ze moze dodqc taki atrybut jak i go zmienic.
@FEAofTruss: Dlatego nie obserwuje #programowanie . Jeden mądrzejszy od drugiego, każdy przeczytał inną książkę, każdy ma inny framework, każdy #!$%@? ci oczy wydłubie bo wie lepiej xD. #!$%@? #programowanie to rak. Jak coś się da przeczytać, nie budzi wątpliwości i co najważniejsze działa to znaczy że jest ok. Jak jeszcze jest reusable i modularne to znaczy, że bardzo dobre. A spieranie się o nazewnictwo to wyższa forma #!$%@? umysłowego skrajnych nerwicowych