Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Vývoj / -
« Poslední příspěvek od JamesCip kdy Dnes v 00:03:26 »
The important and duly answer
2
Vývoj / Re:Proč se cpe JavaScript na backend?
« Poslední příspěvek od Kit kdy 03. 02. 2025, 22:25:18 »
Nezazněly tu hlavní rozdíly mezi ekosystémy. Pokud je na backendu PHP, tak má každý návštěvník vlastní proces, který je po vygenerování výstupu zlikvidován. Tím je zabráněno možnému zaseknutí serveru, při pádu jednoho procesu stačí reload stránky.

Naproti tomu servery s Javou či Javascriptem řeší odpovědi jedním procesem větveným na vlákna. Návštěvníci tedy mohou spolu interagovat bez použití databáze, mohou pracovat se společnými daty. Nevýhodou může být, že při pádu aplikace spadne celý server.

Typový systém nepovažuji za nezbytný. Dá se spolehlivě pracovat i bez něho a vývoj je o to rychlejší. Jen je třeba klást větší důraz na testy, bez kterých se dnes stejně programovat nedá.
3
Vývoj / Re:Proč se cpe JavaScript na backend?
« Poslední příspěvek od alex6bbc kdy 03. 02. 2025, 21:58:56 »
ad michal smucr:

frontendak potrebuje neco na serveru tak tam vrazi nodejs s tema problemama co jste popsal.

jako backendar jsem se musel ten js nejak, jakkoliv doucit. frontendaci nemaji silu se naucit golang, python atd.

je to nahoda nebo symptom?!!
4
Vývoj / Re:Proč se cpe JavaScript na backend?
« Poslední příspěvek od Michal Šmucr kdy 03. 02. 2025, 21:36:22 »
Pak nesmí takové výpočty provádět v hlavním vlákně, ale musí je volat z hlavního vlákna asynchronně s callback funkcí a ono se to zparalelizuje samo.

Přiznám se, že v JS nevyvíjím, mimo nějaké sebeobrany a provozu pár hotových aplikací. Ale přišlo mi, že ten princip je vcelku jasný - ten event loop běží pořád jako jedno vlákno - záměrně. Node.js pak používá ještě libuv, který vlákna samozřejmě používá a přes který řeší non-blocking IO operace, DNS resolving, streamy, systémové příkazy atp.
Ale jakmile jde přímo o nějaký kód přímo v JS, tak z toho event loopu přeci nijak nevyskočím, žádný mechanismus, který by to automaticky spouštěl v dalším vlákně tam není, a už je jedno jak ten kód obalím (aspoň já nevím jak).
Mimo worker threadů, které právě na tohle byly do Node.js přidané (i když samozřejmě to není konvenční threading jako v jiných prostředích typu Java nebo C#, protože to startuje celou novou izolovanou instanci V8, takže to spuštění je relativně pomalé a nesdílí to s hlavním vláknem stejná data - má to blíž např. k multiprocessing modulu v Pythonu, co si fakticky také spustí další interpretr).
A ano jsou na WT dál nějaké helpery, aby se to jednodušeji používalo (znám jen threads.js), ale ten základní princip zůstává.

Nebo jak jste to myslel?

Jinak ještě, já neříkám, že tenhle aspekt, musí každý nutně pocítit jako problém. Je vždycky x způsobů jak něco udělat. A asi tip bych si, že u většiny projektů, co na tom běží, se většina déle trvajících operací přesně vejde mezi ty non-blocking (síť, databáze), co si řeší node.js transparentně přes libuv. A když už tam někde má heavy věc, tak si ji šoupne do WT. Nebo třeba nějaké extrakce, komparace s hodně daty může udělat rovnou v db vrstvě, případně pokud je to něco pořád se opakujcího tak se třeba vyplatí rozjet nějakou mikroslužbu bokem.. Ale samozřejmě to rozhodnutí, jestli je některé vlastnost showstopper, je indiviudální.
5
Sítě / Re:Jak zablokovat vše čínské?
« Poslední příspěvek od Franta Kučera kdy 03. 02. 2025, 21:09:45 »
Ale problém pak může být, že pak může přestat něco fungovat.

Problém je, že někdo dělá weby závisející např. na dostupnosti služeb Googlu - a to způsobem, že při zablokování Googlu je celý ten web mimo provoz, ne že by přestala fungovat jen nějaká doplňková funkce. Tahle zvěrstva se dějí bohužel celkem často.

Že na to ten blokující přijde, je až důsledek toho problému, a vlastně je to dobře, protože to ukazuje, co je všechno špatně a co by se mělo opravit.

K původnímu dotazu: já blokuji selektivně domény Googlu, Microsoftu a Facebooku a pár dalších šmejdů. Dělám to na vlastním DNS serveru. Ty si na ten seznam můžeš dát vybrané čínské domény. Blokovat obecně nějakou zemi nemá smysl - protože 1) je tam i užitečný nebo přinejmenším neškodný obsah a 2) ta země působí i skrze jiné domény a IP adresy.

