PHP nebo JavaScript

Kit

Re:PHP nebo JavaScript
« Odpověď #60 kdy: 01. 03. 2017, 20:18:09 »
PHP jeste mozno pouzit na rapid development. Proste v tom rychle spichnete funkcni demo modul jako proof of concept a na ladeni workflowu. Kdyz to je ok tak se to prepise do neceho normalnejsiho a skalovatelnejsiho.

Většinou nemám důvod to přepisovat, nechávám to v PHP.


Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:PHP nebo JavaScript
« Odpověď #61 kdy: 01. 03. 2017, 22:45:57 »
Proč by se promisy nedaly traceovat?

No oni se dají, ale každá trochu jinak, stack.trace vypadá jak po třetí světové válce, rozbije to řadu nástrojů pro automatické testování a statickou analýzu chyb. Existuje několik modulů, které se to snaží dát dohromady, ale zatím nic moc.

Dtrace a další nástroje jsou naprosto v háji, většina promise uděláte nemá proby a nedá se to řádně měřit.

SB

Re:PHP nebo JavaScript
« Odpověď #62 kdy: 03. 03. 2017, 09:34:02 »
V PHP standardně dělám stavové aplikační servery. Zřejmě jsi zatím nepřišel na to, jak se to dělá.
Nechám se od vás poučit, jakým kouzlem toho dosáhnout. Děkuji.

Je to prosté, stačí se naučit používat databáze.

Databáze nemá s aplikačním serverem nic společného, je to úplně jiná vrstva. Jestli jste chtěl naznačit, že si stavy ukládáte do DB, tak 1. žádný aplikační server nemáte, 2. je to určitě hodně rychlé, 3. jste pěkné ...

A přesně o tom se tu bavíme - je PHP vhodným jazykem pro backend? Není to oxymóron?

SB

Re:PHP nebo JavaScript
« Odpověď #63 kdy: 03. 03. 2017, 09:37:31 »

Nevěřím vám, že nějakým jednoduchým způsobem udělám v JS jiný objektový systém. Zkoušel jsem omrdat chybějící zapouzdření (najdete k tomu na inetu diskuse) a je to hrozný opich.

3) je to strasne snadny, js objekt je prostě jen mapa, muzes si do nej nacpat cokoli a dat tomu jakykoli smysl chces. Jedinej problem je se syntaxy, tu neohnes

Schvalne si vlastni dream object system skus v js udělat
Budeš prekvapen jak snadný to je :)

A jak se ohýbá (=řeší) zapouzdření?

oldschool

Re:PHP nebo JavaScript
« Odpověď #64 kdy: 03. 03. 2017, 10:59:29 »
A jak se ohýbá (=řeší) zapouzdření?

Normalne, kluzurou.
Kód: [Vybrat]
(function() {
...tohle venku neni videt...
}());


SB

Re:PHP nebo JavaScript
« Odpověď #65 kdy: 03. 03. 2017, 12:10:31 »
A jak se ohýbá (=řeší) zapouzdření?

Normalne, kluzurou.
Kód: [Vybrat]
(function() {
...tohle venku neni videt...
}());

Supr. A jak se udělá objekt, který nese skryté stavy, ale pracuje s nimi vlastními metodami implementovanými v prototypu proto, aby ony metody nemusel každý další objekt implementovat znovu? Neboli obdoba třídně-instanční implementace se sdílenými metodami a vlastními stavy.

oldschool

Re:PHP nebo JavaScript
« Odpověď #66 kdy: 03. 03. 2017, 12:55:58 »
Supr. A jak se udělá objekt, který nese skryté stavy, ale pracuje s nimi vlastními metodami implementovanými
v prototypu proto, aby ony metody nemusel každý další objekt implementovat znovu? Neboli obdoba třídně-instanční
implementace se sdílenými metodami a vlastními stavy.
Kurna co jsme tady lektori kurzu JavaScript for dummies? Dyt si to vybinguj.

1. v JS neexistuje neco jako "skryte", "privatni" atd. Nac taky kdyz zdrojak muze kazdy videt. Ano je mozne pomoci nejakych design patternu docilit schovani metod ci properties, ale to dnes uz delaj jenom prasata.
Vznesenym JS koderum staci videt this._ja_jsem_jakoze_private a vedi, ze to neni soucast api a na to se nesaha.

