8000 Translate content into Czech · HowProgrammingWorks/Book@2f2da65 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2f2da65

Browse files
Stanislav Turskytshemsedinov
authored andcommitted
Translate content into Czech
PR-URL: #53
1 parent e097ead commit 2f2da65

File tree

6 files changed

+34
-0
lines changed

6 files changed

+34
-0
lines changed

content/Abstract.cz.md

Lines changed: 3 additions & 0 deletions
Diff line change
Original file line numberDiff line number
@@ -0,0 +1,3 @@
1+
# Anotace
2+
3+
Všechny programy jsou data. Některá data jsou interpretována jako hodnoty, jiná jako typy těchto hodnot a další jako instrukce pro zpracování prvních dvou. Jakákoli paradigmata a programovací techniky jsou jen způsobem, jak vytvořit metadata, která dávají pravidla a posloupnost toku zpracování jiných dat. Multiparadigmatické programování bere to nejlepší ze všech paradigmat a sestavuje z něj syntaktické konstrukce, které umožňují popsat předmětnou oblast jasněji a pohodlněji. Vysokoúrovňové DSL (doménové jazyky) promítáme do nízkoúrovňových strojových instrukcí prostřednictvím mnoha vrstev abstrakcí. Zde je důležité reprezentovat úkol co nejúčinnějším způsobem pro zpracování na úrovni stroje, nikoli fanaticky následovat jedno paradigma. Nejúčinnější je ten, který s menším počtem vrstev a závislostí, nejlépe čitelný, udržovatelný a upravitelný pro člověka, který zajišťuje spolehlivost kódu a testovatelnost, rozšiřitelnost, opětovnou použitelnost, jasnost a flexibilitu konstrukcí metadat na každé úrovni. Věříme, že takový přístup nám umožní získat jak rychlé první výsledky ve vývoji, tak i neztrácet výkon při velkém toku změn ve fázích, kdy projekt již dosáhl vysoké zralosti a složitosti. Pokusíme se zvážit techniky a principy programování z různých paradigmat prizmatem metaprogramování a změnit tím, ne-li samotné softwarové inženýrství, ale alespoň jeho chápání novými generacemi inženýrů.

content/Book.cz.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
title: 'Metaprogramování',
3+
subtitle: 'Multiparadigmatický přístup v\nsoftwarovém inženýrství',
4+
copyright: '© Timur Shemsedinov, Společenství Metarhia',
5+
location: 'Kyjev, 2015 — 2022',
6+
};

