Framework vs. čistý kód

qelurg

  • ****
  • 390
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #30 kdy: 18. 07. 2025, 08:54:30 »
Já doporučuji se frameworkům vyhýbat, zejména začátečníkům, u nich imho vždy více berou než dávají.

Začátečník by měl pochopit jazyk a programování. To framework ztěžuje, je to další vrstva navíc, kterou je potřeba se prokousat a kterou se začátečník neprokouše, takže mu skryje to pod tím a pochopit základy.  Takže důležité je říct si, proč chci framework? Protože se chci vyhnout nudné rutině a ušetřím tím spoustu času a vím co dělám, nebo protože nevím co dělám a doufám, že to framework nějak vyřeší za mě? S frameworkem mám také spojen pojem bloatware, kdy kvůli jedné funkci člověk používá desítky až stovky rozsáhlé knihovny. U malých projektů je framework prakticky vždy přítěž.


Re:Framework vs. čistý kód
« Odpověď #31 kdy: 18. 07. 2025, 09:13:06 »
Ahoj, mam dotaz na vas profesionaly.

Kamarad mi rikal ze opravdovy programator nepouziva framework. Prirovnava to k horolezci s kyslikem (framework) a bez kysliku (real programator). Framework je podle nej vlastne "podvod"...


Co si o tomto nazoru myslite?

Ze je to blbec.

Re:Framework vs. čistý kód
« Odpověď #32 kdy: 18. 07. 2025, 09:47:13 »

Jsem pokorná http knihovna, co ti nebude kecat do toho jak se loguje a jak si děláš ORM. Ne. Ja jen překládám http cally na metody a tím to hasne. Jestli chceš validace, tak si najdi něco na validace.

vs

Sežral jsem kaši z rendlíka, ucháč mlíka, pecen chleba, http požadavek, html parser, session manager, validační systém, ORM classy, půlku lispu a metaprogramování, aniž bych o něm cokoliv věděl, react backend, mámu, tátu a Tebe taky ještě sním, zatímco si mažu bradavky XML beanou. ୧༼ಠ益ಠ༽୨


Přesně tak. Třeba Laravel v PHP, to je přesně takovej Otesánek.

Kit

  • *****
  • 836
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #33 kdy: 18. 07. 2025, 10:09:26 »
Proč je nám tedy na upevnění poštovní schránky vnucován bagr?

Protože se dopouštíš úplně stejný chyby, jako prvopočáteční kamarád. Zobecňuješ v momentě, kdy o zobecnění nikdo nestojí a nedává smysl. Tedy to, že ti někdo na vyvrtání dvou děr pro hmoždinky a pověšení poštovní schránky vnucuje bagr, je jen ve tvý hlavě.

Proč mi vnucuješ myšlenku, že se dopouštím chyby nějakým zobecňováním? Používám standardní knihovny, které mnoho vývojářů ani nezná a místo nich používají komplikované frameworky s nestabilním rozhraním.

Re:Framework vs. čistý kód
« Odpověď #34 kdy: 18. 07. 2025, 10:10:47 »
Proč je nám tedy na upevnění poštovní schránky vnucován bagr?

Protože se dopouštíš úplně stejný chyby, jako prvopočáteční kamarád. Zobecňuješ v momentě, kdy o zobecnění nikdo nestojí a nedává smysl. Tedy to, že ti někdo na vyvrtání dvou děr pro hmoždinky a pověšení poštovní schránky vnucuje bagr, je jen ve tvý hlavě.

Proč mi vnucuješ myšlenku, že se dopouštím chyby nějakým zobecňováním? Používám standardní knihovny, které mnoho vývojářů ani nezná a místo nich používají komplikované frameworky s nestabilním rozhraním?

podle tech zprav to vypada, ze jsi hodne zkuseny programator Kite.
kazdopadne diky chlapi za reakce a blbec to urcite neni


Džan

Re:Framework vs. čistý kód
« Odpověď #35 kdy: 18. 07. 2025, 12:04:26 »
Po 20 letech praxe bych to viděl takhle - framework je nástroj.
Pokud chceš udělat jednoúčelovou appku bez nějaké vize dalšího vývoje, nepoužívej framework.
Pokud chceš udělat appku, na které bude dělat více lidí a bude vize rozšíření do budoucna, použij framework.
Dobrý framework se pozná tak, že staví na návrhových vzorech. Pokud na něm musíš něco ohýbat, je to buď špatný framework nebo jsi špatný programátor. Čím víc kódu jsem viděl, tím víc zastávám, že nejlepší přístup je Convention over configuration a čím míň framework umožňuje programátorovi prasit, tím lépe.
Programátor, který ti řekne ze používat framework je špatně, bude dost špatný programátor a po takových je pak radost to „dílo“ přebírat. V one-man-show aplikacích to může fungovat, ale tam to taky končí.
Typická aplikace, která je v něčem důležitá řeší logování, zachytávání výjimek, performance monitoring, session handling, background joby, routing, ORM a spoustu dalších věcí, které ve finále umí být dost komplikované a nechtěl bych je psát od nuly, protože tím způsobím hodně chyb, na které už někdy někdo narazil a jsou vyřešené, tak proč znovuvynalézat kolo.

