Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Jožka Niemand kdy Dnes v 13:26:14 »
A pritom je OOP tak strasne jednoduchy koncept.
Staci znat par pravidel a selsky rozum, objektovy je cely svet vukol.
A to je právě ta největší zrada - ono se to tváří, že je to strašně jednoduché, protože objektový je celý svět vůkol. Jenže je objektový jinak, než jak je to potřeba k vytvoření objektového modelu programu. Právě ta podvědomá snaha o 1:1 korespondenci reálných objektů a objektů programových je velice zákeřná past, do níž se chytí většina lidí. Reálný svět má mnohem komplikovanější vazby než IS a HAS a vzájemnou výměnu zpráv mezi blackboxy. Jedna a tatáž věc se dá klasifikovat z různých úhlů pohledu, podle různých kritérií. Například obyčejné číslo - přirozené, racionální, reálné, sudé/liché, transcendentní... Ale v počítači mě spíš zajímá, kolik místa potřebuji na jeho uložení a jak s ním budu algoritmicky zacházet, což je klasifikace, která zrovna moc neodpovídá "světu vůkol", ale odpovídá světu uvnitř počítače.

Ze je potreba selsky rozum, abych dovedl poznat, ktery objekt je v danem kontextu aktorem, ktery je prosty objekt, se kterym aktor manipuje.
Vidle.naberHnuj(hnuj) je spravny pristup
Hnuj.naskocNaVidle(vidle) je magorina.
V reálném světě je to nesmysl, ale v počítači je to rovnocenné a zvolit se musí varianta, která je přímočařejší z hlediska návrhu programu - pen.draw(canvas) vs. canvas.draw(pen) vs. canvas.pen(draw) vs. ... Zákon schválnosti říká, že si člověk vybere nevhodnou variantu, což se projeví v okamžiku, kdy bude chtít rozšířit svůj model o nějakou prkotinu, která mu do toho vůbec, ale vůbec nebude zapadat, ale kdyby býval zvolil jiný model na začátku, krásně by to do sebe zapadlo. A blbé je, že v tom smolném případě OOP poslouží úplně stejně jako v tom šťastném - jako zesilovač: když to na začátku vymyslíte dobře, OOP vám ušetří spoustu práce; a naopak, bohužel.

Pak je potreba v ramci mozkoveho mysleni este urcit, ze v danem kontextu objet User zrejme nebude clovek, alebrz vstupni karticka, co se strka do pichacky a kterou se oteviraji dvere, ze je treba lepsi ten objekt pojmenovat AuthToken a  tedy ze neni potreba do toho nasrat i cislo bot realneho Usera, to se klido strci do jineho objektu, co upravdu reprezentuje cloveka.
A nebo je třeba posoudit, zda ta kartička je zásadním objektem, nebo je to jen nějaký prostředek k autorizaci, či dokonce jeden z mnoha možných, pro daný program ne zcela podstatný, protože až někdo přijde s autorizací přes sítnici, začne se řešit, jak to napasovat na objekt kartička. Tedy zda jde o nějaký vrátný systém, pro nějž je badge/token to podstatné, a koho/co reprezentuje už není jeho starost, nebo naopak jde o nějaký systém zaměstnanců, kde zas není až tak podstatné jak se autorizoval, ale kdo se autorizoval.

A ano, knizky o OOP jsou vetsinou blbe, tam prave dedi trojuhelniky a ctverce z obecneho polygonu, aby ve zdedenem objektu vymenili sakuprask vsecko, tady je lepsi prosty interface.
Tohle bych nazval prvoplánové návrhové chyby. Který učební text je má, takový můžete rovnou zahodit. Jenže pak tu jsou ty "vyšší" chyby, které se dají jen těžko demonstrovat na malých příkladech, protože se začnou projevovat až později. Tím jsem nechtěl říci, že ty vaše příklady jsou špatně nebo dobře. Problém je, že bez znalosti kontextu se to nedá jednoznačně rozhodnout.

Marketingová hesla OOP byla přehlednost, znovupoužitelnost, úspora psaní. Realita, na niž jsem celý život narážel, byla přesně opačná.
2
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Jiří Havel kdy Dnes v 13:24:56 »
A pritom je OOP tak strasne jednoduchy koncept.
Staci znat par pravidel a selsky rozum, objektovy je cely svet vukol.