2. Moc nechapu co vlastne chces, ale "interface" v JS neexistuje. Ano muzeme se hrat s nazvoslovim, ze nejaka trida ma prazdne metody a dovnitr si nacpes console.log('not implemented yet') a od ni si to podedis. Takze opet design pattern pro prebehliky z Javy a C++. Vzneseny JS koder to povazuje za prasarnu a interface neresi.

3. Objektovy odel JS je uplne jednoduchy. Berte JS spise jako assembler. Ma tridy, dedicnost a prototypy, to je vse. Muzete ho vytunit nejakymi paternama nebo frameworkem aby se hral na mixiny, abstraktni tridy, interfejsy, protected, private, pretizene operatory a co ja vim jaky OOP balast vas jeste napadne.
Vzneseny JS koder to ale neresi, protoze to zvysuje komplexitu a neprehlednost kodu a uz se pak nemuzeme bavit o jednoduchosti. Jestli bez toho nemuzete zit tak se poohlednete po nejakym Angularu a postavste si celu industrialni zonu se vsemy factories facades a dalsimi chlivkama pro prasata.

4. Zhrnu to tedy. V JS je defacto vse objekt a tak muzete objektovo orientovane programovat vasi MVC apku. Ale to uz je dnes povazovano za primitivni a neefektivni. Frcime spise na MVVM/MVI, proudy dat, eventy, promisy, immutable, subscribery, listenery a vubec spise reaktivni funkcionalni programovani.

gll

Re:PHP nebo JavaScript
« Odpověď #67 kdy: 03. 03. 2017, 13:23:28 »
Databáze nemá s aplikačním serverem nic společného, je to úplně jiná vrstva. Jestli jste chtěl naznačit, že si stavy ukládáte do DB, tak 1. žádný aplikační server nemáte, 2. je to určitě hodně rychlé, 3. jste pěkné ...

A přesně o tom se tu bavíme - je PHP vhodným jazykem pro backend? Není to oxymóron?

čemu říkáte aplikační server?

Kit

Re:PHP nebo JavaScript
« Odpověď #68 kdy: 03. 03. 2017, 15:15:21 »
Databáze nemá s aplikačním serverem nic společného, je to úplně jiná vrstva. Jestli jste chtěl naznačit, že si stavy ukládáte do DB, tak 1. žádný aplikační server nemáte, 2. je to určitě hodně rychlé, 3. jste pěkné ...

A přesně o tom se tu bavíme - je PHP vhodným jazykem pro backend? Není to oxymóron?

Databáze skutečně nemá s aplikačním serverem nic společného. Měla by?
Už tady zaznělo: Čemu říkáš aplikační server?
Ano, je to rychlé.
Ano, jsem šikovným programátorem. Díky za poklonu

SB

Re:PHP nebo JavaScript
« Odpověď #69 kdy: 03. 03. 2017, 16:39:09 »
Supr. A jak se udělá objekt, který nese skryté stavy, ale pracuje s nimi vlastními metodami implementovanými
v prototypu proto, aby ony metody nemusel každý další objekt implementovat znovu? Neboli obdoba třídně-instanční
implementace se sdílenými metodami a vlastními stavy.
Kurna co jsme tady lektori kurzu JavaScript for dummies? Dyt si to vybinguj.

1. v JS neexistuje neco jako "skryte", "privatni" atd. Nac taky kdyz zdrojak muze kazdy videt. Ano je mozne pomoci nejakych design patternu docilit schovani metod ci properties, ale to dnes uz delaj jenom prasata.
Vznesenym JS koderum staci videt this._ja_jsem_jakoze_private a vedi, ze to neni soucast api a na to se nesaha.

2. Moc nechapu co vlastne chces, ale "interface" v JS neexistuje. Ano muzeme se hrat s nazvoslovim, ze nejaka trida ma prazdne metody a dovnitr si nacpes console.log('not implemented yet') a od ni si to podedis. Takze opet design pattern pro prebehliky z Javy a C++. Vzneseny JS koder to povazuje za prasarnu a interface neresi.

