Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Zabanovaný Anonymní Troll 24. 05. 2019, 19:43:03

Název: Jak mám programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 24. 05. 2019, 19:43:03
Delam v Jave a pokousim se o javascript.

Nevim proste jak na to, uz jsem udelal nejake ty cvicne kalkulacky, zkousel jsem to v reactu, a ted jsem si chtel zkusit udelat si kompletne backend v node.js, ale je to porad ta sama pisnicka.

Dam priklad. Na zacatku vseho bych si rad udelal domenovy model, protoze jsem tak zvykly - nekde prece sakra musim mit definovane s jakymi daty vlastne budu pracovat, to by v tom byl jinak binec.

No takze si udelam slozku domain a tam si davam 1 file per class. Jenze jsem se zrovna zasekl u te veci, ze si potrebuju specifikovat fieldy mych domenovych trid a nemuzu tak specifikovat daotvy typ. Co s tim jako mam delat kdyz tam nemuzu mit ani datovy typ? Tak napr. budu tam chtit mit typ predstavujici datetime s casovou zonou. Co s tim, kdyz to tam nemuzu specifikovat? Jak bude potom nejaky kolega programator, nebo ja za par mesicu, vedet, co ty jednotlive atributy trid vlastne predstavuji?

Takze jsem se tu chtel poradit a idealne bych chtel videt nejaky poradnejsi backend v node.js, nejaky example toho, jak to ma vypadat - neco jako je Petclinic, cokoliv, zadny Hello world porad, ale normalni projektik ktery obsahuje tak 30 trid a pouziva alespo nejakou in-memory databazi.

Kde ho vezmu?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Ondřej Kolín 24. 05. 2019, 19:55:39
https://www.google.com/search?client=firefox-b-d&q=nodejs+crm me napadlo tohle
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Wal-De-Mar 24. 05. 2019, 19:58:42
Pozri sa na nestjs.com framework. Je to Node.js MVC framework ktorý rovno využíva TypeScript - keďže zjavne chceš dátové typy. Odtiaľ pochopíš viacero vecí, aj prístup JS k modularite kódu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Filip Jirsák 24. 05. 2019, 20:13:23
Pokud chcete používat typy, nemůžete psát v jazyce, který typy nemá. Pokud chcete používat JavaScriptové prostředí a  Node.js a zároveň chcete používat typy, pište v TypeScriptu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 24. 05. 2019, 22:08:39
Tak napr. budu tam chtit mit typ predstavujici datetime s casovou zonou. Co s tim, kdyz to tam nemuzu specifikovat?

vestavěný typ Date v javascriptu obsahuje časovou zónu

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Co s tim, kdyz to tam nemuzu specifikovat?

co nemůžeš specifikovat?

nejdřív bych se naučil javascript a až potom řešil nodejs.



Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 24. 05. 2019, 22:19:57
Pokud chcete používat typy, nemůžete psát v jazyce, který typy nemá.

javascript má typy hodnot.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 24. 05. 2019, 22:24:16
Pokud chcete používat typy, nemůžete psát v jazyce, který typy nemá.

javascript má typy hodnot.

Přesně. V Javascriptu není typ atributem proměnné, ale hodnoty, která je v ní uložena.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Adam Havelka 24. 05. 2019, 22:29:16
Pokud používáš nějaké IDE tak doporučuji použít jsdoc, napíšeš si datové typy k objektům, funkcím, třídám,... a editor ti bude napovídat. Ukázky jsou na wiki:

https://en.wikipedia.org/wiki/JSDoc

Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 24. 05. 2019, 23:03:42
Pokud používáš nějaké IDE tak doporučuji použít jsdoc, napíšeš si datové typy k objektům, funkcím, třídám,... a editor ti bude napovídat. Ukázky jsou na wiki:

https://en.wikipedia.org/wiki/JSDoc

Vyborne, super rada, diky :-)
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Fuki Fuki 24. 05. 2019, 23:11:01
1. Robit backend v node.js ma vyznam iba vtedy ked tie kniznice vyuzijes/zdielas aj s frontendom. Ak to nepotrebujes tak neries ani backend v javascripte.
2. Na cisty JS sa dnes uz pozera skor ako na assembler. Pouzi lepsie jazyky, ktore sa do JS transpiluju. Pre zaciatocnikov bude najlepsi TypeScript.
3. Nejaky ten cas sa s tebou bude tahat Javovska minulost. Budes sa snazit v node spravit nieco na co si zvyknuty v Jave. Nic s tym nespravis, ale proste si budes musiet zvyknut mysliet inac. V podstate zabudni na Javu a co z nej poznas :-) Takze skor nez zacnes nieco robit tak sa poriadne nauc JS a TS. Mozno sa ti tie jazyky zdaju jednoduche a ze ich zvladnes raz dva. Bohuzial jednoduchost jazyka je tu kompenzovana dizajn patternami a to chvilu potrva kym sa ti dostanu do krvi.
4. S frameworkami opatrne, React a podobne zalezitosti ries az ked budes ovladat jazyk. A vyhni sa Angularu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 24. 05. 2019, 23:31:15
@Fuky fuky _4. a ja naopak Angular odporúčam. Mne to prijde jeden z najlepších frameworkov a pritom mi prijde jednoduchý.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kamil Podlešák 24. 05. 2019, 23:36:03
Přidám se k ostatním:
Myslím že to do začátku stačí, za chvíli přestaneš chtít psát Javovský kód
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 24. 05. 2019, 23:47:04
Napadlo me toto, co kdybych udelal design tak, ze nebudu definovat domenovy model v aplikaci, ale budu ho mit definovan jen v databazi a v aplikaci budu mit jen DAO vrstvu?

 Me se TypeScript vubec nelibi, ja radeji budu delat v tom JS.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Ondrej Nemecek 25. 05. 2019, 01:33:19
Nebylo by lepší použít nějaký jazyk nad jvm? Mě js svět k srdci nepřirostl - nejde jen o jazyky ale i o ten ekosystém a kulturu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: BoneFlute 25. 05. 2019, 01:50:13
Napadlo me toto, co kdybych udelal design tak, ze nebudu definovat domenovy model v aplikaci, ale budu ho mit definovan jen v databazi a v aplikaci budu mit jen DAO vrstvu?

Myslím, že to vůbec není špatný nápad.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Filip Jirsák 25. 05. 2019, 08:31:28
javascript má typy hodnot.

Přesně. V Javascriptu není typ atributem proměnné, ale hodnoty, která je v ní uložena.
Jistě. Říkal jsem si, zda tam mám pro některé doplňovat poznámku pod čarou, nebo zda mám odpověď formulovat pro původního tazatele a nekomplikovat ji pro něj zavádějícími odbočkami. Zvolil jsem druhou variantu.