Staci vedet, ze kdyz ten jazyk nejake moznosti nabizi, ze je veru neni potreba nasrat vsude.
Ze napr. dedeni se pouziva, kdyz potrebuju ROZSIRIT funkcionalitu existujiciho objektu, pokud potrebuju jenom polymorfismus, na 99% bude vhodnejsi prosty interface.
Až na to, že to tak jednoduchý koncept není.

Ony jsou vlastně 2-3 různá paradigmata, která se sice nazývají stejně, ale znamenají něco jiného podle jazyka. Např. OOP v Javě vs Javascriptu. A ani jedno nemá moc společného s tím, co nazýváme objekt v běžném životě. viz. ten příklad s vidlema a hnojem.

Reálný svět není moc objektový. Hlavně hierarchiím se dost urputně brání a lezou z toho chuťovky jako diamantová dědičnost. A po tom, co jsem vyslechl rozhovor jednoho biologa a učitelky vím, že to není jen moje pozorování. Příroda se škatulkuje dost blbě.

BTW, subtypový polymorfismus není z matematického hlediska rozšíření ale naopak spíš zůžení. Odvozená třída nerozšiřuje  schopnosti báze. Ona umí podmnožinu z toho všeho, co by ta báze mohla dělat.
3
Bazar / Re:Prodám knihy o AJAXu, MySQL a PHP
« Poslední příspěvek od Petr Krčmář kdy Dnes v 13:23:53 »
Já jsem před časem takové knihy vyřadil z knihovničky a celou bednu jsem jich přivezl na LinuxDays. Zveřejnil jsem to předem, takže se řada lidí přidala a byl tam toho nakonec plný stůl a lidi si vybírali. Na konci dne nezbyla ani jedna. Věřím, že udělaly radost.
4
Bazar / Re:Prodám knihy o AJAXu, MySQL a PHP
« Poslední příspěvek od Kit kdy Dnes v 13:17:27 »
Když nebude zájem, věnuji knihy do městský knihovny.

Pokud ani tam nebude zájem, existují i knihobudky.
5
Bazar / Daruji 16portový 100Mbit switch za odvoz
« Poslední příspěvek od mercury116 kdy Dnes v 13:06:07 »
Zdravim,

nasel by nekdo vyuziti pro 16 portovy nemanagovany 100Mbit switch?
Nabizim za odvoz v Praze, pokud jste po trase, muzu i dovezt, ale neposilam.
Kovovy, sirka do racku, bez usi. Bez ventilatoru, tichy.

Neco jako je vyobrazene zde, ale porty jsou v jedne rade:
https://www.mondoplast.ro/eng/Switch-16-port-10-100Mbps-Mercury-S116-pg_ft-21

V pripade zajmu nechte na sebe kontakt nebo poslete PM.
6
Bazar / Re:Prodám knihy o AJAXu, MySQL a PHP
« Poslední příspěvek od Jenkings kdy Dnes v 12:54:36 »
Obávám se, že tohle asi knihovna nebude chtít. U nás se běžně takových knih městská knihovna zbavuje v klasických akcích 3kč/ks
7
Hardware / Re:Externí disk odolný proti odpojení
« Poslední příspěvek od Lukas1500 kdy Dnes v 12:11:54 »

Šel bych cestou síťového sdílené a síťového přenosu souborů, protože to je laciné a mně osobně to fakt slouží.

https://www.fotomobil.cz/baterie/externi-powerbanky/powerbanka-a-wifi-router-emtec-power-connect-u600-5200mah-ctecka-micro-sd-usb-rj45-dlna-%5Bid-a3126170133724%5D

To USB se dá vždycky vytáhnout z powerbanky (resp. wifirouteru s powerbankou) a připojit přímo...
Za tu cenu od toho asi nemůžeme čekat zázraky, ale vypadá to velmi dobře a určitě to stojí za pokus.
Díky!
8
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Kit kdy Dnes v 11:58:40 »
A pritom je OOP tak strasne jednoduchy koncept.
Staci znat par pravidel a selsky rozum, objektovy je cely svet vukol.

Staci vedet, ze kdyz ten jazyk nejake moznosti nabizi, ze je veru neni potreba nasrat vsude.
Ze napr. dedeni se pouziva, kdyz potrebuju ROZSIRIT funkcionalitu existujiciho objektu, pokud potrebuju jenom polymorfismus, na 99% bude vhodnejsi prosty interface.

