Framework vs. čistý kód

Re:Framework vs. čistý kód
« Odpověď #90 kdy: 29. 07. 2025, 09:40:37 »
Funguje to asi nejlpíp z šablonovacích jazyků které jsem zkoušel, ale nefunguje to tak dobře, abys udělal refaktor a nemusel se jít podívat case to case co všechno sedí. IDE tomu Thymeleaf totiž 100% nerozumí.

100% fungují jen PHP, prvotní varianta JSP bez EL, nové JTE, fungoval by i JS + React refactor, ale IDE tam 100% nerozumí věcem které se týkají importů souborů, je tam kolem toho nějaký mess.

Refaktor musí fungovat na 100%, ne na 90%, protože jinak musím pokaždé ručně prolízat závislosti a ručně opravovat.


Navíc hrůza je, že nefunguje napovídání vstupních parametrů do fragmentu, a není oživená ani reference že by fungoval proklik na fragment:

Kód: [Vybrat]
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="cs">
<head><title>Users</title></head>
<body>
<h1>All Users</h1>
<a href="/users/add">Add User</a>
<ul>
    <li th:each="user : ${users}">
        <div th:replace="user_card :: userCard(${user.name}, ${user.email})">${user.email}</div>
        <div th:text="${user.email}"></div>


        <strong th:text="${user.name}">Name</strong> - <span th:text="${user.email}">Email</span>

        <span th:text="${T(com.example.demo.constant.UserConstant).MY_CONST_1234}"></span>
    </li>
</ul>
<span th:text="${@stringUtil.parse123('ahoj')}"></span>
</body>
</html>


A toprosím po 15 letech vývoje. A i tak má ten Thymeleaf asi nejlepší podporu v IDE, co momentálně je. A prřsto nfungují elementární věci, co i v React JS fungují.
« Poslední změna: 29. 07. 2025, 09:45:37 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.


Re:Framework vs. čistý kód
« Odpověď #91 kdy: 29. 07. 2025, 09:48:56 »
Tohle nefunguje? https://www.jetbrains.com/help/idea/thymeleaf.html
Samozřejmě že funguje. Funguje tam jak napovídání kódu samotných šablon, tak napovídání dat, kterými se šablona plní.

Jinak podpora jazyků a frameworků v produktech JetBrains je přímo úměrná tomu, jak moc se daná věc používá. PHP se samozřejmě používá daleko víc než Thymeleaf, JetBrains má pro PHP i samostatný produkt, tak je podpora PHP samozřejmě lepší. Což ovšem neznamená, že je PHP lepší než Thymeleaf. Hlavně je to každé něoc jiného.

Já zrovna Thymeleaf nemusím a dávám přednost Freemarkeru, když teda je důvod nepoužít JSX. Ale kvůli tomu ještě nebudu označovat Thymeleaf za zbytečný a nebudu psát nesmysly jako „vymyšlené svoje tagy“, když „vymyšlené svoje tagy“ má každý šablonovací systém a zrovna Thymeleaf se jim snaží maximálně vyhýbat (a mně to nevyhovuje a proto dávám přednost Freemarkeru).

Re:Framework vs. čistý kód
« Odpověď #92 kdy: 29. 07. 2025, 10:01:04 »
Tohle nefunguje? https://www.jetbrains.com/help/idea/thymeleaf.html
Samozřejmě že funguje. Funguje tam jak napovídání kódu samotných šablon, tak napovídání dat, kterými se šablona plní.

Samozřejmě že nefunguje, lenivý teoretiku Jirsáku, co si to ani nezkusíš sám zapnout, když Ideu Ultimate určitě máš. Funguje perfektně Kitovo PHP, funguje JSP a JTE, ale Thyemeleaf ani žádný jiný custom-language templatovací jazyk perfektně nefungují. A možná by nám i někdo z JetBrains dokázal vysvětlit, proč ani fungovat třeba nemůžou, protože v těch custom jazycích nich třeba něco nesedí, hapruje nebo chybí.

Fungují Šablona-Je-Kód typy templates, ale Šabloje-Je-Můj-Nový-Zbrusu-Nový-Kód templates nefunugje ani jeden.
« Poslední změna: 29. 07. 2025, 10:06:33 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.