Napadlo me toto, co kdybych udelal design tak, ze nebudu definovat domenovy model v aplikaci, ale budu ho mit definovan jen v databazi a v aplikaci budu mit jen DAO vrstvu?
To je rozumné řešení pro všechny jednoduché CRUD aplikaci – i pro ty psané v Javě. Akorát je potřeba si dávat pozor na to, že někdy přeci jen alespoň torzo doménového modelu potřebujete – aplikace by přeci jen neměla zapisovat do databáze cokoli, co si uživatel vymyslí, ale měla by dělat doménově specifické validace.

Me se TypeScript vubec nelibi, ja radeji budu delat v tom JS.
To moc nechápu, TypeScript je prakticky JavaScript rozšířený o typy. S doplňováním typů do JavaScriptu pomocí JSDoc nemám moc dobré zkušenosti, podle mne se to hodí jen pro velmi jednoduché typy.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 25. 05. 2019, 11:10:06
Napadlo me toto, co kdybych udelal design tak, ze nebudu definovat domenovy model v aplikaci, ale budu ho mit definovan jen v databazi a v aplikaci budu mit jen DAO vrstvu?

Někde potřebuješ zformulovat SQL dotazy pro tu databázi a nabindovat hodnoty. Doména s tabulkou také vždy není 1:1, protože jedna doména může pracovat s více tabulkami a naopak více domén může pracovat s jednou tabulkou. Proto je dobré ten doménový model rozdělit do dvou vrstev - jednu dáš do aplikace a druhou do databáze.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 25. 05. 2019, 12:01:11
Nebylo by lepší použít nějaký jazyk nad jvm? Mě js svět k srdci nepřirostl - nejde jen o jazyky ale i o ten ekosystém a kulturu.

co vám vadí na js ekosystému v roce 2019? Podle mě se ten ekosystém už dávno stabilizoval. Je stejně stabilní, ale mnohem modernější než java ekosystém. npm už také funguje bez problémů.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 25. 05. 2019, 13:03:56
Nebylo by lepší použít nějaký jazyk nad jvm? Mě js svět k srdci nepřirostl - nejde jen o jazyky ale i o ten ekosystém a kulturu.

jazyk nad jvm, ako napríklad Scala?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Wal-De-Mar 25. 05. 2019, 13:20:56
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 25. 05. 2019, 13:28:30
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 25. 05. 2019, 13:43:16
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?
tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Ano, ostatní to prasí, jak jen to jde a spoléhají se na to, že verzovací systém jejich mizerný návrh spasí.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 25. 05. 2019, 13:45:53
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 25. 05. 2019, 14:09:52
Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.

je to zbytečná vrstva navíc, se kterou se musí seznámit vaši kolegové. Narozdíl od ORM knihoven není API nijak standardizované.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Wal-De-Mar 25. 05. 2019, 14:43:16
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.

To je super, že ti to tak vyhovuje v Jave, ale pýtaš sa na JS. Jazyk, ktorý má bližšie ku funkcionálnej, ako OOP paradigme. Takže sa na doménový model vyser. V prípade Node si ako prvé ujasni, či ideš s Node generovať aj obsah stránok, alebo ideš urobiť loose coupled architektúru a ideš použiť Node len ako REST API server a frontend budeš servírovať separátne. Čo si zvolíš?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 25. 05. 2019, 19:37:26
Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.

je to zbytečná vrstva navíc, se kterou se musí seznámit vaši kolegové. Narozdíl od ORM knihoven není API nijak standardizované.

Co? Jake API neni standardizovane?

Kdyz delam v Jave s Hibernatem, tak samozrejme entitni tridy mi tvori zaroven muj domenovy model. V JS bohuzel nic jako Hibernate nemam.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 25. 05. 2019, 20:06:48
V JS bohuzel nic jako Hibernate nemam.

sebevědomé tvrzení od někoho, kdo JS nezná. ORM knihoven je spousta.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Wal-De-Mar 25. 05. 2019, 20:49:26
Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.

je to zbytečná vrstva navíc, se kterou se musí seznámit vaši kolegové. Narozdíl od ORM knihoven není API nijak standardizované.

Co? Jake API neni standardizovane?

Kdyz delam v Jave s Hibernatem, tak samozrejme entitni tridy mi tvori zaroven muj domenovy model. V JS bohuzel nic jako Hibernate nemam.

Nerozumiem prečo tu stále dokola vyplakávaš nad tým, že sa ti nedarí JavaScript používať rovnako ako Javu. Utri si slzy a ponor sa do štúdia. Čím skôr pochopíš, že JS nie je Java, že JS nie je ani len objektový jazyk, že Node nie je Tomcat, že Node MÁ niečo ako Hibernate a volá sa to TypeORM, ktoré sa inšpirovalo zrovna Hibernate, tým skôr sa (nielen) tu prestaneš strápňovať.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 25. 05. 2019, 21:43:33
V JS bohuzel nic jako Hibernate nemam.

sebevědomé tvrzení od někoho, kdo JS nezná. ORM knihoven je spousta.

 :D :D :D no prave

https://stackoverflow.com/questions/6007353/which-orm-should-i-use-for-node-js-and-mysql

No longer maintained...
No longer maintained...
No longer maintained...
No longer maintained...
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: gill 25. 05. 2019, 22:20:37
V JS bohuzel nic jako Hibernate nemam.

sebevědomé tvrzení od někoho, kdo JS nezná. ORM knihoven je spousta.

 :D :D :D no prave

https://stackoverflow.com/questions/6007353/which-orm-should-i-use-for-node-js-and-mysql

No longer maintained...
No longer maintained...
No longer maintained...
No longer maintained...


Dotaz starý 7 roků. To je ve světě JS věčnost, ale jak jsem psal v předchozím příspěvku, ekosystém už se stabilizoval. Doporučují mu třeba sequelize, které udržované je. Není problém používat neudržovanou stabilní knihovnu, alespoň je jistota, že se nebude měnit.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Idris 26. 05. 2019, 00:09:07
V JS bohuzel nic jako Hibernate nemam.

sebevědomé tvrzení od někoho, kdo JS nezná. ORM knihoven je spousta.

 :D :D :D no prave

https://stackoverflow.com/questions/6007353/which-orm-should-i-use-for-node-js-and-mysql

No longer maintained...
No longer maintained...
No longer maintained...
No longer maintained...
Node.js není moc dobrá volba, sám autor tohoto frameworku přešel na Go :)
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Filip Jirsák 26. 05. 2019, 06:37:12
co vám vadí na js ekosystému v roce 2019? Podle mě se ten ekosystém už dávno stabilizoval. Je stejně stabilní, ale mnohem modernější než java ekosystém. npm už také funguje bez problémů.
Chtěl jsem vám to věřit, ale pak se mi v timelině objevilo toto: https://twitter.com/lukejacksonn/status/1131506699356037121