3. Objektovy odel JS je uplne jednoduchy. Berte JS spise jako assembler. Ma tridy, dedicnost a prototypy, to je vse. Muzete ho vytunit nejakymi paternama nebo frameworkem aby se hral na mixiny, abstraktni tridy, interfejsy, protected, private, pretizene operatory a co ja vim jaky OOP balast vas jeste napadne.
Vzneseny JS koder to ale neresi, protoze to zvysuje komplexitu a neprehlednost kodu a uz se pak nemuzeme bavit o jednoduchosti. Jestli bez toho nemuzete zit tak se poohlednete po nejakym Angularu a postavste si celu industrialni zonu se vsemy factories facades a dalsimi chlivkama pro prasata.

4. Zhrnu to tedy. V JS je defacto vse objekt a tak muzete objektovo orientovane programovat vasi MVC apku. Ale to uz je dnes povazovano za primitivni a neefektivni. Frcime spise na MVVM/MVI, proudy dat, eventy, promisy, immutable, subscribery, listenery a vubec spise reaktivni funkcionalni programovani.

Co je to "vybinguj"? Nové sloveso?

Ad 1. JS samozřejmě zapouzdření má (var), ale vlivem způsobu implementace prototypů nejde kombinovat s metodami z prototypu. Co má společné zapouzdření s dostupností zdrojáku, netuším. Jak ale vylámat zdroják ze serveru Node.js, nevím. O "zapouzdření" podtržítkem jsem už slyšel, to jsem ale na mysli neměl. Termín "vznešený kodér" mě doteď míjel.

Ad 2. Interface jsem na mysli neměl, ten se zapouzdřením nesouvisí.

Ad 3. Zapouzdření nemá na složitost vliv, slouží oddělení domén problému. S tvrzením, že JS má třídy a dědičnost, nebudu polemizovat, nemám s tímto syntaktickým cukrem žádnou zkušenost a ani se mi do ní nechce.

Ad 4. V JS bohužel není vše objektem, JS má primitiva a funkce, pokud si pamatuju, měly taky nějaké specifické vlastnosti. Uvedené architektury jsou stále pouze impelemtacemi vzoru Pozorovatel, nevidím v nich nějakou revoluci. Se zapouzdřením nevidím souvislost.

Úplně mi stačila odpověď "v JS to nejde", nemusel jste mi vyprávět o vznešeném kodérovi.

SB

Re:PHP nebo JavaScript
« Odpověď #70 kdy: 03. 03. 2017, 16:43:37 »
čemu říkáte aplikační server?

Server držící a zpracovávající kompletní doménu pro klienty.

SB

Re:PHP nebo JavaScript
« Odpověď #71 kdy: 03. 03. 2017, 16:47:47 »
Databáze nemá s aplikačním serverem nic společného, je to úplně jiná vrstva. Jestli jste chtěl naznačit, že si stavy ukládáte do DB, tak 1. žádný aplikační server nemáte, 2. je to určitě hodně rychlé, 3. jste pěkné ...

A přesně o tom se tu bavíme - je PHP vhodným jazykem pro backend? Není to oxymóron?

Databáze skutečně nemá s aplikačním serverem nic společného. Měla by?
Už tady zaznělo: Čemu říkáš aplikační server?
Ano, je to rychlé.
Ano, jsem šikovným programátorem. Díky za poklonu

Nejde o poklonu, měl jsem na mysli prase. Ale to asi víte.
Provedení stavů aplikačního serveru jste neuvedl, rád bych ho viděl výslovně uvedené.
Na to tykání pozor.

gll

Re:PHP nebo JavaScript
« Odpověď #72 kdy: 03. 03. 2017, 18:28:42 »
čemu říkáte aplikační server?

Server držící a zpracovávající kompletní doménu pro klienty.

Jakou doménu? Mluvíte o DNS serveru?

čumil

Re:PHP nebo JavaScript
« Odpověď #73 kdy: 03. 03. 2017, 18:38:52 »
A jak se ohýbá (=řeší) zapouzdření?

Normalne, kluzurou.
Kód: [Vybrat]
(function() {
...tohle venku neni videt...
}());

Supr. A jak se udělá objekt, který nese skryté stavy, ale pracuje s nimi vlastními metodami implementovanými v prototypu proto, aby ony metody nemusel každý další objekt implementovat znovu? Neboli obdoba třídně-instanční implementace se sdílenými metodami a vlastními stavy.
1) private/public v JS neexistuje, mohlo by, ale není
hlavně by to dost komplikovalo návrh jazyka (prototype based OOP pro info ...) a autor na něj měl bohužel jen 14 dní
ostatně je otázkou jestli takové omezení dává vůbec smysl v případě prototypového systemu
2) redukce kódu pomocí dědičnosti je antipattern který nemá nic společného s OOP, místo toho je lepší použít delegaci či jiné návrhové vzory