Další možnost je místo blacklistu mít whitelist - povolit si jen vybrané domény nebo skrze reverzní proxy dokonce jen vybrané URL. To je účinnější, ale taky mnohem pracnější. Moc si nedovedu představit to používat pro osobní přístup k internetu. Použít se to dá jako ochrana nějaké virtuálky, ve které běží nedůvěryhodný OS a aplikace – když ji nemůžeš provozovat úplně offline (což je nejbezpečnější), tak můžeš aspoň sestavit whitelist toho, kam má daná VM právo se připojovat. (ale úplně neprůstřelné to není a nějaký průsak tam přes ty whitelistované adresy být může)
6
Vývoj / Re:Proč se cpe JavaScript na backend?
« Poslední příspěvek od Tomas-T kdy 03. 02. 2025, 20:35:41 »
Nojo, jenže ten, na koho reaguješ, právě popisoval situaci, kdy "hodně počítá", tj. to vlákno se nefláká a nečeká na I/O, ale opravdu něco počítá - a takových vláken dokonce má víc než jedno. A v tu chvíli najednou nestačí "niekde dať await a je to vyriešené".
Pak nesmí takové výpočty provádět v hlavním vlákně, ale musí je volat z hlavního vlákna asynchronně s callback funkcí a ono se to zparalelizuje samo.
7
Sítě / Re:Jak zablokovat vše čínské?
« Poslední příspěvek od xsouku04 kdy 03. 02. 2025, 20:03:34 »
Chtělo by to nějaké seznamy domén, aby si každý mohl vybrat co chce blokovat. Někdo nemá rád google šmírování, někomu může vadit Microsoft, někdo nesnáší Číňany a někdo by si zablokoval třeba jen reklamy. Existuje něco takového?

Ale problém pak může být, že pak může přestat něco fungovat. Takže by to možná chtělo naklikat, jaká funkcionalita je žádoucí a jaká nežádoucí.   
8
Vývoj / Re:Proč se cpe JavaScript na backend?
« Poslední příspěvek od snugar_i kdy 03. 02. 2025, 19:52:46 »
Práve v tom je krása event loop-u, že sa to blokovať nebude. Z pohľadu programátora (aplikačného kódu) dokáže jedno vlákno obsluhovať množstvo "paralelných" requestov. Je to vďaka async/await syntaxi. Jasné, že na pozadí sa blokujúce operácie (čítanie/zápis na disk...) udejú v samostatných vlákach, aby sa využil potenciál viacerých jadier. Aplikácia to však nevidí a programátor môže existenciu vlákien úplne abstrahovať. Jedinou výnikou je, ak máte dlhú časť kódu bez await a skutočne začnete blokovať vlákno. Vtedy tam stačí niekde dať await a je to vyriešené. Za mňa výborný trade-off.
Nojo, jenže ten, na koho reaguješ, právě popisoval situaci, kdy "hodně počítá", tj. to vlákno se nefláká a nečeká na I/O, ale opravdu něco počítá - a takových vláken dokonce má víc než jedno. A v tu chvíli najednou nestačí "niekde dať await a je to vyriešené".
9
Bazar / Re:Prodám HP Microserver Gen8
« Poslední příspěvek od Termoset kdy 03. 02. 2025, 19:33:16 »
Prodáno, možno uzamknout.
10
Bazar / Re:Prodám klávesnici ZSA Moonlader
« Poslední příspěvek od Franta Kučera kdy 03. 02. 2025, 19:17:06 »
Mě by spíš zajímal důvod prodeje a dosavadní zkušenost s touto klávesnicí. Protože jsem taky uvažoval o pořízení. Dnes jsem spokojeným majitelem starší ErgoDox EZ.
Stran: [1] 2 3 ... 10