Jinak ale pokud někdo chce programovat jako v Javě, ať programuje v Javě – programovat jako v Javě v něčem jiném nedává smysl, to nemůže dopadnout jinak, než že bude dotyčný nespokojený. Výhoda existence více programovacích jazyků je právě v tom, že jsou různé, každý se hodí na něco jiného, jiný způsob práce a pro jiné programátory. Nedávalo by smysl mít dva jazyky, které budou stejné.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 07:53:04
Jeste bych ten Javascript mohl uchopit trochu jinak - programovat to ze strany UI a backend zadratovat. Tak po to podle me delaji javascriptari.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 09:50:13
Jeste bych ten Javascript mohl uchopit trochu jinak - programovat to ze strany UI a backend zadratovat. Tak po to podle me delaji javascriptari.

Feritové paměti už vyšly z módy.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 18:58:01
Teda vazeni, ja uz dlouhe mesice Waldemarovy prispevky zcela ignoruju, ani nevim co mi tady psal.

Nicmene je zajimave, ze doted se tu nikdo nerozepsal jak v tom dynamickem jazyce teda programovat. Zkousel jsem proklikavat ruzne knihovny, jaky design pouzivaji ony, a jako je to vcelku hnus, komentare zadne, dokumentace vetsinou bida, na nejake intuitivni rozeznani jak kterou knihovnu pouzivat se da zapomenout. Takze asi musim programovat taky tak.

Asi zkusim jeste pro inspiraci jak je udelany Python.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 19:15:27
Nicmene je zajimave, ze doted se tu nikdo nerozepsal jak v tom dynamickem jazyce teda programovat. Zkousel jsem proklikavat ruzne knihovny, jaky design pouzivaji ony, a jako je to vcelku hnus, komentare zadne, dokumentace vetsinou bida, na nejake intuitivni rozeznani jak kterou knihovnu pouzivat se da zapomenout. Takze asi musim programovat taky tak.

Asi zkusim jeste pro inspiraci jak je udelany Python.

Komentáře nejsou potřebné, kód musí být srozumitelný i bez nich. Pokud není, tak je to zpravidla chybou autora a nějaké komentáře to nespraví. U takových programů často ani nebývají testy, ze kterých se obvykle dají vyčíst příklady použití. Ovšem těmi knihovnami bych se moc neřídil, raději bych sáhl po nějakém tutoriálu.

Python je na tom podle mne mnohem lépe, určitě ho vyzkoušej.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 26. 05. 2019, 19:47:19
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.


Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 20:07:44
Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.
Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

V tom blogu nepopisuje nic jiného, než blbě pochopené OOP. Java je v tom nevinně.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 20:08:02
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.


Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

Ten clanek je zajimavy, uz jsem ho cetl nekdy driv, ale v podstate mu chybi neco, co jeho hodnoto hodne devalvuje. A to je, v jakem enviromentu ten otycny clovek pracuje. Je totiz velky rozdil v designu komponent zvolenem v Enterprise a designu zvolenem nekde na mensich projektech. A nemysli si, Java se da taky skalovat - nemusis mit automaticky na vsechno byrokraticky napsanych nekolik vrstev abstrakci. Ackoliv nekteri lidi to maji tendenci delat - respektive mame to tendenci delat vsichni, ale projevuje se to ruzne intenzivne. Odpovida to gaussove krivce, programovani je ohromna zatez a zkouska na kognitivni schopnosti jedince.

O spravnosti OOP a toho, jak to dela Java, uz nepochybuju. Muzu srovnat uz 2 enviromenty, v jednom se bastlilo proceduralne (master Javista byl byvaly PHPkar), v druhem se dela OOP - OOP enviroment svou prehlednosti jednoznacne vede.