Re:Framework vs. čistý kód
« Odpověď #36 kdy: 18. 07. 2025, 12:08:05 »
Koukej, třeba ChatGPT to dal docela dobře:

Citace
Rozdíl mezi frameworkem a knihovnou není ostrý, ale dá se popsat hlavně podle toho, kdo volá koho – to je tzv. inversion of control:

Knihovna (library)

  • Ty ji voláš.
  • Je to sada funkcí nebo tříd, které používáš podle potřeby.
  • Kódová logika zůstává ve tvých rukou, knihovna jen pomáhá.

Framework

  • On volá tebe.
  • Framework definuje strukturu aplikace a diktuje, jak ji psát.
  • Tvůj kód je zapojený do frameworku skrze "háčky" (např. definované třídy, názvy funkcí, decorators...).
  • Framework obvykle řídí běh programu a tvůj kód je jen plugin.

Co mu tam chybí tak třeba to že framework se typicky snaží poskytnout nástroje na řešení všeho v dané doméně.

Podle mě je v hodně případech jen velmi tenká čára mezi knihovnou a frameworkem.

Pokud použiju existující HTTP server, který volá můj callback, tak je to automaticky framework?

Já pochopil tu otázku asi jinak...

peete

Re:Framework vs. čistý kód
« Odpověď #37 kdy: 18. 07. 2025, 12:10:51 »
"Profesionální" programátor je osoba, která v zadaném čase a v zadané kvalitě dodá požadovaný software. Je to osoba touto činností se živící. Pokud mu v tom pomáhej Bůh a framework, což se většinou v praxi stává, budiž. Pokud by tato osoba mohla programovat v něčem jí libém, např. assembleru nebo jinak stavět věci od píky, bylo by to sice pěkné, ale možná, že by tato osoba nestíhala termíny a brzy byla odejita z práce. "Hobík" nechť si staví v čem chce a jak chce, ideálně na proužku papíru může programovat vlastníma rukama postavený Turingův stroj.

Re:Framework vs. čistý kód
« Odpověď #38 kdy: 18. 07. 2025, 13:16:56 »
Podle mě je v hodně případech jen velmi tenká čára mezi knihovnou a frameworkem.
Naopak, mezi knihovnou a frameworkem není čára, není tam žádná pevná hranice, částečně se to překrývá. Kdo koho volá je docela dobré poznávací znamení. Z trochu jiného úhlu pohledu je to – když mám svůj kód a k němu přidám nějakou závislost (která můj kód ovlivní jen částečně), je to knihovna. Když stáhnu „knihovnu“ a dovnitř začnu implementovat svůj kód (typicky nepíšu spouštěč aplikace, ale kód, který ve vhodnou chvíli zavolá ta knihovna), je to framework. Tím pádem ta hranice není pevně daná, protože záleží na množství, na způsobu použití.

někde je to dokonce přiznané – třeba React Router 7 má dokumentaci rozdělenou na dvě velké části, jedna popisuje použití jako framework, jedna jako knihovna.

BoneFlute

  • *****
  • 2 043
    • Zobrazit profil
Re:Framework vs. čistý kód
« Odpověď #39 kdy: 18. 07. 2025, 13:37:27 »
Autoři jsou navíc typicky ujetí do nějaké perverzní filosofie jakože je lepší neprogramovat a místo toho všechno konfigurovat (=> programovat v konfiguráku), takže to vždycky končí stejně; reálně musíš mít hrozně moc nepřenositelných (doménově specifických) znalostí konfigurace a debugování bazmeku. Až pak přijdeš k bazmeku 2, nebo to nadšeně přepíšou do verze 2, tak tohle celé co ses pracně naučil můžeš vzít a zahodit. Ta tvoje pracně vydobitá znalost jak definovat xml entity a mapovat je na beany, aby se ti autogenerovaly orm třídy co automaticky překládají REST na CRUD? K ničemu.

Já bych se těch molochů zastal.

když si vezmu nejhnusnějších z hnusných: Wordpress

Je to bastl.
Jeho architektura je příšerná.
Implementace je ještě děsivější.
Je to přesně jak píšeš, musíš se ohejbat různým divným neintuitivním požadavkům.
A v neposlední řadě to přerostlo svůj původní účel.

A přesto je to na mnoho problémů vyhovující řešení. Lepší jak Flask (například), protože ten by nejdříve musel splnit požadavky X a Y.

