Postřehy ohledně architektury JavaScriptu

Kit

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #195 kdy: 28. 08. 2016, 17:57:19 »
Idealna dlzka konstruktoru je tak 1 az 3 parametre. Ok, moze byt ich aj 6 ak je dovod (netreba bez rozmyslu vsetko striktne dodrziavat), ale 2 az 6 riadkov, to uz je trochu moc, strasne neprehladne. V redmonde take lubia.

K tomu Tell, don't ask - no ano, clovek potom da objektu robotu a caka pol dna, lebo nevie co to do certa robi. To tak ficalo v 60-tych rokoch pri davkovom spracovani.

Pokud jsou v konstruktoru 1-3 parametry, je to tak akorát. Tomu obvykle odpovídá zmíněných 2-6 řádků konstruktoru. Někdo píše konstruktory s jedním parametrem třeba i na 10 řádek, ale to není můj případ.

Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.


Kit

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #196 kdy: 28. 08. 2016, 18:19:33 »
Atributy si objekt musí umět nastavit sám podle zpráv, které mu chodí z okolí.
Nechci bejt rejpal, ale setName je taky příklad zprávy ...

setName() je zpráva s podivným názvem vytvářejícím iluzi, že objekt obsahuje atribut Name. Pokud chci objekt přejmenovat, obvykle použiji metodu s názvem rename() nebo update().

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #197 kdy: 28. 08. 2016, 18:27:09 »
Idealna dlzka konstruktoru je tak 1 az 3 parametre. Ok, moze byt ich aj 6 ak je dovod (netreba bez rozmyslu vsetko striktne dodrziavat), ale 2 az 6 riadkov, to uz je trochu moc, strasne neprehladne. V redmonde take lubia.

K tomu Tell, don't ask - no ano, clovek potom da objektu robotu a caka pol dna, lebo nevie co to do certa robi. To tak ficalo v 60-tych rokoch pri davkovom spracovani.

Pokud jsou v konstruktoru 1-3 parametry, je to tak akorát. Tomu obvykle odpovídá zmíněných 2-6 řádků konstruktoru. Někdo píše konstruktory s jedním parametrem třeba i na 10 řádek, ale to není můj případ.

Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.


Vztah model-view v mvc je vzor observer. Tam je nutne aby si view tahal data z modelu, ked sa model zmeni. Ked tak rozmyslam behavioralne, vzory vsetky porusuju pravidlo "Tell don't ask".
Dovolim si tvrdit, ze je to skor vynimka ako pravidlo. Mozno si to viem predstavit, pri nejakych extremnych paralelnych vypoctoch, kde sa nepredpoklada interaktivita. Ale aj tam je obcas vhodne vediet, kde sa nieco zadrhlo.

javaman ))

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #198 kdy: 28. 08. 2016, 19:21:41 »
Atributy si objekt musí umět nastavit sám podle zpráv, které mu chodí z okolí.
Nechci bejt rejpal, ale setName je taky příklad zprávy ...

setName() je zpráva s podivným názvem vytvářejícím iluzi, že objekt obsahuje atribut Name. Pokud chci objekt přejmenovat, obvykle použiji metodu s názvem rename() nebo update().

UPDATE  ;D

Honza

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #199 kdy: 28. 08. 2016, 19:28:49 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??


balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #200 kdy: 28. 08. 2016, 19:34:09 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. Model si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #201 kdy: 28. 08. 2016, 19:35:52 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. Model si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.

*view  si nasledne tieto data stiahne. Neviem, na co zasa myslim, ach jo senilita.

javaman ))

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #202 kdy: 28. 08. 2016, 19:37:24 »
ach jo senilita.

To je v pohodě, my jsme zvyklí ;)

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #203 kdy: 28. 08. 2016, 19:38:26 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. Model si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.
Tak mne napadá, co kdyby model místo notifikace rovnou poslal diff mezi old a new state ? View by si to pak přebralo.

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #204 kdy: 28. 08. 2016, 19:46:39 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. Model si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.
Tak mne napadá, co kdyby model místo notifikace rovnou poslal diff mezi old a new state ? View by si to pak přebralo.

To je vzor mediator, uz by to nebolo "celkom tak MVC"

Honza

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #205 kdy: 28. 08. 2016, 19:52:54 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. [View] si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.
To je skoro správně, ale nepřesné. Tu zásadu to neporušuje. Proč asi View čeká na notifikaci o změně Modelu, a neptá(!) se na ten stav přímo?

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #206 kdy: 28. 08. 2016, 20:01:29 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. [View] si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.
To je skoro správně, ale nepřesné. Tu zásadu to neporušuje. Proč asi View čeká na notifikaci o změně Modelu, a neptá(!) se na ten stav přímo?

Problem je, ze se "pta" na stav. To je uz samotne "asking", co by nemal robit.

Honza

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #207 kdy: 28. 08. 2016, 20:08:00 »
Pravidlo Tell, don't ask má také své omezení. Například View v architektuře MVC ho porušuje a nikoho to netrápí.
Jak ho porušuje??

Ked model zmeni svoj stav, tak view je notifikovany modelom, aby si stiahol nove data z modelu. [View] si nasledne tieto data stiahne.  Cize view si pyta vnutorny stav modelu, ktory by podla tejto zasady, ktoru nepoznam, nemal vediet.
To je skoro správně, ale nepřesné. Tu zásadu to neporušuje. Proč asi View čeká na notifikaci o změně Modelu, a neptá(!) se na ten stav přímo?

Problem je, ze se "pta" na stav. To je uz samotne "asking", co by nemal robit.
Přece View se na nic neptá, to ten změněný Model spouští řetězec událostí, podle kterých se View aktualizuje, nebo ne?

gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #208 kdy: 28. 08. 2016, 20:11:25 »
Přece View se na nic neptá, to ten změněný Model spouští řetězec událostí, podle kterých se View aktualizuje, nebo ne?

Bavíte se o webových aplikacích?

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #209 kdy: 28. 08. 2016, 20:16:15 »
Přece View se na nic neptá, to ten změněný Model spouští řetězec událostí, podle kterých se View aktualizuje, nebo ne?

Bavíte se o webových aplikacích?

O architektonickom vzore MVC.   

A podla mojho nazoru je to zlozitejsie napisane, ze sa view nakoniec spyta, ale ok, uz to necham tak.
Tieto akademicke debaty ma nikdy nebavili, preto som phd nedorobil.