O spravnosti designu Javy (a C#) uz nepochybuju taky - kdyz to srovnam s Javascriptem. Celkova kvalita knihoven v Javascriptu neni moc dobra.

Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.

Kdyz ctu tyhle clanky, kde nekdo rozporuje OOP, tak jedna z veci je, ze OOP neznamena Java. OOP je tady uz nekolik dekad. A kdovi, mozna bylo toto paradigma vymysleno jeste predtim, nez vznikly pocitace - jak uz to tak u nekterych veci byva, lidi se jimi zabyvaly driv, nez je vubec meli na cem implmentovat. A je vcelku vtipne, kdyz nejaky jednotlivec rozporuje desitky let vyvoje programovaich jazyku - cimz se zabyvali lide chytrejsi nez ja nebo autor clanku. A jak to dneska vypada v popularite jazyku je jasne videt, OOP jazyky vedou.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Idris 26. 05. 2019, 20:20:00
Doteraz nikde som nevidel navrhovať Node aplikáciu spôsobom "a ako prvé si zadefinujeme doménový model". Ani definovaním data access objects. O čom točíte?

tak se programovalo před rokem 2000, v dobách nedokonalých verzovacích systémů dávalo smysl x vrstev abstrakce. Někteří tak programují dosud.

Jak to souvisi s verzovacim systemem? Ja mam za to, ze domenovy model je zaklad dobreho OOP designu.

Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.


Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

Ten clanek je zajimavy, uz jsem ho cetl nekdy driv, ale v podstate mu chybi neco, co jeho hodnoto hodne devalvuje. A to je, v jakem enviromentu ten otycny clovek pracuje. Je totiz velky rozdil v designu komponent zvolenem v Enterprise a designu zvolenem nekde na mensich projektech. A nemysli si, Java se da taky skalovat - nemusis mit automaticky na vsechno byrokraticky napsanych nekolik vrstev abstrakci. Ackoliv nekteri lidi to maji tendenci delat - respektive mame to tendenci delat vsichni, ale projevuje se to ruzne intenzivne. Odpovida to gaussove krivce, programovani je ohromna zatez a zkouska na kognitivni schopnosti jedince.

O spravnosti OOP a toho, jak to dela Java, uz nepochybuju. Muzu srovnat uz 2 enviromenty, v jednom se bastlilo proceduralne (master Javista byl byvaly PHPkar), v druhem se dela OOP - OOP enviroment svou prehlednosti jednoznacne vede.

O spravnosti designu Javy (a C#) uz nepochybuju taky - kdyz to srovnam s Javascriptem. Celkova kvalita knihoven v Javascriptu neni moc dobra.

Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.

Kdyz ctu tyhle clanky, kde nekdo rozporuje OOP, tak jedna z veci je, ze OOP neznamena Java. OOP je tady uz nekolik dekad. A kdovi, mozna bylo toto paradigma vymysleno jeste predtim, nez vznikly pocitace - jak uz to tak u nekterych veci byva, lidi se jimi zabyvaly driv, nez je vubec meli na cem implmentovat. A je vcelku vtipne, kdyz nejaky jednotlivec rozporuje desitky let vyvoje programovaich jazyku - cimz se zabyvali lide chytrejsi nez ja nebo autor clanku. A jak to dneska vypada v popularite jazyku je jasne videt, OOP jazyky vedou.
Kdybys to měřil inteligencí, tak vede Haskell. I ten je ovšem pro Agdaře primitivní, protože má (z jejich pohledu) omezený typový systém.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 20:51:18
Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.

Pokud se někdo pokusí použít metodologii Springu v NodeJS nebo třeba v PHP, tak je z toho obvykle katastrofální design aplikace plný mapperů a nesmyslných servisních tříd. Do MVC nic takového nepatří.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 20:57:30
Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.

Pokud se někdo pokusí použít metodologii Springu v NodeJS nebo třeba v PHP, tak je z toho obvykle katastrofální design aplikace plný mapperů a nesmyslných servisních tříd. Do MVC nic takového nepatří.

Co je spatneho na tom, mit design udelany tak, ze budu rozlisovat kategorie funkci na api, vstupni mappery, vystupni mapper, service, domenu, dao a background joby? Kazde kategorii bude i odpovidat jedna slozka. To mi vysvetli, co je na tom tak spatneho. - to ti prijde prebyrokratizovane?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 26. 05. 2019, 21:02:43
Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.
Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

V tom blogu nepopisuje nic jiného, než blbě pochopené OOP. Java je v tom nevinně.

Ak niekto kto programuje v Jave 10 rokov nepochopí OOP, tak už to je náznakom že OOP je blbosť, keďže Java je nejvíc strikt OOP jazyk. Ostatne ten pojem OOP je samo o sobe nestriktne definovaný, a každý to chápe trocha inak, a každý tvrdí o druhom že nesprávne pochopil OOP. Pritom čo je to vlastne OOP? Hodne abstraktný pojem samo o sobe. Ale ok, dajme tomu že vy viete čo je OOP. Avšak ako môžete hovoriť že je OOP lepšie? Když neviete ako spraviť kvalitný program ne-OOP formou? Skúšali ste jazyky Golang alebo Ruby? Ja som programoval aj v Jave, aj v Golang, viem porovnať. Když viete len OOP jazyk, a nemusí to byť len Java, klidne trebárs C#, tak stejnak nemôžete tvrdiť čo tvrdíte, kým ste nerobili na komplexnom projekte ne-OOP cestou. Vy budete tvrdiť že OOP je skvelé, len preto že to vyzerá dobre, ale není tomu tak.


E: p.s. moja najbolúbenejšia kombinácia technológií je Node.js+Angular+Golang+Redis všetko cestou MVC ... ale mám rád i C/C++ a prekvapivo Scalu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Cikáda 26. 05. 2019, 21:04:41
A je vcelku vtipne, kdyz nejaky jednotlivec rozporuje desitky let vyvoje programovaich jazyku - cimz se zabyvali lide chytrejsi nez ja nebo autor clanku.

Ty desítky let byly v nějakém kontextu, zkušenosti a znalosti se posouvají... takže ano, i jedinec může rozporovat desítky let vývoje programovacích jazyků, stejně jako u jiných věcí. Navíc podle čeho posuzuješ chytrost autora článku? (a to vůbec neříkám, že chytrost je něco, co s tím má co dělat)


A jak to dneska vypada v popularite jazyku je jasne videt, OOP jazyky vedou.

Popularita není úplně dobrým měřítkem kvality. ;)
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 21:33:46
Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.
Pokud se někdo pokusí použít metodologii Springu v NodeJS nebo třeba v PHP, tak je z toho obvykle katastrofální design aplikace plný mapperů a nesmyslných servisních tříd. Do MVC nic takového nepatří.
Co je spatneho na tom, mit design udelany tak, ze budu rozlisovat kategorie funkci na api, vstupni mappery, vystupni mapper, service, domenu, dao a background joby? Kazde kategorii bude i odpovidat jedna slozka. To mi vysvetli, co je na tom tak spatneho. - to ti prijde prebyrokratizovane?

Funkcím se v OOP říká metody a mají v něm odlišnou roli. Statickým metodám můžeme říkat funkce, ale jejich výskyt by měl být v OOP minoritní - například u továrních metod.

Jaká jedna odpovídající složka? Copak ty složky pojmenováváš názvem kategorie? Správně mají být pojmenovány názvem domény, o kterou se starají. Zbytečně ti vzniká další vrstva adresářů. Struktura má být plochá, dvouvrstvá, maximálně třívrstvá. V žádném případě se z toho nesmí dělat taxonomie. Slova mapper, service, domain apod. do těch názvů nepatří - jinak z návrhu vznikne paskvil.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 21:45:01
Udelat necemu dobre design neni uplne jednoduche a v Jave je diky Springu zavedena uz 2 dekady metodologi toho, jak ma komponenta vypadat. Je to spravne a vhodne definovano tim frameworkem. Delat neco OOP uplne od nuly, tomu se snazim vyhybat, protoze to neni tak jednoduche - mam tendenci vsude uplatnovat to, jak vypada komponenta ve eSpringu, protoze je to prehledny a dobry design, tzn. rozdeleni na API, Service, DAO, domenovy model, vstupni mappery, vystupni mappery, background joby - na tom neni treba nic menit, nikdo nic lepsiho nez je tohle nevymysli.
Pokud se někdo pokusí použít metodologii Springu v NodeJS nebo třeba v PHP, tak je z toho obvykle katastrofální design aplikace plný mapperů a nesmyslných servisních tříd. Do MVC nic takového nepatří.
Co je spatneho na tom, mit design udelany tak, ze budu rozlisovat kategorie funkci na api, vstupni mappery, vystupni mapper, service, domenu, dao a background joby? Kazde kategorii bude i odpovidat jedna slozka. To mi vysvetli, co je na tom tak spatneho. - to ti prijde prebyrokratizovane?
Jaká jedna odpovídající složka? Copak ty složky pojmenováváš názvem kategorie? Správně mají být pojmenovány názvem domény, o kterou se starají. Zbytečně ti vzniká další vrstva adresářů. Struktura má být plochá, dvouvrstvá, maximálně třívrstvá. V žádném případě se z toho nesmí dělat taxonomie. Slova mapper, service, domain apod. do těch názvů nepatří - jinak z návrhu vznikne paskvil.

Videl jsem 2 zpusoby v praxi - slozky pojmenovane nazvem domeny o kterou se staraji a slozky s nazvem kategorie. Ta prvni varianta se vyskytovala v enviromentu kde se moc nedelalo OOP, architektura byla plocha. Ta druha varianta se pouzivala v enviromentu, kde se delalo OOP.

u me zatim vede v prehlednosti 2 varianta - slozky nesou nazev kategorie. Ale nic samozrejme neni tak jednoduche, aby to bylo cernobile - nekdy je vliv domeny (nebo spise subdomeny - nejakou domenu resi komponenta) natolik znacny, ze z hlediska prehlednosti je vhodne, aby mela svou vlastni slozku. (napr. authentikace)

Vzhledem k tomu ze komponenty by nemely byt monoliticke hydry, ale mely byt specializovane na neco, dava o to vice rozdeleni slozek dle kategorii smysl, protoze vsechny tridy jaksi resi vicemene jednu a tutez domenu, ktera je definovana prave tou komponentou samotnou.

Muzu mit slozku domain a v ni mit domenove objekty, protoze uz ten samotny domenovy model hodne napovida o tom, co vlastne ta komponenta bude delat, jake problematiky uloh resi.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 22:00:51
Nevim jak mam udelat spravny OOP desigm kdyz si jako jednu z prvnich veci neujasnim domenovy model. Me to tak vyhovuje.
Dobry OOP? picovina... https://sw-samuraj.cz/2019/02/remcani-proti-jave/

V tom blogu nepopisuje nic jiného, než blbě pochopené OOP. Java je v tom nevinně.


E: p.s. moja najbolúbenejšia kombinácia technológií je Node.js+Angular+Golang+Redis všetko cestou MVC ... ale mám rád i C/C++ a prekvapivo Scalu.

Jestli ono to nebude tim, ze delas ocividne frontend. Ostatne, to uz se psalo nekde tusim v Unix Bible, kde se popisovalo na prikladu Applistu a Unixaku - kde Unixaci se staraji vic o to, jak ma fungovat mechanismus aplikace, kdezto Applisti vice o to, jak tu aplikaci bude chtit pouzivat jeji uzivatel. Coz vytvori 2 ruzne pristupy k veci a ruzne vysledky.

Ja jsem backend programator - me vice zajima poradnost mechanismu nez to, jak to bude pouzivat uzivatel. Kdybych delal frontend, asi me bude mene zajimat mechanismus a vice zpusob pouzivani uzivatelem. Budu psat aplikaci ze strany UI a co je v pozadi bude podrizeno UI.

Bylo by dobre, kdyby si to programatori uz konecne uvedomili a prestali na sebe navzajem kydat hnuj.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Cikáda 26. 05. 2019, 22:00:51
Python je na tom podle mne mnohem lépe, určitě ho vyzkoušej.

Předpokládám, že řeč je o typech a dynamickém jazyku. Mohl bys to trochu rozvést?
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 26. 05. 2019, 22:04:28
E: p.s. moja najbolúbenejšia kombinácia technológií je Node.js+Angular+Golang+Redis všetko cestou MVC ... ale mám rád i C/C++ a prekvapivo Scalu.

Jestli ono to nebude tim, ze delas ocividne frontend. Ostatne, to uz se psalo nekde tusim v Unix Bible, kde se popisovalo na prikladu Applistu a Unixaku - kde Unixaci se staraji vic o to, jak ma fungovat mechanismus aplikace, kdezto Applisti vice o to, jak tu aplikaci bude chtit pouzivat jeji uzivatel. Coz vytvori 2 ruzne pristupy k veci a ruzne vysledky.

Ja jsem backend programator - me vice zajima poradnost mechanismu nez to, jak to bude pouzivat uzivatel. Kdybych delal frontend, asi me bude mene zajimat mechanismus a vice zpusob pouzivani uzivatelem. Budu psat aplikaci ze strany UI a co je v pozadi bude podrizeno UI.

Bylo by dobre, kdyby si to programatori uz konecne uvedomili a prestali na sebe navzajem kydat hnuj.

hmm, ja sa osobne považujem za full-stack programátora.... inak netuším podľa čoho si usúdil že riešim front-end.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 22:18:07
E: p.s. moja najbolúbenejšia kombinácia technológií je Node.js+Angular+Golang+Redis všetko cestou MVC ... ale mám rád i C/C++ a prekvapivo Scalu.

Jestli ono to nebude tim, ze delas ocividne frontend. Ostatne, to uz se psalo nekde tusim v Unix Bible, kde se popisovalo na prikladu Applistu a Unixaku - kde Unixaci se staraji vic o to, jak ma fungovat mechanismus aplikace, kdezto Applisti vice o to, jak tu aplikaci bude chtit pouzivat jeji uzivatel. Coz vytvori 2 ruzne pristupy k veci a ruzne vysledky.

Ja jsem backend programator - me vice zajima poradnost mechanismu nez to, jak to bude pouzivat uzivatel. Kdybych delal frontend, asi me bude mene zajimat mechanismus a vice zpusob pouzivani uzivatelem. Budu psat aplikaci ze strany UI a co je v pozadi bude podrizeno UI.

Bylo by dobre, kdyby si to programatori uz konecne uvedomili a prestali na sebe navzajem kydat hnuj.

hmm, ja sa osobne považujem za full-stack programátora.... inak netuším podľa čoho si usúdil že riešim front-end.

Delal jsi nekdy v enterprise, napr. v bance? Kde business logika nejakeho typu objednavky je tak komplexni, ze jeji zpracovani trva nekolik dni nebo i tydnu, a vyzadje mit specializovanou komponentu ktera predstavuje stavovy stroj, protoze jinak by se v tom ani prase nevyznalo a bylo by to nereliablni? Kde centralni databaze ma 200 tabulek a kazda muze mit az 100 sloupcu? jestli ne, tak jsi u me frontendar  8) :D

