Styly programování

Re:Styly programování
« Odpověď #105 kdy: 05. 09. 2026, 23:39:10 »
Optimalizovat se občas něco musí. Něco.

Přesně, tight loops a věci, které z profileru vylezou jako priority. Amdahlův zákon je zákon.
Bacha, některé věci z profileru nevylezou. Nebo nejsou na první pohled patrné. Největší přínos dají vhodné datové struktury (a nejsou to ty, co by začátečník čekal).
Jak výkon železa roste, pozoruju několik věcí :
- Je stále těžší ho naplno vytížit (třeba relativní cena cache-missu nebo mispredikce větvení stále roste)
- Asymptotická složitost stále víc mate (třeba O(N) hledání v obyčejném poli je rychlé jako prase)


Re:Styly programování
« Odpověď #106 kdy: 06. 09. 2026, 00:17:44 »
Tohle je záhlaví datového souboru, které má jen minimální režii. JSON tohle nemá, syntaxe se tedy domlouvá mimo datový soubor. Výměna dat mezi různými subjekty je pak žůžo labůžo. Jedna firma mi místo obvyklého XSD poslala dokumentaci ve Wordu. To má být pokrok? Kde je možnost validace před odesláním?
Pro json máte schéma k dispozici taky. Ano, není zabudované přímo v tom souboru. Jenže když používáte xml tak schéma, které vaše aplikace bude používat, taky domlouváte bokem. Sice můžete validovat vůči schématu, které je v tom souboru, ale stejně tak musíte validovat vůči schématu podle kterého je psaná vaše appka. A při odesílání taky nevalidujete vůči schématu v tom odesílaném souboru ale vůči tomu, co očekává druhá strana.

Kit

  • *****
  • 1 093
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #107 kdy: 06. 09. 2026, 00:59:25 »
Tohle je záhlaví datového souboru, které má jen minimální režii. JSON tohle nemá, syntaxe se tedy domlouvá mimo datový soubor. Výměna dat mezi různými subjekty je pak žůžo labůžo. Jedna firma mi místo obvyklého XSD poslala dokumentaci ve Wordu. To má být pokrok? Kde je možnost validace před odesláním?
Pro json máte schéma k dispozici taky. Ano, není zabudované přímo v tom souboru. Jenže když používáte xml tak schéma, které vaše aplikace bude používat, taky domlouváte bokem. Sice můžete validovat vůči schématu, které je v tom souboru, ale stejně tak musíte validovat vůči schématu podle kterého je psaná vaše appka. A při odesílání taky nevalidujete vůči schématu v tom odesílaném souboru ale vůči tomu, co očekává druhá strana.

Jaká moje appka? Snad appka příjemce, která data validuje podle stejného schématu jako já při odeslání. Je to totožné schéma.

Re:Styly programování
« Odpověď #108 kdy: 06. 09. 2026, 01:26:16 »
Tohle je záhlaví datového souboru, které má jen minimální režii. JSON tohle nemá, syntaxe se tedy domlouvá mimo datový soubor. Výměna dat mezi různými subjekty je pak žůžo labůžo. Jedna firma mi místo obvyklého XSD poslala dokumentaci ve Wordu. To má být pokrok? Kde je možnost validace před odesláním?
Pro json máte schéma k dispozici taky. Ano, není zabudované přímo v tom souboru. Jenže když používáte xml tak schéma, které vaše aplikace bude používat, taky domlouváte bokem. Sice můžete validovat vůči schématu, které je v tom souboru, ale stejně tak musíte validovat vůči schématu podle kterého je psaná vaše appka. A při odesílání taky nevalidujete vůči schématu v tom odesílaném souboru ale vůči tomu, co očekává druhá strana.