Re:Framework vs. čistý kód
« Odpověď #93 kdy: 29. 07. 2025, 10:20:25 »
Fungují Šablona-Je-Kód typy templates, ale Šabloje-Je-Můj-Nový-Zbrusu-Nový-Kód templates nefunugje ani jeden.
Když jste si vymyslel tyhle dva termíny, jistě je dokážete definovat. Bez definice nemohou ostatní vědět, o čem vlastně píšete.

Re:Framework vs. čistý kód
« Odpověď #94 kdy: 29. 07. 2025, 10:22:23 »
Takhle má vypadat řádný šablonovací jazyk, a přesně takhle fungovaly JSP a 30 let podobně funguvaly PHP, to co vzniklo po JSP je oproti tomu slabota:

https://github.com/casid/jte



https://www.youtube.com/watch?v=K5DALXwOe0s
« Poslední změna: 29. 07. 2025, 10:28:19 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.


Kit

  • *****
  • 838
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #95 kdy: 29. 07. 2025, 11:27:34 »
Takhle má vypadat řádný šablonovací jazyk, a přesně takhle fungovaly JSP a 30 let podobně funguvaly PHP, to co vzniklo po JSP je oproti tomu slabota:

https://github.com/casid/jte

To by se ti mohl líbit i XSLT, který to umí lépe. Je součástí PHP, Pythonu, Javy i Reactu. Umí i rekurzívní šablony.
« Poslední změna: 29. 07. 2025, 11:29:44 od Kit »

Re:Framework vs. čistý kód
« Odpověď #96 kdy: 29. 07. 2025, 11:57:54 »
To je zajímavý nápad, ale vyžadovalo by to generátory XSD schémat, abych mohl psát domain model třídy v tom jazyce, kterém pracuju, takže Python nebo Java.

- Bez těch XSD nebudu mít přístup k Intelli Sense v IDE

Další problém je, že si nemůžu bez toho XSLT pokud vím zavolat třeba nějakou util metodu z Backendu, takže bych musel všechno pedantsky připravit předem v Controlleru.
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.

Re:Framework vs. čistý kód
« Odpověď #97 kdy: 29. 07. 2025, 12:05:07 »
Takhle má vypadat řádný šablonovací jazyk, a přesně takhle fungovaly JSP a 30 let podobně funguvaly PHP, to co vzniklo po JSP je oproti tomu slabota:
Píšete o šablonovacím jazyku a pošlete screencast IDE. Nejdřív si ujasněte význam temrínů, co je „šablonovací jazyk“, co „IDE“, jaký je rozdíl mezi „nefunguje“ a „nedaří se mi provést konkrétní typ refaktoringu“, a pak vás ostatní nebudou opravovat, protože píšete nesmysly.

Mimochodem, to, co ukazujete na screencastu, je samozřejmě nově vytvořený jazyk, můžete se na to dívat i jako na custom tagy.

Re:Framework vs. čistý kód
« Odpověď #98 kdy: 29. 07. 2025, 12:07:18 »
vyžadovalo by to generátory XSD schémat
Které samozřejmě existují.

Další problém je, že si nemůžu bez toho XSLT pokud vím zavolat třeba nějakou util metodu z Backendu
Ale můžete. Podporuje to jak Saxon (nejlepší XSLT procesor pro Javu), dokonce několika způsoby, tak i Xalan.

Kit

  • *****
  • 838
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #99 kdy: 29. 07. 2025, 12:15:17 »
To je zajímavý nápad, ale vyžadovalo by to generátory XSD schémat, abych mohl psát domain model třídy v tom jazyce, kterém pracuju, takže Python nebo Java.

- Bez těch XSD nebudu mít přístup k Intelli Sense v IDE

Další problém je, že si nemůžu bez toho XSLT pokud vím zavolat třeba nějakou util metodu z Backendu, takže bych musel všechno pedantsky připravit předem v Controlleru.

XSD pro XSLT si můžeš stáhnout, v tom nevidím problém, ale nepoužívám ho.

Dále je zbytečné vytvářet XML jako mezičlánek. DOM plně vyhovuje.

Z XSLT je možné volat funkci z PHP. Jen je nutné ji registrovat v XSLT procesoru. V Pythonu a Javě to určitě bude také. Ovšem tím je omezena přenositelnost mezi těmito jazyky - vidí to jen ten konkrétní jazyk v PI. Osvědčila se mi ta pedantská příprava dat ve View - Controller používám jen pro modifikaci dat, View pro jejich zobrazení. Šablona je pak řízena tokem těchto dat, mohu tedy použít jedinou šablonu pro všechny stránky aplikace.