Mimochodem, vis jak vznikne databaze, co ma 200 tabulek se 100 sploupci? Vznikne postupne, bez planovani, tak jak byly jednotlive veci potreba postupne rostla - tzn. takovy shit ve kterem se neda dobre vyznat vznikne praveze metodologii, ktera se uplatnuje v javascriptu.



Obecne se da rict, ze dobra poskladanost aplikace vyzaduje cas a peci. A kdyz se do toho ten cas neinvestuje, tak proste vznikne shit. Neexistuje nejaka vsespasna metodologie nebo jazyk, ktera udela pekny design za programatora. OOP je neco, co umoznuje do programoveho kodu vlozit novy prvek/uroven poradku. Stejne tak staticke typovani. Ale oboje je samo o sobe jen prostredek - jestli tomu ten programator cas venuje, aby to ten prostredek vyuzil k dobremu designu a lepsi prehlednosti kodu, to je vec druha. Mozna i za pomoci dynamickeho jazyka se da dosahnout podobne miry poradku - ale neverim tomu, ze to bude jednoddussi a spise si myslim, ze to bude tezsi.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 22:20:52
Co je spatneho na tom, mit design udelany tak, ze budu rozlisovat kategorie funkci na api, vstupni mappery, vystupni mapper, service, domenu, dao a background joby? Kazde kategorii bude i odpovidat jedna slozka. To mi vysvetli, co je na tom tak spatneho. - to ti prijde prebyrokratizovane?
Jaká jedna odpovídající složka? Copak ty složky pojmenováváš názvem kategorie? Správně mají být pojmenovány názvem domény, o kterou se starají. Zbytečně ti vzniká další vrstva adresářů. Struktura má být plochá, dvouvrstvá, maximálně třívrstvá. V žádném případě se z toho nesmí dělat taxonomie. Slova mapper, service, domain apod. do těch názvů nepatří - jinak z návrhu vznikne paskvil.