čumil

Re:PHP nebo JavaScript
« Odpověď #74 kdy: 03. 03. 2017, 18:45:12 »
Supr. A jak se udělá objekt, který nese skryté stavy, ale pracuje s nimi vlastními metodami implementovanými
v prototypu proto, aby ony metody nemusel každý další objekt implementovat znovu? Neboli obdoba třídně-instanční
implementace se sdílenými metodami a vlastními stavy.
Kurna co jsme tady lektori kurzu JavaScript for dummies? Dyt si to vybinguj.

1. v JS neexistuje neco jako "skryte", "privatni" atd. Nac taky kdyz zdrojak muze kazdy videt. Ano je mozne pomoci nejakych design patternu docilit schovani metod ci properties, ale to dnes uz delaj jenom prasata.
Vznesenym JS koderum staci videt this._ja_jsem_jakoze_private a vedi, ze to neni soucast api a na to se nesaha.

2. Moc nechapu co vlastne chces, ale "interface" v JS neexistuje. Ano muzeme se hrat s nazvoslovim, ze nejaka trida ma prazdne metody a dovnitr si nacpes console.log('not implemented yet') a od ni si to podedis. Takze opet design pattern pro prebehliky z Javy a C++. Vzneseny JS koder to povazuje za prasarnu a interface neresi.

3. Objektovy odel JS je uplne jednoduchy. Berte JS spise jako assembler. Ma tridy, dedicnost a prototypy, to je vse. Muzete ho vytunit nejakymi paternama nebo frameworkem aby se hral na mixiny, abstraktni tridy, interfejsy, protected, private, pretizene operatory a co ja vim jaky OOP balast vas jeste napadne.
Vzneseny JS koder to ale neresi, protoze to zvysuje komplexitu a neprehlednost kodu a uz se pak nemuzeme bavit o jednoduchosti. Jestli bez toho nemuzete zit tak se poohlednete po nejakym Angularu a postavste si celu industrialni zonu se vsemy factories facades a dalsimi chlivkama pro prasata.

4. Zhrnu to tedy. V JS je defacto vse objekt a tak muzete objektovo orientovane programovat vasi MVC apku. Ale to uz je dnes povazovano za primitivni a neefektivni. Frcime spise na MVVM/MVI, proudy dat, eventy, promisy, immutable, subscribery, listenery a vubec spise reaktivni funkcionalni programovani.

Co je to "vybinguj"? Nové sloveso?

Ad 1. JS samozřejmě zapouzdření má (var), ale vlivem způsobu implementace prototypů nejde kombinovat s metodami z prototypu. Co má společné zapouzdření s dostupností zdrojáku, netuším. Jak ale vylámat zdroják ze serveru Node.js, nevím. O "zapouzdření" podtržítkem jsem už slyšel, to jsem ale na mysli neměl. Termín "vznešený kodér" mě doteď míjel.

Ad 2. Interface jsem na mysli neměl, ten se zapouzdřením nesouvisí.

Ad 3. Zapouzdření nemá na složitost vliv, slouží oddělení domén problému. S tvrzením, že JS má třídy a dědičnost, nebudu polemizovat, nemám s tímto syntaktickým cukrem žádnou zkušenost a ani se mi do ní nechce.

Ad 4. V JS bohužel není vše objektem, JS má primitiva a funkce, pokud si pamatuju, měly taky nějaké specifické vlastnosti. Uvedené architektury jsou stále pouze impelemtacemi vzoru Pozorovatel, nevidím v nich nějakou revoluci. Se zapouzdřením nevidím souvislost.

Úplně mi stačila odpověď "v JS to nejde", nemusel jste mi vyprávět o vznešeném kodérovi.
1) var není nástroj zapouzdření, pokud to tak chápeš ty, tak pánbůh s tebou a celim tymem (co když ti řeknu že closure nejde genericky naklonovat :) ? )
2) nejsou vzor Observer, reaktivita je deklarativní paradigma (ne oop design pattern) a pokud to porovnáváš s Observerem, pak jsi to zřejmě nikdy ani neviděl.