Re:Framework vs. čistý kód
« Odpověď #100 kdy: 29. 07. 2025, 12:23:04 »
To je zbytečné bych tu něco psal, nikdo jiný než Kite nebo Jirsák se tu už do diskuze nezapojí.

ještě jednou - řeším tady podporu pro refaktoring pro šablonovací jazyky v IDE, která je špatná, vyjma šablonovacích jazyků psaných ve stylu "šablona se transformuje do kódu" jako JSP, PHP, ASP, JTE.

XSLT nevyhovuje, protože:

1. Musel bych si napsat generování XSD schémat, abych měl při psaní XSLT funkční Intelli Sense pro přístup k modelovým třídám
2. Generování XSD mi zpomalí start aplikace a bude s tím opruz
3. Ikdyž bych to udělal, pořád mi nebude fungovat refaktoring - tzn. když změním atribut v modelové třídě, tak IDE změnu nepropíše automaticky i do XSLT souborů.
4. Funkce sice z XSLT volat můžu, ale musel bych vyrábět další XSD, kde je budu muset ručne definovat, katastrofa
5. A opět mi ani u funkcí nebude automaticky fungovat refaktoring názvů těch funkcí.

Katastrofa. XSLT v ničem z toho, co tu řeším, nepomůže.
« Poslední změna: 29. 07. 2025, 12:27:26 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.

Kit

  • *****
  • 838
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #101 kdy: 29. 07. 2025, 12:43:27 »
1. Musel bych si napsat generování XSD schémat, abych měl při psaní XSLT funkční Intelli Sense pro přístup k modelovým třídám

Jsem líný psát XSD schémata a protože je nepotřebuji, tak je nedělám. XSLT mi funguje perfektně i bez nich.

XSLT nevnucuji, jen jsem ho navrhl jako alternativu. Je to jedna šablona pro všechny jazyky, které používáš.

Re:Framework vs. čistý kód
« Odpověď #102 kdy: 29. 07. 2025, 13:03:39 »
ještě jednou - řeším tady podporu pro refaktoring pro šablonovací jazyky v IDE, která je špatná, vyjma šablonovacích jazyků psaných ve stylu "šablona se transformuje do kódu" jako JSP, PHP, ASP, JTE.
Všechny šablony se transformují do kódu. Vy pořád vymýšlíte nějaké vlastní termíny, kterým nerozumíte ani vy sám, a pak se divíte, že vám nikdo nerozumí. A na základě těchto výmyslů pak děláte dalekosáhlé závěry, které nemají nic společného s realitou.

Re:Framework vs. čistý kód
« Odpověď #103 kdy: 29. 07. 2025, 13:15:42 »
Jirsák nekecej. JSP se tranformovalo do Servletu, dokonce v Eclipse šlo na JSP soubor kliknout a nechat si zobrazit ten vygenerovaný Java Servlet.

Thymeleaf a podobné to dělá kdoví jak, ale určitě jinak, protože IDE jim pořádně nerozumí.

Takhle Jirsoš funguje "Šablona je kód ®":


Mám PHP. Tohle je PHP kód:

Citace

<?php
    $furtTrableSJirsakem = true;
?>

A pak mám výraz:

Kód: [Vybrat]
<?= Util::localize("Filtr", "Filter") ?>

Který se přeloží vždycky takto:

Kód: [Vybrat]
<?php 
    
echo Util::localize("Filtr""Filter");
?>


Done. Hotovo. Kapiš to? To je celé.

A teď se poď znovu hádat o tom, jak v IDE není řádná podpora pro 100% fungující refactoring v Thymeleaf nebo v čemkoliv podobném, co vymýšlí jakési svoje konstrukce.
« Poslední změna: 29. 07. 2025, 13:23:18 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.

Kit

  • *****
  • 838
    • Zobrazit profil
    • E-mail
Re:Framework vs. čistý kód
« Odpověď #104 kdy: 29. 07. 2025, 13:21:05 »
Všechny šablony se transformují do kódu.

Otázkou je, co je myšleno tím kódem. Latte je transformováno do PHP a poté kompilováno a provedeno. XSLT je transformováno do stromu DOM, který poté slouží jako procesor pro vstupní data. Tím dosahuje vyššího výkonu než běžné šablony.