Videl jsem 2 zpusoby v praxi - slozky pojmenovane nazvem domeny o kterou se staraji a slozky s nazvem kategorie. Ta prvni varianta se vyskytovala v enviromentu kde se moc nedelalo OOP, architektura byla plocha. Ta druha varianta se pouzivala v enviromentu, kde se delalo OOP.

u me zatim vede v prehlednosti 2 varianta - slozky nesou nazev kategorie. Ale nic samozrejme neni tak jednoduche, aby to bylo cernobile - nekdy je vliv domeny (nebo spise subdomeny - nejakou domenu resi komponenta) natolik znacny, ze z hlediska prehlednosti je vhodne, aby mela svou vlastni slozku. (napr. authentikace)

Vzhledem k tomu ze komponenty by nemely byt monoliticke hydry, ale mely byt specializovane na neco, dava o to vice rozdeleni slozek dle kategorii smysl, protoze vsechny tridy jaksi resi vicemene jednu a tutez domenu, ktera je definovana prave tou komponentou samotnou.

Muzu mit slozku domain a v ni mit domenove objekty, protoze uz ten samotny domenovy model hodne napovida o tom, co vlastne ta komponenta bude delat, jake problematiky uloh resi.

V žádném případě nejsem příznivcem monolitů a proto se mi nelíbí, jak se toho zhostil autor zmíněného blogu. V každé třídě hezky 2-4 atributy a 3-7 metod. Víc není třeba. Skupinu tříd, která se stará o jednu doménu, dám do jednoho adresáře. Domény, které jsou logicky nad ní nebo pod ní, jsou v jiném adresáři na stejné úrovni. Můžeš to srovnat s hexagonální architekturou, která nevytváří zbytečnou hierarchii.

Specializaci tedy nedělám podle kategorie, ale podle domény. Pokladna, sklad, ceník, košík. V každé doméně je kompletní MVC, třídy hezky vedle sebe. Když vytvářím další doménu, například slevy, tak nemusím běhat po celém vývojářském stromu, ale mám celé MVC pohromadě v jednom adresáři. Pokud by mi měla vzniknout duplicita kódu s jinou doménou, tak tu část kódu refaktoruji do nové domény a ta si pak žije svým životem.

Adresář s názvem "domain" u mne postrádá smysl, neboť bych v něm měl všechno.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 26. 05. 2019, 22:25:41
Python je na tom podle mne mnohem lépe, určitě ho vyzkoušej.
Předpokládám, že řeč je o typech a dynamickém jazyku. Mohl bys to trochu rozvést?

Ohledně typovosti je mezi nimi významný rozdíl. NodeJS je slabě typovaný, ale Python je silně typovaný, což významně snižuje množství WTF při vývoji.

Měl jsem však na mysli ekosystém, který je dle mého názoru v Pythonu lepší.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Mlocik97 26. 05. 2019, 22:45:56

hmm, ja sa osobne považujem za full-stack programátora.... inak netuším podľa čoho si usúdil že riešim front-end.

Delal jsi nekdy v enterprise, napr. v bance? Kde business logika nejakeho typu objednavky je tak komplexni, ze jeji zpracovani trva nekolik dni nebo i tydnu, a vyzadje mit specializovanou komponentu ktera predstavuje stavovy stroj, protoze jinak by se v tom ani prase nevyznalo a bylo by to nereliablni? Kde centralni databaze ma 200 tabulek a kazda muze mit az 100 sloupcu? jestli ne, tak jsi u me frontendar  8) :D

Mimochodem, vis jak vznikne databaze, co ma 200 tabulek se 100 sploupci? Vznikne postupne, bez planovani, tak jak byly jednotlive veci potreba postupne rostla - tzn. takovy shit ve kterem se neda dobre vyznat vznikne praveze metodologii, ktera se uplatnuje v javascriptu.

v bance som nerobil, ale pracoval som na enterprise stredne komplexných aplikácií ako napr. casual hry, či webové aplikácie, ktoré spracuvávali špecifické dáta (stredne zložitou logikou).
v redisu neviem čo znamená pojem stĺpec, síce som robil aj s PostgreSQL, tam sa asi môžme baviť o stĺpcoch. A  áno je pravda že v prípade PostgreSQL som mal maximum 47 (+2) stĺpcov tabuľke v databáze, v ktorej dokopy bolo 28(+1) tabuliek alebo iný projekt síce len 14 stĺpcov ale 41 tabuliek (hodnoty v zátvorkách reprezentujú počet absolútne zbytočných "bazmekov" teda tabuliek či stĺpcov, ktoré neboli ani zmysluplné). Není to síce až 200, ale keďže som PostgreSQL použil len v 2 projektoch, a inak bežne používam noSQL, najmä ten redis, tak to sa moc porovnávať nedá. U mojich projektoch myslím že nemám až takú nutnosť použiť SQL relačné databázy. I tak si ale myslím že niečo o back-ende viem. Ale tak to je už každého subjektívny názor.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 26. 05. 2019, 23:45:07
Co je spatneho na tom, mit design udelany tak, ze budu rozlisovat kategorie funkci na api, vstupni mappery, vystupni mapper, service, domenu, dao a background joby? Kazde kategorii bude i odpovidat jedna slozka. To mi vysvetli, co je na tom tak spatneho. - to ti prijde prebyrokratizovane?
Jaká jedna odpovídající složka? Copak ty složky pojmenováváš názvem kategorie? Správně mají být pojmenovány názvem domény, o kterou se starají. Zbytečně ti vzniká další vrstva adresářů. Struktura má být plochá, dvouvrstvá, maximálně třívrstvá. V žádném případě se z toho nesmí dělat taxonomie. Slova mapper, service, domain apod. do těch názvů nepatří - jinak z návrhu vznikne paskvil.

Videl jsem 2 zpusoby v praxi - slozky pojmenovane nazvem domeny o kterou se staraji a slozky s nazvem kategorie. Ta prvni varianta se vyskytovala v enviromentu kde se moc nedelalo OOP, architektura byla plocha. Ta druha varianta se pouzivala v enviromentu, kde se delalo OOP.

u me zatim vede v prehlednosti 2 varianta - slozky nesou nazev kategorie. Ale nic samozrejme neni tak jednoduche, aby to bylo cernobile - nekdy je vliv domeny (nebo spise subdomeny - nejakou domenu resi komponenta) natolik znacny, ze z hlediska prehlednosti je vhodne, aby mela svou vlastni slozku. (napr. authentikace)