Jaká moje appka? Snad appka příjemce, která data validuje podle stejného schématu jako já při odeslání. Je to totožné schéma.
Tak to napíšu jinak :
Při přijímání validujete podle schématu který očekáváte a dokážete zpracovat.
Při odesílání validujete podle schámatu který očekává druhá strana (nebo jste slíbil posílat).
Ani v jednom případě není hlavní validace podle schématu přibaleného v tom samotném dokumentu. To přibalené schéma dokáže akorát chytit případný nesoulad mezi schématy odesilatele a příjemce. A to neděláte validací xml, ale porovnáním stringu.

Kit

  • *****
  • 1 093
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #109 kdy: 06. 09. 2026, 10:44:54 »
Tohle je záhlaví datového souboru, které má jen minimální režii. JSON tohle nemá, syntaxe se tedy domlouvá mimo datový soubor. Výměna dat mezi různými subjekty je pak žůžo labůžo. Jedna firma mi místo obvyklého XSD poslala dokumentaci ve Wordu. To má být pokrok? Kde je možnost validace před odesláním?
Pro json máte schéma k dispozici taky. Ano, není zabudované přímo v tom souboru. Jenže když používáte xml tak schéma, které vaše aplikace bude používat, taky domlouváte bokem. Sice můžete validovat vůči schématu, které je v tom souboru, ale stejně tak musíte validovat vůči schématu podle kterého je psaná vaše appka. A při odesílání taky nevalidujete vůči schématu v tom odesílaném souboru ale vůči tomu, co očekává druhá strana.

Jaká moje appka? Snad appka příjemce, která data validuje podle stejného schématu jako já při odeslání. Je to totožné schéma.
Tak to napíšu jinak :
Při přijímání validujete podle schématu který očekáváte a dokážete zpracovat.
Při odesílání validujete podle schámatu který očekává druhá strana (nebo jste slíbil posílat).
Ani v jednom případě není hlavní validace podle schématu přibaleného v tom samotném dokumentu. To přibalené schéma dokáže akorát chytit případný nesoulad mezi schématy odesilatele a příjemce. A to neděláte validací xml, ale porovnáním stringu.

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.


Re:Styly programování
« Odpověď #110 kdy: 06. 09. 2026, 10:57:06 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Kit

  • *****
  • 1 093
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #111 kdy: 06. 09. 2026, 14:03:40 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Ink

  • *****
  • 735
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #112 kdy: 06. 09. 2026, 17:18:31 »
Optimalizovat se občas něco musí. Něco.

Přesně, tight loops a věci, které z profileru vylezou jako priority. Amdahlův zákon je zákon.
Bacha, některé věci z profileru nevylezou. Nebo nejsou na první pohled patrné. Největší přínos dají vhodné datové struktury (a nejsou to ty, co by začátečník čekal).
Jak výkon železa roste, pozoruju několik věcí :
- Je stále těžší ho naplno vytížit (třeba relativní cena cache-missu nebo mispredikce větvení stále roste)
- Asymptotická složitost stále víc mate (třeba O(N) hledání v obyčejném poli je rychlé jako prase)

OK, tohle je samozřejmě validní reakce. Tak jako tak to chce měřit a přemýšlet a neoptimalizovat předčasně každou instrukci i za cenu nepřehledného kódu atd.

Re:Styly programování
« Odpověď #113 kdy: 06. 09. 2026, 19:20:37 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Přesně. Takže to, co je v linku toho XML, nepoužiješ, ne?

BoneFlute

  • *****
  • 2 150
    • Zobrazit profil
Re:Styly programování
« Odpověď #114 kdy: 06. 09. 2026, 19:25:29 »
OK, tohle je samozřejmě validní reakce. Tak jako tak to chce měřit a přemýšlet a neoptimalizovat předčasně každou instrukci i za cenu nepřehledného kódu atd.

Kdysi dávno, když se začal prosazovat C a Pascal, tak programátoři ukazovali, že jak neoptimální instrukce to generuje, a že oni to v ASM napíšou líp a optimálněji. Dokonce bych si možná vzpoměl, jak se v TurboPascalu jmenovali ty specielní $ značky, které vypínali kontrolu meze polí (kecám, nepamatuji si z toho už nic). Ti programátoři měli pravdu, napsali to líp. V mnoha případech klidně o 10%, v některých případech dokonce o 90%, nebo 900% (to už byly výjimky).

