Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: 1 ... 58 59 [60] 61 62 ... 133
886
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:53:51 »
A hlavne, i kdyz pada, tak jen na semanticke chyby
Nikoliv. Padá to na syntaktické či logické chyby. Jako třeba na to, že do metody očekávající dict {street: "", city:""} pošlu: {name: "", surname:"", address: {street: "", city:""}}.
Logicke chyby povazuji za podmnozinu semantickych
Tak to považuješ chybně.

887
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:45:31 »
Ze to vyplazne semanticky spatnej vysledek mam asi podobnlu duveru jako kdyz to napisu v pythonu.
Nikdy jsem netvrdil opak.

V rustu je peklo napsat jakoukoliv cyklickou datovou strukturu. Graf, strom s pointrem na rodice, apod. V haskellu se mi to ani nildy nepovedlo, protoze je z principu imutabilni. Urcite existuje nejaly magicky trik jak tyhle problemy v haskellu resit
Většinou jsem se bez cyklické struktury obešel.
V Haskellu by to nemusel být problém, pokud nechceš pointer. Něco jako:

Kód: [Vybrat]
data Node = Node {pk: Int, val: String, links: [Node]}

Vycházíš z toho, že:
Kód: [Vybrat]
(Node 42 "text") == (Node 42 "text")
protože na pointery se nehraje.

888
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:36:16 »
A hlavne, i kdyz pada, tak jen na semanticke chyby

Nikoliv. Padá to na syntaktické či logické chyby. Jako třeba na to, že do metody očekávající dict {street: "", city:""} pošlu: {name: "", surname:"", address: {street: "", city:""}}.

889
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:26:17 »
řekl byste tedy, že programování v dynamických jazycích (python, js) je náročnější než ve statických (haskell, pascal)?
Záleží náročnější na co.

Dynamické jazyky mají snadnej rozjezd. Nic tě nebrzdí. Nemusíš nic umět. Píšeš rychle, a aplikace utěšeně narůstá. IMHO s velikostí aplikace se to má tendenci bortit. Protože ti taky nic moc nepomáhá.

Co se týče statických jazyků, tak Pascal bych sem netahal. U Haskellu je to tak, že tě furt ten kompilátor komanduje. Což může být flustrující. Je těžší rozjezd, protože člověk se musí naučit pár těch záležitostí kolem typů. Ale když už ten kompilátor ukecáš, tak to většinou dost drží. Někdo porovnával na nějaké aplikaci Clojure a Haskell. A říkal, že je to cca stejný. Akorád v tom Haskellu je to pak tak nějak jakože do betonu zalité.

Dobré ohlasy má Rust, který by měl být poněkud netradičnější, ale se silnými typy. Žel zatím jsem neměl tak velkou možnost se mu věnovat.

Je zajímavé, že u většiny dynamických jazyků se dříve či později objeví tendence přidat tomu statickou typovou kontrolu (Javascript, Python). Proč asi.

890
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:16:03 »
Dependency injection znamena 'posli mi objekt jako parametr, at si ho nemusim vytvaret sam'.

Rozlišil bych DI jako princip, který klade důraz na popisnost. Tedy
1/ objekt se veřejně hlásí ke svým závislostem
2/ nic si pokoutně nevytváří, to znamená méně nečekaných side-effektů
3/ IMHO to dost pomáhá tomu, aby se udržoval rozumný počet závislostí. Nevzdory obavám začátečníků, málokdy se stane, že by objekt měl "nepříjemně" mnoho závislostí.
4/ Hodně to pomáhá refactoringu. Vzhledem k tomu, že konstruktor obvykle není součástí žádného rozhraní, tak přidat nebo odebrat nějakou závislost je velice levné (občas to trochu komplikují testy).

Na druhou stranu tu máme DI kontainer, který je zase něco úplně jiného. Ten bejvá naopak plnej magie, ale je to velice pohodlná a návyková záležitost. A krom situace, kdy jsem potřeboval kombinovat dva kontainery dohromady jsem zatím nijak zvlášť nenarazil (zkušenosti v tomto vítány).
Taky mám zkušenost, že DIC v typovaném jazyce je subjektivně příjemnější, než v netypovaném (python, javascript).