Vzhledem k tomu ze komponenty by nemely byt monoliticke hydry, ale mely byt specializovane na neco, dava o to vice rozdeleni slozek dle kategorii smysl, protoze vsechny tridy jaksi resi vicemene jednu a tutez domenu, ktera je definovana prave tou komponentou samotnou.

Muzu mit slozku domain a v ni mit domenove objekty, protoze uz ten samotny domenovy model hodne napovida o tom, co vlastne ta komponenta bude delat, jake problematiky uloh resi.

V žádném případě nejsem příznivcem monolitů a proto se mi nelíbí, jak se toho zhostil autor zmíněného blogu. V každé třídě hezky 2-4 atributy a 3-7 metod. Víc není třeba. Skupinu tříd, která se stará o jednu doménu, dám do jednoho adresáře. Domény, které jsou logicky nad ní nebo pod ní, jsou v jiném adresáři na stejné úrovni. Můžeš to srovnat s hexagonální architekturou, která nevytváří zbytečnou hierarchii.

Specializaci tedy nedělám podle kategorie, ale podle domény. Pokladna, sklad, ceník, košík. V každé doméně je kompletní MVC, třídy hezky vedle sebe. Když vytvářím další doménu, například slevy, tak nemusím běhat po celém vývojářském stromu, ale mám celé MVC pohromadě v jednom adresáři. Pokud by mi měla vzniknout duplicita kódu s jinou doménou, tak tu část kódu refaktoruji do nové domény a ta si pak žije svým životem.

Adresář s názvem "domain" u mne postrádá smysl, neboť bych v něm měl všechno.

Tak tam mas ten design ocividne ovlivnen tim, ze to neni ciste backend a mas tam to MVC. To to UI ti prihodne definovalo rozdeleni balicku tak, jak to mas ted.

Kdyby to byl ciste backend a fontend by byl uplne oddeleny, treba v Reactu, tak bys mohl mit na backendu tohle:

domena
 Objednavka
 Uzivatel
 Produkt
 Dodani
 Platba

Na projektu jsem jeste MVC nikdy nemel a vzhledem k tomu, ze uz MVC moc nepouziva, se k tomu mozna uz ani nedostanu.
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: Kit 27. 05. 2019, 00:17:50
V žádném případě nejsem příznivcem monolitů a proto se mi nelíbí, jak se toho zhostil autor zmíněného blogu. V každé třídě hezky 2-4 atributy a 3-7 metod. Víc není třeba. Skupinu tříd, která se stará o jednu doménu, dám do jednoho adresáře. Domény, které jsou logicky nad ní nebo pod ní, jsou v jiném adresáři na stejné úrovni. Můžeš to srovnat s hexagonální architekturou, která nevytváří zbytečnou hierarchii.

Specializaci tedy nedělám podle kategorie, ale podle domény. Pokladna, sklad, ceník, košík. V každé doméně je kompletní MVC, třídy hezky vedle sebe. Když vytvářím další doménu, například slevy, tak nemusím běhat po celém vývojářském stromu, ale mám celé MVC pohromadě v jednom adresáři. Pokud by mi měla vzniknout duplicita kódu s jinou doménou, tak tu část kódu refaktoruji do nové domény a ta si pak žije svým životem.

Adresář s názvem "domain" u mne postrádá smysl, neboť bych v něm měl všechno.

Tak tam mas ten design ocividne ovlivnen tim, ze to neni ciste backend a mas tam to MVC. To to UI ti prihodne definovalo rozdeleni balicku tak, jak to mas ted.

Na projektu jsem jeste MVC nikdy nemel a vzhledem k tomu, ze uz MVC moc nepouziva, se k tomu mozna uz ani nedostanu.

REST API mám routerem nasměrováno přímo na ty domény. V nich však už frontend neřeším - ten je v dalších doménách, které dělají HTML, XML, JSON nebo třeba PDF podle typu požadavku. V hierarchii jsou na stejné úrovni.

src
 Objednavka
 Uzivatel
 Produkt
 Dodani
 Platba
 Login
 Databáze
 Admin
 Dom
 Html
 Xml
 Pdf
... atd
Název: Re:Jak mam programovat v Node.js?
Přispěvatel: qelurg 06. 06. 2019, 23:02:36
Mimochodem, vis jak vznikne databaze, co ma 200 tabulek se 100 sploupci? Vznikne postupne, bez planovani, tak jak byly jednotlive veci potreba postupne rostla - tzn. takovy shit ve kterem se neda dobre vyznat vznikne praveze metodologii, ktera se uplatnuje v javascriptu.
Vznikne tak, ze se o datovy model stara nekompetentni prase. Neni to nastrojem, ale clovekem.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: qelurg 06. 06. 2019, 23:16:16
Delam v Jave a pokousim se o javascript.

Dam priklad. Na zacatku vseho bych si rad udelal domenovy model, protoze jsem tak zvykly - nekde prece sakra musim mit definovane s jakymi daty vlastne budu pracovat, to by v tom byl jinak binec.

No takze si udelam slozku domain a tam si davam 1 file per class. Jenze jsem se zrovna zasekl u te veci, ze si potrebuju specifikovat fieldy mych domenovych trid a nemuzu tak specifikovat daotvy typ. Co s tim jako mam delat kdyz tam nemuzu mit ani datovy typ? Tak napr. budu tam chtit mit typ predstavujici datetime s casovou zonou. Co s tim, kdyz to tam nemuzu specifikovat? Jak bude potom nejaky kolega programator, nebo ja za par mesicu, vedet, co ty jednotlive atributy trid vlastne predstavuji?
Tak si udelej domenovy model, nechapu, co ti v tom brani.

Kolega programator se podiva do dokumentace k programu a bude mit jasno.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: uetoyo 07. 06. 2019, 10:41:06
Delam v Jave a pokousim se o javascript.

Dam priklad. Na zacatku vseho bych si rad udelal domenovy model, protoze jsem tak zvykly - nekde prece sakra musim mit definovane s jakymi daty vlastne budu pracovat, to by v tom byl jinak binec.

No takze si udelam slozku domain a tam si davam 1 file per class. Jenze jsem se zrovna zasekl u te veci, ze si potrebuju specifikovat fieldy mych domenovych trid a nemuzu tak specifikovat daotvy typ. Co s tim jako mam delat kdyz tam nemuzu mit ani datovy typ? Tak napr. budu tam chtit mit typ predstavujici datetime s casovou zonou. Co s tim, kdyz to tam nemuzu specifikovat? Jak bude potom nejaky kolega programator, nebo ja za par mesicu, vedet, co ty jednotlive atributy trid vlastne predstavuji?
Tak si udelej domenovy model, nechapu, co ti v tom brani.