Re:Framework vs. čistý kód
« Odpověď #40 kdy: 18. 07. 2025, 14:19:23 »
Já doporučuji se frameworkům vyhýbat, zejména začátečníkům, u nich imho vždy více berou než dávají.
To je jako doporučovat začátečníkům nepoužívat bagr a používat lžíci. Jenže používáním lžíce se nenaučíte ovládat bagr. Používání frameworku je zkrátka jiná dovednost, než používání programovacího jazyka a základní knihovny. A opět se to překrývá – pro použití frameworku je potřeba znát některé části jazyka a knihovny; některé části jazyka a knihovny nejsou potřeba vůbec, protože je daná aplikace nepoužívá nebo je řeší interně ten framework; a některé věci jsou v tom jazyce nebo spíš knihovně a také jsou v tom frameworku, ale jinak – a pak je dobré se držet frameworku a ne jazyka (protože ten framework to implementoval jinak z nějakého důvodu – obvykle je ta implementace ve frameworku modernější, protože framework se může vyvíjet rychleji než jazyk a základní knihovna).

Navíc nemá smysl stavět proti sobě základní knihovnu a framework – i základní knihovna je jen knihovna nebo framework, její výlučnost je daná jenom tím, že je shodou okolností už přibalená k běhovému prostředí daného jazyka.

alex6bbc

  • *****
  • 1 768
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #41 kdy: 18. 07. 2025, 15:52:20 »
ten umi to a ten zas tohle a vsichni dohromady udelaji moc.
tenhle ma framework, tehle zdrojak, a ten cerny ten ma assembler, tohle je devops, tady zase ceckar, tamhle nahore je frontendak.
a vsichni dohromady udelaji vse.

qelurg

  • ****
  • 390
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #42 kdy: 18. 07. 2025, 19:53:10 »
Já doporučuji se frameworkům vyhýbat, zejména začátečníkům, u nich imho vždy více berou než dávají.
To je jako doporučovat začátečníkům nepoužívat bagr
Však také začátečník by měl nejprve umět používat jednodušší stroje a také rozumět kopání, pěkně si ho ošahat ručně krumpáčem, aby pochopil jak funguje a je uspořádaná zemina. Pak teprve dokáže bagr používat rozumně a nenadělá s ním škody. Krom toho, bagr je něco jako nějaký vysokoúrovňový jazyk. Framework je něco jako korporátní stavební firma.

BoneFlute

  • *****
  • 2 043
    • Zobrazit profil
Re:Framework vs. čistý kód
« Odpověď #43 kdy: 18. 07. 2025, 21:50:36 »
Já doporučuji se frameworkům vyhýbat, zejména začátečníkům, u nich imho vždy více berou než dávají.
To je jako doporučovat začátečníkům nepoužívat bagr
Však také začátečník by měl nejprve umět používat jednodušší stroje a také rozumět kopání, pěkně si ho ošahat ručně krumpáčem, aby pochopil jak funguje a je uspořádaná zemina. Pak teprve dokáže bagr používat rozumně a nenadělá s ním škody. Krom toho, bagr je něco jako nějaký vysokoúrovňový jazyk. Framework je něco jako korporátní stavební firma.

To přirovnání tě střílí do nohy.

V praxi se běžně setkáš s člověkem, který by si o lopatu zlomil nohu, ale bagrista je výborný.

Na rekonstrukci si běžně najímáš kompletní stavební firmu právě proto, že detailům nerozumíš, a kolikrát ani rozumět nechceš.

Re:Framework vs. čistý kód
« Odpověď #44 kdy: 19. 07. 2025, 00:18:45 »
Framework je dobrý sluha, ale zlý pán. V začátcích to hází klacky pod nohy, protože člověk se musí učit o jednu komplexní věc víc.

Odpověd pak závisí na tom, o jaký typ programování a učení se jedná. V řadě případů to jde bez frameworku a tak je lepší se tím zatím nezatěžovat a učit se bez nich. V jiných případech je práce bez frameworku neskutečné sebemrskačství a ve výsledku se tím naučíte leda tak jak si napsat vlastní framework. V těhle případech je lepší si nějaký vybrat a začít s tím. Ale těch frameworků je více a časem, až člověk nabere nějaké zkušenosti, je lepší zkusit ještě nějaký jiný, ať máte porovnání. Nesnažte se začínat tím, že si vyberete "ten nejlepší". V práci za vás stejně vybral již dávno někdo jiný.

Jinými slovy: framework je vždycky zátěž navíc. Ale jsou případy, kdy to bez nich už prakticky nejde. Například si nedokážu představit, že bych dobrovolně programoval něco pro AWS bez AWS CDK.

Podobně jako si již dávno nepíšeme vlastní knihovny na HTTP komunikaci, tak obor v řadě míst doiteroval do stavu, kdy už bez frameworku nepracujeme. I když to občas je framework, který si ve firmě v průběhu let napsali sami.