891
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 17:00:26 »
Myslim ze jsem tu presvedcive dokazal, ze vetsinu veci, prisuzovanych statickym typum, lze dosahnout i jinak, bez statatickych typu.

Myslím si, že pokud člověk tématu nerozumí, měl by k příspěvkům přistupovat velmi, velmi opatrně.

892
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 16:55:37 »
již před válkou jsem poukazoval na to, že část lidí tu debatuje o pascalu (nebo i C ...) a část o teorii typů (haskell apod.)
No a to je prave ten problem. Staticky typ je staticky typ v kazdem z techto jazyku. A pokud to neni upresneno, nelze ignorovat mainstramove jazyky se statickymi typy, tedy C, C++, Java a C#.

Ne. Problém je v tom, že C a Pascal z pohledu typů dneska už nikoho nezajímají. Takže snaha používat to jako argument je buď snaha o matení, nebo neznalost. Vyber si.

893
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 15:00:05 »
Spor je tedy jen v tom, kdy a kde tu kontrolu uděláš - uvnitř či venku.
Ne, to ani náhodou. Spor je o to, zda data kontrolovat včas, nebo pozdě.
Cele je to o tom, ze tu je sorta lidi, kteri si mysli, ze staticke typy jim odladi system. Coz je blbost nad entou.
A proc je to blbost na entou? Protoze je to straw man.
To neni straw man, to je reakce na tvrzeni, kdyz se to podari zkompilovat, je to v podstate hotovo.

Což je souvislost vysloveně evidentní. A výraz "v podstatě" jsi taky úmyslně vynechal.

Vskutku, tvé příspěvky nejsou v ničem přínosné.

894
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 14:50:58 »
Cele je to o tom, ze tu je sorta lidi, kteri si mysli, ze staticke typy jim odladi system. Coz je blbost nad entou. Viz C, ktere lehce umozni prekladat padajic programy a naopak jsou ty typy zdrojem mnohych chyb. Pak tu jsou jazyky s pokrocilejsim typovym systemem. Pokrocilejsi = slozitejsi. Tyto sice umozni eliminovat nektere chyby typické pro C, ale a) ty se v dynamickem jazyce nevyskytuji b) je tu kardinalni otazka, kdo odladi chyby v pouziti typoveho systemu?  A na to mame univerzalni odpoved, testy. Staticke typy vec zbytecne komplikuji a ve vysledku nic neresi. S vyjimkou vykonu.
Tak to určitě.

895
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 14:39:52 »
Objektový přístup spočívá v tom, že data kontroluješ co možná nejpozději.

To je tvá představa o Objektovém přístupu. Doufám, že není moc rozšířená.

896
Vývoj / Re:Co si myslíte o OOP?
« kdy: 21. 01. 2019, 14:29:25 »
Spor je tedy jen v tom, kdy a kde tu kontrolu uděláš - uvnitř či venku.
Ne, to ani náhodou. Spor je o to, zda data kontrolovat včas, nebo pozdě.

897
Vývoj / Re:Jednoduchý framework PHP
« kdy: 20. 01. 2019, 23:41:33 »
Ta, co mě zaměstnává, to oceňuje už přes 15 let. Vývoj začal v roce 2002, nasazeno to bylo v roce 2003. Kde v té době bylo symfony?
Jenže to je něco jiného. Dnes kvalitní FW jsou.

A za svuj kratší život má symfony už čtvrtou major verzi (kdy přestala být podporovaná ta první) a visí na spoustě dalších projektů, takže otázka zní, kde bude za dalsich 15 let? Jak jsem napsal, myslím si, že z hlediska dlouhodobého udržování aplikace je to lepší řešení a vyplatí se to.
Nevyplatí. Proč by mělo? Uveďte konkrétní výhody.

Jako dobře, pokud budete tvrdit, že žádný FW nemá požadované funkčnosti, protože vy máte tento a tento skvělej nápad, který žádné FW nemá, a naroubovat se na to nedají, tak fajn, takto by se dalo bavit. Ale vytvářet si vlastní řešení jen proto, aby bylo vlastní?! Ne, zcela určitě ne.
Dnes jsou kvalitní fw na co? Na dělání eshopů, možná redakčních systémů. Kolik máš kvalitních frameworků pro php na kreslení technologických schémat, které by si jednoduše rozuměly s opc serverem a vůbec obecně pro průmyslové nasazení? Který php framework si dobře rozumí alespoň s nejběžnějšími ERP systémy? Framework je dobrý na dělání tuctových webů, které potřebuješ sázet jako baťa cvičky, nikoliv na systémy přizpůsobené na míru, kde fw stejně z půlky musíš překopat a pak složitě udržovat funkční.