No.

Problém je, že to v těch 90% nestojí za námahu. 99% svého času pálím na tom, že přehrabuju hnůj.

Korunu tomu nasadil jeden nodobrý klient, který si se mnou vždycky domluvil schůzku a hodinu jsme probírali optimalizaci WebAPI (které opravdu bylo drahé), načež na to nechtěl dát budget, protože jiné (stejně debilní) priority.

Kit

  • *****
  • 1 093
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #115 kdy: 06. 09. 2026, 19:50:00 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Přesně. Takže to, co je v linku toho XML, nepoužiješ, ne?

Pokud jsem vydavatelem toho XSD, tak ne. Také proto, že spousta poskytovatelů dat tam ten atribut nedá nebo ho napíše blbě.

Re:Styly programování
« Odpověď #116 kdy: 06. 09. 2026, 20:27:47 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Přesně. Takže to, co je v linku toho XML, nepoužiješ, ne?

Pokud jsem vydavatelem toho XSD, tak ne. Také proto, že spousta poskytovatelů dat tam ten atribut nedá nebo ho napíše blbě.

Dobře. A pokud nejsi vydavatelem toho XSD, tak se provede co?

Kit

  • *****
  • 1 093
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #117 kdy: 06. 09. 2026, 21:17:36 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Přesně. Takže to, co je v linku toho XML, nepoužiješ, ne?

Pokud jsem vydavatelem toho XSD, tak ne. Také proto, že spousta poskytovatelů dat tam ten atribut nedá nebo ho napíše blbě.

Dobře. A pokud nejsi vydavatelem toho XSD, tak se provede co?

Přiznám se, že v takovém případě dělám jen formální validaci. Spokojen?

Re:Styly programování
« Odpověď #118 kdy: 07. 09. 2026, 10:39:27 »

Však _odkaz_ na to schéma je součástí odesílaného XML. Není tedy důvod, aby mezi nimi byl nesoulad.

1. přijde ti do tvé aplikace nějaké XML
2. ty sice absolutně (zatím) netušíš, co v něm je, ale provedeš validaci oproti schématu v tom samém XML
3. můžeš teď prohlásit "jasně, všechno je ok, však se to zvalidovalo"? jako fakt?

Samozřejmě dělám validaci proti svému originálu.

Přesně. Takže to, co je v linku toho XML, nepoužiješ, ne?

Pokud jsem vydavatelem toho XSD, tak ne. Také proto, že spousta poskytovatelů dat tam ten atribut nedá nebo ho napíše blbě.

Dobře. A pokud nejsi vydavatelem toho XSD, tak se provede co?

Přiznám se, že v takovém případě dělám jen formální validaci. Spokojen?

Co já vím, jestli spokojen. V mé oblasti je to samozřejme no-go (prostě nelze důvěřovat ničemu, co přijde z druhé strany), ale třeba jsou zákazníci s tímto problémem seznámeni a souhlasí s tím.

qelurg

  • ****
  • 441
    • Zobrazit profil
    • E-mail
Re:Styly programování
« Odpověď #119 kdy: 07. 09. 2026, 11:17:39 »
Jediná oblast, kde se musíte trápit obskurními metodami zrychlování softwaru je když prodáváte těm, co nemají peníze (např. prodej počítačových her dětem, které nemají na normální hw) - což se ale shodneme, že není moc dobrý business plán.

Je vice oblastí, kdy se vyplatí zabývat efektivitou kódu. Za prvé u software pro masy, za druhé u software pro micro chipy a za třetí u software ktere jede z aku (mobil, ale i JE) nebo zařízení napájených ze solárů (napájení je slabé) nebo u software, kde spotreba energie je opravdu masivní, dnes treba AI.