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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
@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
  • Odpowiedz
@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
  • Odpowiedz
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 jakby odnosiła się do takiego kodu(który jest inny niz przykład):
if( ! attributeExists(“username”)) {
setAttribute(“username”,
  • Odpowiedz
@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.
  • Odpowiedz
@FEAofTruss: Dlatego nie obserwuje #programowanie . Jeden mądrzejszy od drugiego, każdy przeczytał inną książkę, każdy ma inny framework, każdy k---a ci oczy wydłubie bo wie lepiej xD. P------e #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
  • Odpowiedz