Někdo tu argumentoval stylem, že FW má být na všechno? Pane, takto diskutovat nebudeme.

898
Vývoj / Re:Co si myslíte o OOP?
« kdy: 20. 01. 2019, 23:38:13 »
Proč by aplikace musela rovnou celá spadnout? Proč by se nemohlo provádění dané operace zastavit, odeslat programátorovi (třeba e-mailem) serializovaný stack, který si programátor otevře, zobrazí mu to debugger v daném místě, s příslušnými parametry dané metody, zjistí, kde se stala chyba, kterou opraví, aplikaci aktualizuje, a ta může dál v běhu pokračovat tam, kde se zastavila?!

Protože pád aplikace je furt ještě lepší výsledek než poškození dat. Chyba programátora může být prkotina (argument navíc), ale také může být zásadní. A to nejde rozhodnout.

Proto je obecně lepší všechny tyhle scénáře nechat vychytat už dlouho před tím, než se kód vůbec dostane na produkci (dost na tom, že i tak nejdou udělat všechny).

899
Vývoj / Re:Co si myslíte o OOP?
« kdy: 20. 01. 2019, 22:18:40 »
Uniklo Ti to, co jsem psal. Když napíšu málo parametrů pro formát v Pythonu, v runtime mi to hodí výjimku. Překladač Rustu odmítne chybné parametry makra při překladu.
Však to v Pythonu odchytí testy, ne?
Ano, na každém jednotlivém místě, kde potenciálně zavoláš danou funkci, to musíš pokrýt testem. Při použití makra ne. A je to horší, v Pythonu můžeš do formátu poslat tuple nebo dict a ten si pošleš do funkce kdoví odkud. A ten test prostě budeš muset dělat pro všechna možná volání té vnitřní funkce, kde se daný formát řetězce provádí a doufat, že jsi na nic nezapomněl. A kvůli hloupému formátování řetězce, který se třeba zapisuje někam do logu, kam prakticky nikdy nikdo nekouká, spadne celá aplikace nebo neošetříš jeden request a je průšvih. S makrem nic takového nehrozí, tam víš, na čem jsi.
Nerozumím. Proč by ta aplikace měla spadnout, když zavolám nějakou funkci či metodu s chybným prametrem?
Asi nerozumíš více věcem, ale to je normální.

Mohl bys mi prosím odpovědět na položenou otázku?
Citace
Proč by ta aplikace měla spadnout, když zavolám nějakou funkci či metodu s chybným prametrem?

Pokud neznáš odpověď, tak samozřejmě nemusíš a ani se nemusíš zbytečně vykrucovat.

Ano. Taky se hlásím. Taky nerozumím, proč by zavolání nějaké funkce či metody s chybným prametrem nemělo spadnout.

900
Vývoj / Re:Jednoduchý framework PHP
« kdy: 20. 01. 2019, 21:35:06 »
Ta, co mě zaměstnává, to oceňuje už přes 15 let. Vývoj začal v roce 2002, nasazeno to bylo v roce 2003. Kde v té době bylo symfony?
Jenže to je něco jiného. Dnes kvalitní FW jsou.

A za svuj kratší život má symfony už čtvrtou major verzi (kdy přestala být podporovaná ta první) a visí na spoustě dalších projektů, takže otázka zní, kde bude za dalsich 15 let? Jak jsem napsal, myslím si, že z hlediska dlouhodobého udržování aplikace je to lepší řešení a vyplatí se to.
Nevyplatí. Proč by mělo? Uveďte konkrétní výhody.

Jako dobře, pokud budete tvrdit, že žádný FW nemá požadované funkčnosti, protože vy máte tento a tento skvělej nápad, který žádné FW nemá, a naroubovat se na to nedají, tak fajn, takto by se dalo bavit. Ale vytvářet si vlastní řešení jen proto, aby bylo vlastní?! Ne, zcela určitě ne.

Stran: 1 ... 58 59 [60] 61 62 ... 133