content/Book.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module.exports = {
33
languages: {
44
en: require('./Book.en.js'),
55
ru: require( 8000 9;./Book.ru.js'),
6+
cz: require('./Book.cz.js'),
67
},
78
title: {
89
bold: true,

content/Index.cz.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Obsah
2+
3+
1. Úvod 1.1. Přístup k výuce programování 1.2. Příklady v jazycích JavaScript, Python a C 1.3. Modelování: abstrakce a opětovné použití 1.4. Algoritmus, program, syntaxe, jazyk 1.5. Dekompozice a separace odpovědnosti 1.6. Přehled specializace softwarového inženýra 1.7. Přehled programovacích paradigmat
4+
2. Základní pojmy 2.1. Hodnota, identifikátor, proměnná a konstanta, literál, přiřazení 2.2. Datové typy, skalární, referenční a strukturované typy 2.3. Kontexty a lexikální rozsah 2.4. Operátor a výraz, blok kódu, funkce, smyčka, podmínka 2.5. Procedurální paradigma, volání, zásobník a halda 2.6. Funkce vyššího řádu, čistá funkce, vedlejší účinky 2.7. Uzávěry, funkce zpětného volání, zabalení a události 2.8. Výjimky a řešení chyb 2.9. Monomorfní kód v dynamických jazycích
5+
3. Stav aplikace, datové struktury a kolekce 3.1. Stavové a bezstavové přístupy (stateful and stateless) 3.2. Struktury a záznamy 3.3. Pole, seznam, sada, n-tice 3.4. Slovník, hashovací tabulka a asociativní pole 3.5. Zásobník, fronta, deque 3.6. Stromy a grafy 3.7. Projekce a zobrazení datových sad 3.8. Odhad výpočetní složitosti
6+
4. Rozšířené koncepty 4.1. Co je technologický stack 4.2. Vývojové prostředí a ladění 4.3. Iterace: rekurze, iterátory a generátory 4.4. Stavební bloky aplikací: soubory, moduly, komponenty 4.5. Objekt, prototyp a třída 4.6. Částečná aplikace a curryfikace, skládání funkcí 4.7. Řetězení pro metody a funkce (chaining) 4.8. Mixiny (mixins) 4.9. Závislosti a knihovny
7+
5. Běžná programovací paradigmata 5.1. Imperativní a deklarativní přístup 5.2. Strukturované a nestrukturované programování 5.3. Procedurální programování 5.4. Funkcionální programování 5.5. Objektově orientované programování 5.6. Programování založené na prototypech
8+
6. Návrhové antivzory 6.1. Společné anti-vzory pro všechna paradigmata 6.2. Procedurální antivzory 6.3. Objektově orientované antivzory 6.4. Funkční antivzory
9+
7. Vývojový proces 7.1. Životní cyklus softwaru, analýza předmětné oblasti 7.2. Programovací konvence a normy 7.3. Testování: jednotkové testy, systémové a integrační testování 7.4. Kontrola a refaktoring kódu 7.5. Odhad zdrojů, plán rozvoje a harmonogram 7.6. Analýza rizik, slabá místa, nefunkční požadavky 7.7. Koordinace a úprava procesů 7.8. Průběžná integrace a nasazení 7.9. Optimalizace mnoha aspektů
10+
8. Pokročilé koncepty 8.1. Události, časovače a EventEmitter 8.2. Introspekce a reflexe 8.3. Serializace a deserializace 8.4. Regulární výrazy 8.5. Memoizace 8.6. Návrhové vzory: Factory, Poll 8.7. Typovaná pole 8.8. Projekce 8.9. I/O (vstup-výstup) a soubory
11+
9. Architektura 9.1. Dekompozice, pojmenování a spojování 9.2. Interakce mezi softwarovými komponentami 9.3. Propojení přes jmenné prostory 9.4. Interakce s voláními a zpětnými voláními 9.5. Interakce s událostmi a zprávami 9.6. Rozhraní, protokoly a smlouvy 6.7. Cibulová (onion) nebo vícevrstvá architektura
12+
10. Základy paralelních výpočtů 10.1. Asynchronní programování 10.2. Paralelní programování, sdílená paměť a synchronizační primitiva 10.3. Asynchronní primitiva: Thenable, Promise, Future, Deferred 10.4. Koprogramy, gorutiny, async/await 10.5. Adaptéry mezi asynchronními kontrakty 10.6. Asynchronní a paralelní kompatibilita 10.7. Přístup předávání zpráv a model aktorů 10.8. Asynchronní fronty i asynchronní kolekce 10.8. Bezzámkové datové struktury (lock-free)
13+
11. Pokročilá programovací paradigmata 11.1. Generické programování 11.2. Událostní a reaktivní programování 11.3. Programování automatů: konečné automaty (stavové stroje) 11.4. Jazykově orientované programování a DSL 11.5. Programování toku dat 11.6. Metaprogramování 11.7. Dynamická interpretace metamodelu
14+
12. Databáze a perzistentní úložiště 12.1. Historie databáze a navigační databáze 12.2. Klíč-hodnota a další abstraktní datové struktury 12.3. Relační datový model a ER-diagramy 12.4. Bezschémové, objektově orientované a dokumentově orientované databáze 12.5. Hierarchické a grafové databáze 12.6. Sloupcové databáze a databáze v paměti 12.7. Distribuované databáze
15+
13. Distribuované systémy 13.1. Meziprocesová komunikace 13.2. Bezkonfliktní replikované datové typy (CRDT) 13.3. Konzistence, dostupnost a distribuce 13.4. Strategie řešení konfliktů 13.5. Konsensuální protokoly 13.6. CQRS, EventSourcing

content/Introduction.cz.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Úvod
2+
3+
Neustálé přehodnocování své činnosti, i té nejjednodušší, by mělo provázet inženýra celý život. Zvyk zapisovat si své myšlenky slovy a zdokonalovat své formulace v tom hodně pomáhá. Tento text se objevil jako moje fragmentární poznámky, psané v různých letech, které jsem shromažďoval a mnohokrát kriticky korigoval. Já jsem často nesouhlasil sám se sebou, když jsem si znovu četl pasáž poté, co chvíli ležela. Proto jsem na textu pracoval tak dlouho, dokud jsem sám nesouhlasil s tím, co bylo napsáno po dlouhé době držení materiálu. Bylo mým úkolem psát co nejstručněji a velké fragmenty jsem opakovaně přepisoval, když jsem zjistil, že by se daly vyjádřit stručněji. Struktura textu a obsah se začaly objevovat po prvním roce výuky, ale v desátém ročníku jsem se rozhodl šířit materiály nejen ve formě otevřených videopřednášek, jak jsem to dělal už asi pět let, ale i ve formě textu. To umožnilo všem ze společenství Metarhia podílet se na tvorbě knihy, díky čtenářům rychle objevovat překlepy a nepřesnosti, a také pro mnohé je formát knihy prostě pohodlnější. Aktuální verzi naleznete na https://github.com/HowProgrammingWorks/Book, bude neustále aktualizována. Žádosti o opravy a doplnění směřujte v angličtině na [issues](https://github.com/HowProgrammingWorks/Book/issues), nové nápady zasílejte v libovolném jazyce na [discussions](https://github.com/HowProgrammingWorks/Book/discussions), vaše vlastní doplňky a opravy by měly být provedeny formou pull-request do repositáře knihy.

content/Links.cz.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## Odkazy
2+
3+
- Autor: https://github.com/tshemsedinov
4+
- Telegram: https://t.me/HowProgrammingWorks
5+
- Cvičení: https://github.com/HowProgrammingWorks/Index/blob/master/Exercises.ru.md
6+
- Glosář: https://github.com/HowProgrammingWorks/Dictionary/blob/master/Fundamentals.ru.md

0 commit comments

Comments
 (0)
0