Kolega programator se podiva do dokumentace k programu a bude mit jasno.

Vůbec nechápu co mu brání při modelování domény. Jasně implementace je potom snazší v nějakém rozumném jazyku, ale Java zrovna pro DDD taky není ideální, zvlášť když jeden potřebuje hromadu Value Objects = neustálý boj s equals a hashcode. Nic proti Javě, ale tady bude problém jinde než v Node.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: qelurg 07. 06. 2019, 14:54:17
Vůbec nechápu co mu brání při modelování domény.
Tak to já zase chápu, nazývá se to stereotypní myšlení.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Wal-De-Mar 07. 06. 2019, 16:01:36
Páči sa mi táto debata :)
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: jr-sk 10. 06. 2019, 22:25:27
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Mlocik97 10. 06. 2019, 23:30:55
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.


absolútne nesúhlasím.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Wal-De-Mar 11. 06. 2019, 08:09:37
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.

Jej ty si zábavný :) Práve kvôli smiešnym názorom ako tento rád čítam toto vlákno :)
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Kit 11. 06. 2019, 08:10:21
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.
absolútne nesúhlasím.

S čím absolutně nesouhlasíš?

Nelíbí se mi styl příspěvku - prosté hejtování a urážení vývojářů. Python sice v mnoha ohledech předčí Javascript, ale to stále neznamená, že by Javascript měl být zašlapán do země. Na některé typy úloh je prostě výhodnější. Na vědeckotechnické výpočty bych Javascript asi nepoužil, ale to ještě neznamená, že by se nehodil pro zpracování textů.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 11. 06. 2019, 08:21:34
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.

Co to je za nesmysl, proc bych mel prechazet od Javy k Pythonu? Python je oproti jave taky solidni shit.

Ja se ucim v Node.js, protoze kvuli webdevelopmentu MUSIM. Chapes to? Ty si myslis ze kdyz budes delat v Pythonu, tak se vyhnes tomu, aby umel v Javascriptu? A kdyz uz umis v Javascriptu, tak co ti brani udelat si backend v Node.js?
...
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Kit 11. 06. 2019, 12:42:08
Co to je za nesmysl, proc bych mel prechazet od Javy k Pythonu? Python je oproti jave taky solidni shit.

Nenadávej na Python, když s ním neumíš. Mnoho věcí má vyřešeno lépe než Java a své místo na slunci si už vydobyl.

Ja se ucim v Node.js, protoze kvuli webdevelopmentu MUSIM. Chapes to? Ty si myslis ze kdyz budes delat v Pythonu, tak se vyhnes tomu, aby umel v Javascriptu? A kdyz uz umis v Javascriptu, tak co ti brani udelat si backend v Node.js?
...

Aha, takže když máš dělat frontend v Javascriptu, chceš v něm dělat i backend. Na první pohled to má logiku, na druhý to kulhá. Pro různé účely se používají různé ekosystémy, takže stejná je vlastně jen syntaxe. Takže je to poměrně slabý důvod. To bych ti raději doporučil PHP, které má k Javě mnohem blíž než Javascript.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Zabanovaný Anonymní Troll 11. 06. 2019, 14:49:13
Co to je za nesmysl, proc bych mel prechazet od Javy k Pythonu? Python je oproti jave taky solidni shit.

Nenadávej na Python, když s ním neumíš. Mnoho věcí má vyřešeno lépe než Java a své místo na slunci si už vydobyl.

Ja se ucim v Node.js, protoze kvuli webdevelopmentu MUSIM. Chapes to? Ty si myslis ze kdyz budes delat v Pythonu, tak se vyhnes tomu, aby umel v Javascriptu? A kdyz uz umis v Javascriptu, tak co ti brani udelat si backend v Node.js?
...

Aha, takže když máš dělat frontend v Javascriptu, chceš v něm dělat i backend. Na první pohled to má logiku, na druhý to kulhá. Pro různé účely se používají různé ekosystémy, takže stejná je vlastně jen syntaxe. Takže je to poměrně slabý důvod. To bych ti raději doporučil PHP, které má k Javě mnohem blíž než Javascript.

Jak udelam v PHP client side veci? Did you get the point? To uz muzu rovnou pouzit JSP nebo Thymeleaf a budu to mit lepsi nez PHP, nez Python a nez cokoliv  8)
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: qelurg 11. 06. 2019, 15:58:56
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.
Já mám rád python, je to můj preferovaný jazyk. Ale ty řeči o js jsou animozní, js je zajímavý jazyk a do webového prostředí se hodí, je mu ušit na míru. Je výborný na asynchronní programování, což je oblast, kde si python teprve hledá svou cestu.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: qelurg 11. 06. 2019, 16:02:52
Javascript? Bolo to tak ze miliony lacnych webovych patlacov vedelo cosi patlat do browsera v Javascripte. Pre obrovsky dopyt po programatoroch prisla snaha aby sa tito patlaci mohli zapojit do vyvoja backendu atd a tak vznikol cely bastel *.js :). Ked uz chcete ist od Javy tak naco patlat v JS, skus radsej Python. Myslim ze vo verzii 3 dozrel "skoro" k dokonalosti. Nerozumiem naco patlat v JS ked mame Python a dnes obrovsku infrastrukturu okolo.

Co to je za nesmysl, proc bych mel prechazet od Javy k Pythonu? Python je oproti jave taky solidni shit.

To rozhodně není, jsou to jazyky s různými koncepty a ve své oblasti patří k těm když ne nejlepším tak minimálně k nejúspěšnějším, v praxi zavedeným a osvědčeným.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Wal-De-Mar 11. 06. 2019, 16:25:56
Zas mlátite prázdnu slamu? :D
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Kit 11. 06. 2019, 17:38:04
... To bych ti raději doporučil PHP, které má k Javě mnohem blíž než Javascript.

Jak udelam v PHP client side veci? Did you get the point? To uz muzu rovnou pouzit JSP nebo Thymeleaf a budu to mit lepsi nez PHP, nez Python a nez cokoliv  8)

Proč bych měl client-side věci dělat v PHP? Dělej je v Javascriptu, k tomu je určen. Myslíš si snad, že si nějak ušetříš učení, když budeš pro backend i frontend používat stejný jazyk?

Dnes je doba, kdy pro dynamický web potřebuješ zvládnout minimálně pět jazyků, vzájemně zcela odlišných. To neukecáš.
Název: Re:Jak mám programovat v Node.js?
Přispěvatel: Kit 11. 06. 2019, 17:48:32
... js je zajímavý jazyk a do webového prostředí se hodí, je mu ušit na míru. Je výborný na asynchronní programování, což je oblast, kde si python teprve hledá svou cestu.

Tohle je konečně pádný argument pro JS. Asynchronní programování. Zdalipak ho tazatel potřebuje pro svou aplikaci?