Slovo ROZŠÍŘIT je ošemetné, protože se do toho vejde zbytečně moc vztahů. Potom vznikají nesmysly typu BaseController jako rodič apod. Místo toho používám slovo JE, které je pro pochopení vztahu mnohem lepší a hlavně psychologicky zamezí vzniku dědictví tam, kde být nemá.
9
Hardware / Re:Přepínání tří monitorů s HDMI
« Poslední příspěvek od hungarec kdy Dnes v 11:47:36 »
Mám dobré zkušenosti s produkty DeLock, v tomto případě konkrétně model 66498.
https://www.delock.com/produkt/66498/merkmale.html?setLanguage=cz
Potřeboval jsem přepínat více HDMI vstupů na 1 HDMI výstup včetně zvuku přes optiku (Toslink).
Funguje to roky perfektně a nikdy s tím nebyl problém.

DeLock má samozřejmě více různých krabiček, najdeš tam snad všechno co je potřeba.
Neděs se když to nenajdeš v random CZ e-shopu, stačí rozumným napsat a oni ti to zajistí.

Jinak jak už psal Filip Jirsák, KRUP bude mít v nabídce řešení, PremiumCord taky dělá kde co. Dobrý je hledat na webu a pak jen do KRUPu napsat PN toho co přesně chceš  8)
10
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Standa Blábol kdy Dnes v 11:45:42 »
Pokud se tím plánuješ živit, tak odpověď je "spíš ne". Full-time jobů v Rustu (ne RUSTu btw) je docela málo. Full-time jobů v Javě je hodně. Rust totiž za rychlost běhu programu platí větší pomalostí při psaní kódu (je fakt hodně přísnej) a to se na většině projektů nevyplatí.

jop ,je tak nevyužitelný ze  rust programatori jsou nejlépe ohodnoceni v oboru zatímco ta jista java se nedostala ani do první sedmičky a to tam najdeš jak go tak python + typescript a kotlin a bonus .. scalu
A to jste vzal kde? Zas nějaký pochybný žebříček, který se vždycky co měsíc totálně zpřehází? C++ a Java jsou z hlediska jobu sázky na jistotu a zároveň dobrého ohodnocení. Ani jeden z těchto jazyků přitom nemusím a nedělám v nich, i když se asi připravuju o peníze (duševní zdraví je mi cennější - správný objektový návrh umí udělat málo lidí, rozhodně mnohem méně, než kolik se jich o to pokouší, resp. se to po nich chce - mně tento design programu také není blízký a evidentně ani autorům většiny učebnic OOP; problém navíc je, že jen málokdo si to dokáže sebekriticky přiznat).

A pritom je OOP tak strasne jednoduchy koncept.
Staci znat par pravidel a selsky rozum, objektovy je cely svet vukol.

Staci vedet, ze kdyz ten jazyk nejake moznosti nabizi, ze je veru neni potreba nasrat vsude.
Ze napr. dedeni se pouziva, kdyz potrebuju ROZSIRIT funkcionalitu existujiciho objektu, pokud potrebuju jenom polymorfismus, na 99% bude vhodnejsi prosty interface.

Ze je potreba selsky rozum, abych dovedl poznat, ktery objekt je v danem kontextu aktorem, ktery je prosty objekt, se kterym aktor manipuje.
Vidle.naberHnuj(hnuj) je spravny pristup
Hnuj.naskocNaVidle(vidle) je magorina.

Pak je potreba v ramci mozkoveho mysleni este urcit, ze v danem kontextu objet User zrejme nebude clovek, alebrz vstupni karticka, co se strka do pichacky a kterou se oteviraji dvere, ze je treba lepsi ten objekt pojmenovat AuthToken a  tedy ze neni potreba do toho nasrat i cislo bot realneho Usera, to se klido strci do jineho objektu, co upravdu reprezentuje cloveka.

A ano, knizky o OOP jsou vetsinou blbe, tam prave dedi trojuhelniky a ctverce z obecneho polygonu, aby ve zdedenem objektu vymenili sakuprask vsecko, tady je lepsi prosty interface.

Chapu, ze treba Spring Boot potrebuje vsecky ficury javy vcetne introspekce a apod. Prave proto Spring vznikl, aby bezny programator business logiky se s tim prdolit nemusel.
Ja pri psani ve Springu z celeho OOP pouzivam interfacy (popr anotace, tedy interfacy v jinem formatu), encapsulaci a konec.


Stran: [1] 2 3 ... 10