{"id":2308,"date":"2026-05-29T21:47:53","date_gmt":"2026-05-29T21:47:53","guid":{"rendered":"https:\/\/vkrastev1blog.com\/?p=2308"},"modified":"2026-05-29T21:48:41","modified_gmt":"2026-05-29T21:48:41","slug":"questions-and-informations-prepairing-for-java-developer-job-interview","status":"publish","type":"post","link":"https:\/\/vkrastev1blog.com\/2026\/05\/29\/questions-and-informations-prepairing-for-java-developer-job-interview\/","title":{"rendered":"Ot\u00e1zky a informace o p\u0159\u00edprav\u011b na pracovn\u00ed pohovor Java Developer"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Jak\u00e9 jsou principy SOLID?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je princip jednotn\u00e9 odpov\u011bdnosti (SRP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u0159\u00edda by m\u011bla m\u00edt pouze jednu odpov\u011bdnost.<br>Ke zm\u011bn\u011b by m\u011bl m\u00edt jedin\u00fd d\u016fvod.<br>Mezi v\u00fdhody pat\u0159\u00ed snadn\u011bj\u0161\u00ed testov\u00e1n\u00ed, ni\u017e\u0161\u00ed propojen\u00ed a lep\u0161\u00ed organizace.<br>P\u0159\u00edklad:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ve\u0159ejn\u00e1 t\u0159\u00edda Kniha {<br>private String name;<br>soukrom\u00fd autor \u0159et\u011bzce;<br>soukrom\u00fd text \u0159et\u011bzce;<br>\/\/ konstruktory, getry a nastavova\u010de<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je otev\u0159en\u00fd-uzav\u0159en\u00fd princip (OCP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Softwarov\u00e9 entity (t\u0159\u00eddy, moduly, funkce) by m\u011bly b\u00fdt otev\u0159en\u00e9 pro roz\u0161\u00ed\u0159en\u00ed, ale uzav\u0159en\u00e9 pro \u00fapravy.<br>Dos\u00e1hn\u011bte toho pomoc\u00ed rozhran\u00ed, abstraktn\u00edch t\u0159\u00edd a d\u011bdi\u010dnosti.<br>P\u0159\u00edklad:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">tvar rozhran\u00ed {<br>dvojit\u00e1 plocha();<br>}<br>class Circle implementuje Shape { \/* implementaci <em>\/ } class Rectangle implements Shape { \/<\/em> implementace *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je Liskov\u016fv substitu\u010dn\u00ed princip (LSP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podtypy mus\u00ed b\u00fdt nahraditeln\u00e9 sv\u00fdmi z\u00e1kladn\u00edmi typy, ani\u017e by se zm\u011bnila spr\u00e1vnost programu.<br>N\u00e1sleduje vztah \u201eje-a\u201c.<br>P\u0159\u00edklad:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">class Bird { \/* b\u011b\u017en\u00e9 chov\u00e1n\u00ed pt\u00e1k\u016f <em>\/ } class Vrabec roz\u0161i\u0159uje Pt\u00e1k { \/<\/em> specifick\u00e9 chov\u00e1n\u00ed vrabc\u016f *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je princip segregace rozhran\u00ed (ISP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klienti by nem\u011bli b\u00fdt nuceni z\u00e1viset na rozhran\u00edch, kter\u00e1 nepou\u017e\u00edvaj\u00ed.<br>Rozd\u011blte velk\u00e1 rozhran\u00ed na men\u0161\u00ed, konkr\u00e9tn\u011bj\u0161\u00ed.<br>P\u0159\u00edklad:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">interface Worker {<br>void work();<br>}<br>interface Eater {<br>void eat();<br>}<br>class Robot implementuje Worker { \/* implementace *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je princip inverze z\u00e1vislosti (DIP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moduly vysok\u00e9 \u00farovn\u011b by nem\u011bly z\u00e1viset na modulech n\u00edzk\u00e9 \u00farovn\u011b; oboj\u00ed by m\u011blo z\u00e1viset na abstrakc\u00edch.<br>Abstrakce by nem\u011bly z\u00e1viset na detailech; podrobnosti by m\u011bly z\u00e1viset na abstrakc\u00edch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Abstrakce<br>interface MessageSender {<br>void sendMessage(String message);<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Modul vysok\u00e9 \u00farovn\u011b<br>class NotificationService {<br>soukrom\u00fd MessageSender messageSender;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public NotificationService(MessageSender messageSender) {<\/div><div class=\"cm-line\">    this.messageSender = messageSender;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void send(String message) {<\/div><div class=\"cm-line\">    messageSender.sendMessage(message);<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ N\u00edzko\u00farov\u0148ov\u00fd modul<br>class EmailSender implementuje MessageSender {<br>@P\u0159epsat<br>public void sendMessage(String message) {<br>System.out.println(&#8220;Odes\u00edl\u00e1n\u00ed e-mailu: &#8221; + zpr\u00e1va);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Dal\u0161\u00ed n\u00edzko\u00farov\u0148ov\u00fd modul<br>class SmsSender implementuje MessageSender {<br>@P\u0159epsat<br>public void sendMessage(String message) {<br>System.out.println(&#8220;Odes\u00edl\u00e1n\u00ed SMS: &#8221; + zpr\u00e1va);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Hlavn\u00ed t\u0159\u00edda<br>public class Hlavn\u00ed {<br>public static void main(String[] args) {<br>\/\/ Pou\u017eijte EmailSender<br>MessageSender emailSender = new EmailSender();<br>NotificationService notificationService1 = new NotificationService(emailSender);<br>notificationService1.send(&#8220;Dobr\u00fd den prost\u0159ednictv\u00edm e-mailu!&#8221;);<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/ Use SmsSender\n    MessageSender smsSender = new SmsSender();\n    NotificationService notificationService2 = new NotificationService(smsSender);\n    notificationService2.send(&#034;Hello via SMS!&#034;);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rozhran\u00ed MessageSender slou\u017e\u00ed jako abstrakce.<br>Vysoko\u00farov\u0148ov\u00fd modul NotificationService z\u00e1vis\u00ed na t\u00e9to abstrakci nam\u00edsto konkr\u00e9tn\u00edch implementac\u00ed.<br>N\u00edzko\u00farov\u0148ov\u00e9 moduly jako EmailSender a SmsSender tak\u00e9 z\u00e1vis\u00ed na abstrakci implementac\u00ed rozhran\u00ed MessageSender.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je normalizace SQL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je normalizace?<br>Normalizace zahrnuje strukturov\u00e1n\u00ed dat v rela\u010dn\u00ed datab\u00e1zi, aby se odstranily anom\u00e1lie, jako je redundance.<br>Rozkl\u00e1d\u00e1 velk\u00e9, slo\u017eit\u00e9 tabulky na men\u0161\u00ed, p\u0159i\u010dem\u017e zachov\u00e1v\u00e1 datov\u00e9 vztahy.<br>Pro\u010d je normalizace d\u016fle\u017eit\u00e1?<br>Sni\u017euje redundanci: Rozd\u011blen\u00edm dat do men\u0161\u00edch tabulek se vyhneme ukl\u00e1d\u00e1n\u00ed stejn\u00fdch informac\u00ed v\u00edcekr\u00e1t.<br>Zlep\u0161uje v\u00fdkon dotaz\u016f: Men\u0161\u00ed normalizovan\u00e9 tabulky vedou k rychlej\u0161\u00edmu prov\u00e1d\u011bn\u00ed dotaz\u016f.<br>Minimalizuje anom\u00e1lie aktualizac\u00ed: Aktualizace lze prov\u00e1d\u011bt bez ovlivn\u011bn\u00ed ostatn\u00edch z\u00e1znam\u016f.<br>Zlep\u0161uje integritu dat: Zaji\u0161\u0165uje konzistentn\u00ed a p\u0159esn\u00e1 data.<br>Sc\u00e9n\u00e1\u0159e pro normalizaci:<br>Integrita dat: Zabra\u0148te nekonzistentnostem p\u0159i aktualizaci dat (nap\u0159. zm\u011bny v\u011bku z\u00e1kazn\u00edk\u016f).<br>Efektivn\u00ed dotazov\u00e1n\u00ed: Zjednodu\u0161te slo\u017eit\u00e9 dotazy rozd\u011blen\u00edm dat.<br>Optimalizace \u00falo\u017ei\u0161t\u011b: Odstra\u0148te zbyte\u010dnou redundanci, abyste u\u0161et\u0159ili m\u00edsto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je monolit Microservices?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je monolit?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Monolitick\u00e1 aplikace je postavena jako jeden jednotn\u00fd celek. Pevn\u011b \u200b\u200bspojuje v\u0161echny komponenty (jako je u\u017eivatelsk\u00e9 u\u017eivatelsk\u00e9 rozhran\u00ed na stran\u011b klienta, datab\u00e1ze a aplikace na stran\u011b serveru) do jedn\u00e9 k\u00f3dov\u00e9 b\u00e1ze.<br>v\u00fdhody:<br>Snadn\u00e9 nasazen\u00ed: Vzhledem k tomu, \u017ee se jedn\u00e1 o jeden spustiteln\u00fd soubor nebo adres\u00e1\u0159, je nasazen\u00ed p\u0159\u00edmo\u010dar\u00e9.<br>Rychlost v\u00fdvoje: Na za\u010d\u00e1tku \u017eivota projektu umo\u017e\u0148uj\u00ed monolity rychl\u00fd v\u00fdvoj d\u00edky sv\u00e9 jednoduchosti.<br>V\u00fdkon: Centralizovan\u00fd k\u00f3d zvl\u00e1dne r\u016fzn\u00e9 funkce.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co jsou mikroslu\u017eby?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mikroslu\u017eby rozd\u011bluj\u00ed aplikaci na men\u0161\u00ed, nez\u00e1visle nasaditeln\u00e9 slu\u017eby. Ka\u017ed\u00e1 slu\u017eba se zam\u011b\u0159uje na ur\u010ditou obchodn\u00ed dom\u00e9nu.<br>v\u00fdhody:<br>\u0160k\u00e1lovatelnost: Mikroslu\u017eby umo\u017e\u0148uj\u00ed nez\u00e1visl\u00e9 \u0161k\u00e1lov\u00e1n\u00ed jednotliv\u00fdch komponent.<br>Flexibilita: V\u00fdvoj\u00e1\u0159i si mohou pro ka\u017edou slu\u017ebu vybrat r\u016fzn\u00e9 technologie.<br>Izolace: Selh\u00e1n\u00ed jedn\u00e9 slu\u017eby neovlivn\u00ed ostatn\u00ed.<br>v\u00fdzvy:<br>Slo\u017eitost: Spr\u00e1va v\u00edce slu\u017eeb vy\u017eaduje robustn\u00ed orchestraci.<br>S\u00ed\u0165ov\u00e1 re\u017eie: Komunikace mezi slu\u017ebami zav\u00e1d\u00ed latenci.<br>Slo\u017eitost nasazen\u00ed: Koordinace aktualizac\u00ed nap\u0159\u00ed\u010d slu\u017ebami m\u016f\u017ee b\u00fdt slo\u017eit\u00e1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je polymorfismus?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P\u0159eps\u00e1n\u00ed metody:<br>Kdy\u017e podt\u0159\u00edda poskytuje specifickou implementaci pro metodu, kter\u00e1 je ji\u017e definov\u00e1na v jej\u00ed nadt\u0159\u00edd\u011b.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P\u0159et\u00ed\u017een\u00ed metody:<br>Kdy\u017e m\u00e1 t\u0159\u00edda v\u00edce metod se stejn\u00fdm n\u00e1zvem, ale r\u016fzn\u00fdmi parametry (r\u016fzn\u00fd po\u010det nebo typy argument\u016f).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co pou\u017e\u00edvaj\u00ed soukrom\u00ed konstrukt\u00e9\u0159i?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Soukrom\u00e9 konstruktory se pou\u017e\u00edvaj\u00ed v pomocn\u00fdch t\u0159\u00edd\u00e1ch nebo konstantn\u00edch t\u0159\u00edd\u00e1ch.<br>Tyto t\u0159\u00eddy obsahuj\u00ed pouze statick\u00e9 metody nebo \u010dleny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Vyh\u00fdb\u00e1n\u00ed se podt\u0159\u00edd\u011bn\u00ed<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Delegace konstrukt\u00e9ra:<br>Soukrom\u00e9 konstruktory umo\u017e\u0148uj\u00ed delegov\u00e1n\u00ed konstruktor\u016f, kde konkr\u00e9tn\u00ed konstruktory volaj\u00ed spole\u010dn\u00fd soukrom\u00fd konstruktor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Singleton vzor<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O JVM<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Sestaven\u00ed:<br>Kdy\u017e kompilujete soubor .java, kompil\u00e1tor Java vygeneruje soubory .class obsahuj\u00edc\u00ed bajtov\u00fd k\u00f3d (p\u0159echodn\u00e1 reprezentace).<br>Bytecode je nez\u00e1visl\u00fd na platform\u011b a m\u016f\u017ee b\u011b\u017eet na jak\u00e9mkoli syst\u00e9mu s kompatibiln\u00edm JVM.<br>&#8211;Podsyst\u00e9m Class Loader:<br>Zodpov\u011bdn\u00fd za na\u010d\u00edt\u00e1n\u00ed t\u0159\u00edd do pam\u011bti.<br>\u010cte soubory .class, generuje bin\u00e1rn\u00ed data a ukl\u00e1d\u00e1 je do oblasti metod.<br>Vytvo\u0159\u00ed objekt Class p\u0159edstavuj\u00edc\u00ed na\u010dtenou t\u0159\u00eddu v pam\u011bti haldy.<br>P\u0159\u00edklad: Student s1 = new Student(); T\u0159\u00edda c1 = s1.getClass();<br>&#8211;Propojen\u00ed:<br>Skl\u00e1d\u00e1 se ze t\u0159\u00ed krok\u016f:<br>Ov\u011b\u0159en\u00ed: Zaji\u0161\u0165uje spr\u00e1vnost souboru .class.<br>P\u0159\u00edprava: Alokuje pam\u011b\u0165 pro prom\u011bnn\u00e9 t\u0159\u00eddy a inicializuje je.<br>Rozli\u0161en\u00ed (voliteln\u00e9): Vy\u0159e\u0161\u00ed symbolick\u00e9 odkazy na jin\u00e9 t\u0159\u00eddy nebo metody.<br>&#8211;Inicializace:<br>Spou\u0161t\u00ed statick\u00e9 inicializ\u00e1tory (nap\u0159. statick\u00e9 bloky) a inicializuje statick\u00e9 prom\u011bnn\u00e9.<br>Prom\u011bnn\u00e9 instance se inicializuj\u00ed p\u0159i vytvo\u0159en\u00ed objektu.<br>&#8211;Prov\u00e1d\u011bc\u00ed engine:<br>P\u0159ev\u00e1d\u00ed bajtk\u00f3d na strojov\u00fd k\u00f3d.<br>Zahrnuje kompilaci Just-In-Time (JIT) pro optimalizaci v\u00fdkonu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Stru\u010dn\u011b \u0159e\u010deno, JVM umo\u017e\u0148uje program\u016fm Java spou\u0161t\u011bt kdekoli pomoc\u00ed interpretace bajtov\u00e9ho k\u00f3du a spr\u00e1vy pam\u011bti<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je Privat abstraktn\u00ed metoda?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;P\u0159\u00edpady pou\u017eit\u00ed pro soukrom\u00e9 metody v abstraktn\u00edch t\u0159\u00edd\u00e1ch:<br>Zat\u00edmco abstraktn\u00ed metody nemohou b\u00fdt soukrom\u00e9, m\u016f\u017eete soukrom\u00e9 metody v r\u00e1mci abstraktn\u00ed t\u0159\u00eddy pou\u017e\u00edt pro r\u016fzn\u00e9 \u00fa\u010dely:<br>&#8211;Pomocn\u00e9 metody: Implementujte b\u011b\u017en\u00e9 funkce sd\u00edlen\u00e9 jin\u00fdmi metodami.<br>&#8211;Encapsulation: Skryt\u00ed podrobnost\u00ed implementace z podt\u0159\u00edd.<br>&#8211;T\u0159\u00eddy podobn\u00e9 struktur\u00e1m: Vytv\u00e1\u0159ejte mal\u00e9 t\u0159\u00eddy se soukrom\u00fdmi metodami, kter\u00e9 slou\u017e\u00ed jako datov\u00e9 kontejnery<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je to Garbage collector?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Hromadn\u00e1 pam\u011b\u0165:<br>Objekty Java jsou vytv\u00e1\u0159eny v hald\u011b, vyhrazen\u00e9 oblasti pam\u011bti.<br>N\u011bkter\u00e9 objekty se stanou nedosa\u017eiteln\u00fdmi (ji\u017e na n\u011b program neodkazuje).<br>&#8211;Garbage Collector (GC):<br>GC identifikuje a odstran\u00ed nepou\u017e\u00edvan\u00e9 objekty, aby uvolnil pam\u011b\u0165.<br>Spou\u0161t\u00ed se automaticky na pozad\u00ed.<br>Dva typy:<br>Minor GC: Odstra\u0148uje nedosa\u017eiteln\u00e9 p\u0159edm\u011bty u mlad\u00e9 generace.<br>Major GC (Full GC): Vyma\u017ee objekty star\u00e9 generace.<br>&#8211;V\u00fdhody:<br>V\u00fdvoj\u00e1\u0159i nemus\u00ed objekty explicitn\u011b odstra\u0148ovat.<br>GC zaji\u0161\u0165uje dostupnost pam\u011bti a zabra\u0148uje chyb\u00e1m OutOfMemoryErrors<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je OOP?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u010cty\u0159i principy OOP:<br>&#8211;Zapouzd\u0159en\u00ed: Sdru\u017eov\u00e1n\u00ed dat (atribut\u016f) a metod (funkc\u00ed) dohromady v r\u00e1mci t\u0159\u00eddy za \u00fa\u010delem skryt\u00ed podrobnost\u00ed implementace a poskytnut\u00ed \u010dist\u00e9ho rozhran\u00ed.<br>&#8212; D\u011bdi\u010dnost: Vytv\u00e1\u0159en\u00ed nov\u00fdch t\u0159\u00edd na z\u00e1klad\u011b st\u00e1vaj\u00edc\u00edch, zd\u011bd\u011bn\u00ed jejich atribut\u016f a chov\u00e1n\u00ed. Podporuje op\u011btovn\u00e9 pou\u017eit\u00ed k\u00f3du.<br>&#8211;Polymorfismus: Umo\u017e\u0148uje jednotn\u00e9 zach\u00e1zen\u00ed s objekty r\u016fzn\u00fdch t\u0159\u00edd prost\u0159ednictv\u00edm spole\u010dn\u00e9ho rozhran\u00ed. Umo\u017e\u0148uje flexibilitu a roz\u0161i\u0159itelnost.<br>&#8211;Abstrakce: Zam\u011b\u0159en\u00ed na z\u00e1kladn\u00ed funkce a skryt\u00ed zbyte\u010dn\u00fdch slo\u017eitost\u00ed. Abstrakce zjednodu\u0161uje design a \u010din\u00ed jej l\u00e9pe ovladateln\u00fdm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je ACID vlastnosti hraj\u00ed z\u00e1sadn\u00ed roli p\u0159i zaji\u0161\u0165ov\u00e1n\u00ed spolehlivosti a konzistence transakc\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Atomicita:<br>Transakce jsou bu\u010f provedeny \u00fapln\u011b, nebo v\u016fbec.<br>\u017d\u00e1dn\u00e9 \u010d\u00e1ste\u010dn\u00e9 proveden\u00ed: Pokud transakce sel\u017ee uprost\u0159ed, budou v\u0161echny zm\u011bny proveden\u00e9 v datab\u00e1zi vr\u00e1ceny zp\u011bt.<br>P\u0159\u00edklad: Zva\u017ete p\u0159evod 100 USD z \u00fa\u010dtu X na \u00fa\u010det Y. Pokud transakce sel\u017ee po ode\u010dten\u00ed z X, ale p\u0159ed p\u0159id\u00e1n\u00edm na Y, datab\u00e1ze z\u016fstane konzistentn\u00ed.<br>&#8211;Konzistence:<br>Datab\u00e1ze mus\u00ed udr\u017eovat omezen\u00ed integrity p\u0159ed a po transakci.<br>P\u0159\u00edklad: Pokud je celkov\u00e1 \u010d\u00e1stka p\u0159ed transakc\u00ed 700 USD (X: 500 USD, Y: 200 USD), m\u011bla by po transakci z\u016fstat stejn\u00e1 (X: 400 USD, Y: 300 USD).<br>&#8211;Izolace:<br>V\u00edce transakc\u00ed m\u016f\u017ee prob\u00edhat sou\u010dasn\u011b, ani\u017e by se navz\u00e1jem ovliv\u0148ovaly.<br>Zm\u011bny proveden\u00e9 jednou transakc\u00ed nejsou viditeln\u00e9 pro ostatn\u00ed, dokud nejsou potvrzeny.<br>Zaji\u0161\u0165uje ekvivalentn\u00ed v\u00fdsledky, jako kdyby byly transakce prov\u00e1d\u011bny s\u00e9riov\u011b.<br>P\u0159\u00edklad: Izolace transakc\u00ed zabra\u0148uje nekonzistenc\u00edm zp\u016fsoben\u00fdm prokl\u00e1dan\u00fdmi operacemi.<br>&#8211;Trvanlivost:<br>Jakmile je transakce potvrzena, jej\u00ed zm\u011bny jsou trval\u00e9.<br>P\u0159e\u017eije selh\u00e1n\u00ed nebo p\u00e1dy syst\u00e9mu.<br>Zaji\u0161\u0165uje st\u00e1lost dat.<br>P\u0159\u00edklad: I po restartu syst\u00e9mu z\u016fstanou potvrzen\u00e9 zm\u011bny nedot\u010deny.<br>Pamatujte, \u017ee vlastnosti ACID poskytuj\u00ed z\u00e1klad pro spolehliv\u00e9 a konzistentn\u00ed datab\u00e1zov\u00e9 operace! \ud83c\udf1f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je vzorec strategie?<br>Popis: Definuje rodinu algoritm\u016f, ka\u017ed\u00fd z nich zapouzd\u0159uje a \u010din\u00ed je vz\u00e1jemn\u011b zam\u011bniteln\u00fdmi. Umo\u017e\u0148uje algoritmu m\u011bnit se nez\u00e1visle na klientech, kte\u0159\u00ed je pou\u017e\u00edvaj\u00ed.<br>P\u0159\u00edklad:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Rozhran\u00ed pro chov\u00e1n\u00ed p\u0159i j\u00eddle<br>interface EatBehavior {<br>void eat();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Konkr\u00e9tn\u00ed implementace stravovac\u00edho chov\u00e1n\u00ed<br>class NormalDiet implementuje EatBehavior {<br>@P\u0159epsat<br>public void eat() {<br>\/\/ Norm\u00e1ln\u00ed j\u00eddlo<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">class LosingWeightDiet implementuje EatBehavior {<br>@P\u0159epsat<br>public void eat() {<br>\/\/ Zdrav\u00e9 j\u00eddlo<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ T\u0159\u00edda ko\u010dky s chov\u00e1n\u00edm p\u0159i j\u00eddle<br>abstraktn\u00ed t\u0159\u00edda Cat {<br>EatBehaviour eatBehavior;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public void eat() {<\/div><div class=\"cm-line\">    eatBehavior.eat();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void setEatBehavior(EatBehavior eatBehavior) {<\/div><div class=\"cm-line\"> this.eatBehavior = eatBehavior;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Pou\u017eit\u00ed<br>Ko\u010dka ko\u010dka = nov\u00e1 Ko\u010dka();<br>cat.setEatBehavior(new LosingWeightDiet());<br>cat.eat(); \/\/ Ko\u010dka j\u00ed se zdrav\u011bj\u0161\u00ed stravou<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kreativn\u00ed vzory:<br>Tyto vzory se zam\u011b\u0159uj\u00ed na konkretizaci t\u0159\u00eddy.<br>P\u0159\u00edklady zahrnut\u00e9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; tov\u00e1rn\u00ed metoda,<br>Prohl\u00e1\u0161en\u00ed o probl\u00e9mu: P\u0159edpokl\u00e1dejme, \u017ee chceme vytv\u00e1\u0159et r\u016fzn\u00e9 typy produkt\u016f (nap\u0159. auta, kola, j\u00edzdn\u00ed kola), ani\u017e bychom \u00fazce propojovali n\u00e1\u0161 k\u00f3d s konkr\u00e9tn\u00edmi implementacemi.<br>Kl\u00ed\u010dov\u00e9 komponenty:<br>Produkt: Abstraktn\u00ed t\u0159\u00edda nebo rozhran\u00ed definuj\u00edc\u00ed b\u011b\u017en\u00e9 operace pro objekty, kter\u00e9 tov\u00e1rna vytvo\u0159\u00ed.<br>Konkr\u00e9tn\u00ed produkty: Aktu\u00e1ln\u00ed t\u0159\u00eddy implementuj\u00edc\u00ed rozhran\u00ed produktu, p\u0159edstavuj\u00edc\u00ed konkr\u00e9tn\u00ed typy objekt\u016f.<br>Creator: Abstraktn\u00ed t\u0159\u00edda nebo rozhran\u00ed deklaruj\u00edc\u00ed tov\u00e1rn\u00ed metodu. Je zodpov\u011bdn\u00fd za vytv\u00e1\u0159en\u00ed objekt\u016f Product, ale deleguje skute\u010dn\u00e9 vytv\u00e1\u0159en\u00ed na podt\u0159\u00eddy.<br>Concrete Creators: Podt\u0159\u00eddy Creator, kter\u00e9 implementuj\u00ed tov\u00e1rn\u00ed metodu. Rozhoduj\u00ed, kter\u00fd konkr\u00e9tn\u00ed betonov\u00fd v\u00fdrobek vytvo\u0159it, na z\u00e1klad\u011b vstupn\u00edch parametr\u016f nebo konfigurace.<br>Tov\u00e1rn\u00ed metoda: Metoda definovan\u00e1 ve t\u0159\u00edd\u011b Creator, kter\u00e1 vytv\u00e1\u0159\u00ed objekty Product. Obvykle je deklarov\u00e1n jako abstraktn\u00ed v Creator a implementov\u00e1n v Concrete Creators.<br>P\u0159\u00edklad v Jav\u011b: \u0158ekn\u011bme, \u017ee m\u00e1me tov\u00e1rnu, kter\u00e1 vyr\u00e1b\u00ed r\u016fzn\u00e9 typy vozidel. Zde je zjednodu\u0161en\u00fd p\u0159\u00edklad:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Abstraktn\u00ed produkt<br>rozhran\u00ed Produkt {<br>void display();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Betonov\u00e9 v\u00fdrobky<br>t\u0159\u00edda N\u00e1\u0159ad\u00ed pro automobily Produkt {<br>public void display() {<br>System.out.println(&#8220;Auto vytvo\u0159eno&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">t\u0159\u00edda N\u00e1\u0159ad\u00ed na kolo Produkt {<br>public void display() {<br>System.out.println(&#8220;Kolo vytvo\u0159eno&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Tv\u016frce (tov\u00e1rna)<br>interface Factory {<br>Product factoryMethod();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Tv\u016frci betonu<br>class ConcreteFactoryA implementuje Factory {<br>public Product factoryMethod() {<br>vr\u00e1tit nov\u00e9 auto();<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">class ConcreteFactoryB implementuje Factory {<br>public Product factoryMethod() {<br>return new Bike();<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class FactoryMethodExample {<br>public static void main(String[] args) {<br>Factory factoryA = new ConcreteFactoryA();<br>Produkt produktA = factoryA.factoryMethod();<br>produktA.display();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    Factory factoryB = new ConcreteFactoryB();\n    Product productB = factoryB.factoryMethod();\n    productB.display();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Stavitel<br>Builder Pattern je kreativn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd v\u00e1m umo\u017e\u0148uje vytv\u00e1\u0159et slo\u017eit\u00e9 objekty krok za krokem,<br>odd\u011bluj\u00edc\u00ed jejich konstrukci od jejich reprezentace. Zde je jednoduch\u00fd p\u0159\u00edklad v Jav\u011b:<br>\/\/ Definujte t\u0159\u00eddu, kterou chcete sestavit<br>t\u0159\u00edda p\u0159\u00edsp\u011bvek {<br>soukrom\u00fd z\u00e1v\u011bre\u010dn\u00fd n\u00e1zev \u0159et\u011bzce;<br>soukrom\u00fd kone\u010dn\u00fd Text \u0159et\u011bzce;<br>soukrom\u00e9 fin\u00e1le Stringov\u00e1 kategorie;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">Post(Builder builder) {<\/div><div class=\"cm-line\">    this.title = builder.title;<\/div><div class=\"cm-line\">    this.text = builder.text;<\/div><div class=\"cm-line\">    this.category = builder.category;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Getters for properties<\/div><div class=\"cm-line\">public String getTitle() {<\/div><div class=\"cm-line\">    return title;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public String getText() {<\/div><div class=\"cm-line\">    return text;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public String getCategory() {<\/div><div class=\"cm-line\">    return category;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Builder class<\/div><div class=\"cm-line\">public static class Builder {<\/div><div class=\"cm-line\">    private String title;<\/div><div class=\"cm-line\">    private String text;<\/div><div class=\"cm-line\">    private String category;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder title(String title) {<\/div><div class=\"cm-line\">        this.title = title;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder text(String text) {<\/div><div class=\"cm-line\">        this.text = text;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder category(String category) {<\/div><div class=\"cm-line\">        this.category = category;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Post build() {<\/div><div class=\"cm-line\">        return new Post(this);<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Pou\u017eit\u00ed<br>public class Hlavn\u00ed {<br>public static void main(String[] args) {<br>Post post = new Post.Builder()<br>.title(&#8220;Vzor Java Builder&#8221;)<br>.text(&#8220;Vysv\u011btlen\u00ed, jak implementovat Builder Pattern v Jav\u011b&#8221;)<br>.category(&#8220;N\u00e1vrhov\u00e9 vzory&#8221;)<br>.vytvo\u0159it();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    System.out.println(&#034;Title: &#034; + post.getTitle());\n    System.out.println(&#034;Text: &#034; + post.getText());\n    System.out.println(&#034;Category: &#034; + post.getCategory());\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Prototyp<br>Vzor prototypu je kreativn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd v\u00e1m umo\u017e\u0148uje vytv\u00e1\u0159et nov\u00e9 objekty zkop\u00edrov\u00e1n\u00edm existuj\u00edc\u00edho objektu.<br>M\u00edsto vytv\u00e1\u0159en\u00ed nov\u00fdch instanc\u00ed od za\u010d\u00e1tku klonujete existuj\u00edc\u00ed prototyp, kter\u00fd m\u016f\u017ee b\u00fdt efektivn\u011bj\u0161\u00ed a flexibiln\u011bj\u0161\u00ed. Poj\u010fme se pono\u0159it do p\u0159\u00edkladu v Jav\u011b:<br>Definujte rozhran\u00ed prototypu: Nejprve vytvo\u0159\u00edme abstraktn\u00ed t\u0159\u00eddu nebo rozhran\u00ed nazvan\u00e9 Tree s abstraktn\u00ed metodou copy():<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public abstract class strom {<br>public abstract Tree copy();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Betonov\u00e9 prototypy: D\u00e1le implementujeme dv\u011b betonov\u00e9 t\u0159\u00eddy, kter\u00e9 roz\u0161i\u0159uj\u00ed Tree: PlasticTree a PineTree. Tyto t\u0159\u00eddy p\u0159edstavuj\u00ed specifick\u00e9 typy strom\u016f a poskytuj\u00ed vlastn\u00ed implementaci metody copy():<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class PlasticTree extends Tree {<br>@P\u0159epsat<br>public Tree copy() {<br>PlasticTree plasticTreeClone = new PlasticTree(this.getMass(), this.getHeight());<br>plasticTreeClone.setPosition(this.getPosition());<br>n\u00e1vrat plastTreeClone;<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class PineTree roz\u0161i\u0159uje strom {<br>@P\u0159epsat<br>public Tree copy() {<br>PineTree pineTreeClone = new PineTree(this.getMass(), this.getHeight());<br>pineTreeClone.setPosition(this.getPosition());<br>n\u00e1vrat pineTreeClone;<br>}<br>}<br>V t\u011bchto t\u0159\u00edd\u00e1ch p\u0159izp\u016fsobujeme proces klonov\u00e1n\u00ed na z\u00e1klad\u011b konkr\u00e9tn\u00edho typu stromu. Nap\u0159\u00edklad zkop\u00edrujeme hmotnost, v\u00fd\u0161ku a polohu p\u016fvodn\u00edho stromu.<br>Pou\u017eit\u00ed: Nyn\u00ed vytvo\u0159\u00edme instance na\u0161ich konkr\u00e9tn\u00edch prototyp\u016f:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class Hlavn\u00ed {<br>public static void main(String[] args) {<br>P\u016fvodn\u00ed stromPlasticTree = nov\u00fd Plastov\u00fdStrom(10, 5);<br>Strom klonovan\u00fdPlasticTree = originalPlasticTree.copy();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    Tree originalPineTree = new PineTree(15, 8);\n    Tree clonedPineTree = originalPineTree.copy();\n\n    \/\/ Use the cloned trees as needed\n    \/\/ ...\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co jsou to struktur\u00e1ln\u00ed vzory?<br>Tyto vzory se zab\u00fdvaj\u00ed strukturou a slo\u017een\u00edm t\u0159\u00eddy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Vzor adapt\u00e9ru<br>Vzor adapt\u00e9ru je strukturn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd umo\u017e\u0148uje, aby dv\u011b nekompatibiln\u00ed rozhran\u00ed spolupracovala.<br>Funguje jako most mezi t\u011bmito rozhran\u00edmi a umo\u017e\u0148uje spolupr\u00e1ci bez \u00fapravy jejich zdrojov\u00e9ho k\u00f3du.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Objektov\u00fd adapt\u00e9r:<br>V tomto p\u0159\u00edstupu pou\u017e\u00edv\u00e1me kompozici k delegov\u00e1n\u00ed logiky na adapt\u00e9r.<br>Adapt\u00e9r obsahuje Adaptee a deleguje metodu request() na specificRequest() metodu v Adaptee.<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adaptee (existuj\u00edc\u00ed t\u0159\u00edda)<br>class Adaptee {<br>void SpecificRequest() {<br>System.out.println(&#8220;Specifick\u00fd po\u017eadavek p\u0159\u00edjemce&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ C\u00edlov\u00e9 rozhran\u00ed<br>rozhran\u00ed c\u00edl {<br>void request();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adapt\u00e9r (pomoc\u00ed kompozice)<br>class Adapter implementuje c\u00edl {<br>soukrom\u00fd kone\u010dn\u00fd Adaptee adaptee;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">Adapter(Adaptee adaptee) {<\/div><div class=\"cm-line\">    this.adaptee = adaptee;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void request() {<\/div><div class=\"cm-line\">    adaptee.specificRequest();<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ClassAdapter:<br>Vy\u017eaduje v\u00edcen\u00e1sobnou d\u011bdi\u010dnost (v Jav\u011b nen\u00ed p\u0159\u00edmo mo\u017en\u00e9).<br>M\u016f\u017eeme toho dos\u00e1hnout pomoc\u00ed rozhran\u00ed s v\u00fdchoz\u00edmi metodami.<br>Adapt\u00e9r roz\u0161i\u0159uje t\u0159\u00eddy Target i Adaptee.<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ C\u00edlov\u00e9 rozhran\u00ed<br>rozhran\u00ed c\u00edl {<br>void request();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adaptee (existuj\u00edc\u00ed t\u0159\u00edda)<br>class Adaptee {<br>void SpecificRequest() {<br>System.out.println(&#8220;Specifick\u00fd po\u017eadavek p\u0159\u00edjemce&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adapt\u00e9r (pomoc\u00ed d\u011bdi\u010dnosti t\u0159\u00eddy)<br>class Adapter extends Adaptee implements Target {<br>@P\u0159epsat<br>public void request() {<br>zadan\u00fdPo\u017eadavek();<br>}<br>}<br>V\u00fdhody a kompromisy:<br>Class Adapter funguje dob\u0159e pro mapov\u00e1n\u00ed metody jedna ku jedn\u00e9.<br>Objektov\u00fd adapt\u00e9r poskytuje v\u011bt\u0161\u00ed flexibilitu a zabra\u0148uje \u00faprav\u00e1m k\u00f3du.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Dekorat\u00e9rsk\u00fd vzor<br>Decorator Pattern je kreativn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd umo\u017e\u0148uje dynamicky p\u0159id\u00e1vat funk\u010dnost a chov\u00e1n\u00ed objektu bez<br>ovliv\u0148uj\u00edc\u00ed chov\u00e1n\u00ed jin\u00fdch existuj\u00edc\u00edch objekt\u016f v r\u00e1mci stejn\u00e9 t\u0159\u00eddy. Je to zvl\u00e1\u0161t\u011b u\u017eite\u010dn\u00e9, kdy\u017e chcete roz\u0161\u00ed\u0159it objekt<br>schopnosti, ani\u017e by se zm\u011bnila jeho struktura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P\u0159ehled:<br>Vzor Decorator poskytuje vylep\u0161en\u00e9 rozhran\u00ed k p\u016fvodn\u00edmu objektu t\u00edm, \u017ee jej obaluje dal\u0161\u00edmi funkcemi.<br>Up\u0159ednost\u0148ujeme slo\u017een\u00ed p\u0159ed d\u011bdi\u010dnost\u00ed, abychom sn\u00ed\u017eili re\u017eii podt\u0159\u00eddy.<br>Dekor\u00e1tory lze p\u0159id\u00e1vat za b\u011bhu, co\u017e umo\u017e\u0148uje flexibilitu.<br>P\u0159\u00edklad sc\u00e9n\u00e1\u0159e: P\u0159edpokl\u00e1dejme, \u017ee m\u00e1me objekt v\u00e1no\u010dn\u00edho stromku a chceme jej ozdobit r\u016fzn\u00fdmi p\u0159edm\u011bty, jako je girlanda, pozl\u00e1tko a bublinkov\u00e1 sv\u011btla. Budeme se \u0159\u00eddit p\u016fvodn\u00edmi designov\u00fdmi konvencemi Gang of Four:<br>Implementace:<br>Nejprve vytvo\u0159te rozhran\u00ed ChristmasTree:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ve\u0159ejn\u00e9 rozhran\u00ed V\u00e1no\u010dn\u00ed strom {<br>String decor();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Implementujte rozhran\u00ed se z\u00e1kladn\u00edm stromem:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class ChristmasTreeImpl implementuje ChristmasTree {<br>@P\u0159epsat<br>public String decor() {<br>n\u00e1vrat &#8220;v\u00e1no\u010dn\u00ed strom&#8221;;<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e1le vytvo\u0159te abstraktn\u00ed t\u0159\u00eddu TreeDecorator, kter\u00e1 implementuje ChristmasTree a dr\u017e\u00ed ozdoben\u00fd strom:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public abstract class TreeDecorator implementuje ChristmasTree {<br>soukrom\u00fd z\u00e1v\u011bre\u010dn\u00fd v\u00e1no\u010dn\u00ed strome\u010dek;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public TreeDecorator(ChristmasTree tree) {<\/div><div class=\"cm-line\">    this.tree = tree;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return tree.decorate();<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nyn\u00ed vytvo\u0159te konkr\u00e9tn\u00ed dekor\u00e1tory. Nap\u0159\u00edklad BubbleLights:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class BubbleLights roz\u0161i\u0159uje TreeDecorator {<br>public BubbleLights(v\u00e1no\u010dn\u00ed strome\u010dek) {<br>super(strom);<br>}<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return super.decorate() + &quot; with Bubble Lights&quot;;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class Garland roz\u0161i\u0159uje TreeDecorator {<br>public Garland(v\u00e1no\u010dn\u00ed strome\u010dek) {<br>super(strom);<br>}<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return super.decorate() + &quot; with Garland&quot;;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<br>Pou\u017e\u00edv\u00e1n\u00ed:<br>Vytvo\u0159te ozdoben\u00e9 stromky:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class DecoratorPatternDemo {<br>public static void main(String[] args) {<br>ChristmasStree tree1 = new Garland(new ChristmasTreeImpl());<br>System.out.println(tree1.decorate()); \/\/ V\u00fdstup: &#8220;V\u00e1no\u010dn\u00ed strom s girlandou&#8221;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    ChristmasTree tree2 = new BubbleLights(new Garland(new Garland(new ChristmasTreeImpl())));\n    System.out.println(tree2.decorate()); \/\/ Output: &#034;Christmas tree with Garland with Garland with Bubble Lights&#034;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<br>Vzor umo\u017e\u0148uje p\u0159id\u00e1vat dekor\u00e1tory za b\u011bhu, co\u017e poskytuje flexibilitu p\u0159i zdoben\u00ed podle pot\u0159eby.<br>Pamatujte, \u017ee vzor dekorat\u00e9r\u016f se \u0161iroce pou\u017e\u00edv\u00e1 ve sc\u00e9n\u00e1\u0159\u00edch, kde chcete vylep\u0161it chov\u00e1n\u00ed objektu bez \u00fapravy jeho z\u00e1kladn\u00ed struktury.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Vzor fas\u00e1dy<br>Fas\u00e1dn\u00ed vzor je strukturn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd zjednodu\u0161uje interakci se slo\u017eit\u00fdm subsyst\u00e9mem t\u00edm, \u017ee poskytuje jednotn\u00e9 rozhran\u00ed.<br>Funguje jako \u201evstupn\u00ed dve\u0159e\u201c, kter\u00e9 skr\u00fdvaj\u00ed z\u00e1kladn\u00ed slo\u017eitost a usnad\u0148uj\u00ed klient\u016fm pou\u017e\u00edv\u00e1n\u00ed syst\u00e9mu<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Kompozitn\u00ed<br>Slo\u017een\u00fd vzor je strukturn\u00ed n\u00e1vrhov\u00fd vzor, \u200b\u200bkter\u00fd v\u00e1m umo\u017e\u0148uje skl\u00e1dat objekty do stromov\u00fdch struktur, kter\u00e9 reprezentuj\u00ed hierarchie \u010d\u00e1st\u00ed-celk\u016f.<br>Hlavn\u00ed my\u0161lenkou Composite Pattern je sestaven\u00ed stromov\u00e9 struktury objekt\u016f, kde jednotliv\u00e9 objekty a slo\u017een\u00e9 objekty sd\u00edlej\u00ed spole\u010dn\u00e9 rozhran\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Z\u00e1kladn\u00ed komponenta (odd\u011blen\u00ed): Jako na\u0161i z\u00e1kladn\u00ed komponentu definujeme jednoduch\u00e9 rozhran\u00ed odd\u011blen\u00ed:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">odd\u011blen\u00ed ve\u0159ejn\u00e9ho rozhran\u00ed {<br>void printDepartmentName();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Komponenty listu (finan\u010dn\u00ed odd\u011blen\u00ed a obchodn\u00ed odd\u011blen\u00ed): Vytvo\u0159me t\u0159\u00eddy pro finan\u010dn\u00ed a obchodn\u00ed odd\u011blen\u00ed, p\u0159i\u010dem\u017e ob\u011b implementuj\u00ed rozhran\u00ed odd\u011blen\u00ed:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class FinancialDepartment implements Department {<br>\/\/ Podrobnosti o implementaci (nap\u0159. id, n\u00e1zev)<br>public void printDepartmentName() {<br>System.out.println(getClass().getSimpleName());<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class Obchodn\u00ed odd\u011blen\u00ed implementuje odd\u011blen\u00ed {<br>\/\/ Podrobnosti o implementaci (nap\u0159. id, n\u00e1zev)<br>public void printDepartmentName() {<br>System.out.println(getClass().getSimpleName());<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tyto listov\u00e9 t\u0159\u00eddy implementuj\u00ed metodu printDepartmentName() a neobsahuj\u00ed odkazy na jin\u00e9 objekty odd\u011blen\u00ed.<br>Slo\u017een\u00fd prvek (HeadDepartment): Jako slo\u017eenou t\u0159\u00eddu vytvo\u0159te HeadDepartment, kter\u00fd obsahuje kolekci komponent Department:<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">import java.util.ArrayList;<br>import java.util.List;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class HeadDepartment implementuje Department {<br>soukrom\u00e9 cel\u00e9 \u010d\u00edslo id;<br>private String name;<br>private List childDepartments;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public HeadDepartment(Integer id, String name) {<\/div><div class=\"cm-line\">    this.id = id;<\/div><div class=\"cm-line\">    this.name = name;<\/div><div class=\"cm-line\">    this.childDepartments = new ArrayList&lt;&gt;();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void printDepartmentName() {<\/div><div class=\"cm-line\">    childDepartments.forEach(Department::printDepartmentName);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void addDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.add(department);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void removeDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.remove(department);<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u0159\u00edda HeadDepartment implementuje metodu printDepartmentName() a poskytuje metody pro p\u0159id\u00e1v\u00e1n\u00ed a odeb\u00edr\u00e1n\u00ed pod\u0159\u00edzen\u00fdch odd\u011blen\u00ed.<br>Pou\u017eit\u00ed: M\u016f\u017eete vytvo\u0159it instance listov\u00fdch odd\u011blen\u00ed (nap\u0159. FinancialDepartment, SalesDepartment) a slo\u017een\u00e9ho odd\u011blen\u00ed (nap\u0159. HeadDepartment). P\u0159idejte do kompozitu odd\u011blen\u00ed list\u016f a vytiskn\u011bte jejich jm\u00e9na.<br>J\u00e1va<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class Hlavn\u00ed {<br>public static void main(String[] args) {<br>Finance odd\u011blen\u00ed = new FinancialDepartment();<br>Prodej odd\u011blen\u00ed = new SalesDepartment();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    HeadDepartment headDepartment = new HeadDepartment(1, &#034;Company Departments&#034;);\n    headDepartment.addDepartment(finance);\n    headDepartment.addDepartment(sales);\n\n    headDepartment.printDepartmentName();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v\u00fdstup:<br>Finan\u010dn\u00ed odd\u011blen\u00ed<br>Obchodn\u00ed odd\u011blen\u00ed<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Slo\u017een\u00fd vzor umo\u017e\u0148uje vytv\u00e1\u0159et flexibiln\u00ed stromov\u00e9 struktury kde<br>s jednotliv\u00fdmi p\u0159edm\u011bty a kompozicemi (kompozity) lze zach\u00e1zet jednotn\u011b.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co je to HASH funkce!!!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ha\u0161ovac\u00ed funkce je matematick\u00e1 funkce, kter\u00e1 p\u0159ij\u00edm\u00e1 vstup (nebo \u201ezpr\u00e1vu\u201c) a vrac\u00ed \u0159et\u011bzec znak\u016f s pevnou velikost\u00ed,<br>co\u017e je typicky posloupnost \u010d\u00edsel a p\u00edsmen. Tento v\u00fdstup se naz\u00fdv\u00e1 \u201ehodnota hash\u201c nebo jednodu\u0161e \u201ehash\u201c.<br>Hashovac\u00ed funkce se b\u011b\u017en\u011b pou\u017e\u00edvaj\u00ed v informatice a kryptografii a maj\u00ed n\u011bkolik d\u016fle\u017eit\u00fdch vlastnost\u00ed:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Jak byste pou\u017eili ha\u0161ovac\u00ed funkci a jak funguje?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deterministick\u00fd: Stejn\u00fd vstup v\u017edy vytvo\u0159\u00ed stejn\u00fd hash.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rychl\u00fd: Funkce m\u016f\u017ee rychle vypo\u010d\u00edtat hodnotu hash pro jak\u00fdkoli dan\u00fd vstup.<br>Jedine\u010dn\u00e9 (t\u00e9m\u011b\u0159): Dva r\u016fzn\u00e9 vstupy by m\u011bly vytv\u00e1\u0159et odli\u0161n\u00e9 hash (toto je zn\u00e1m\u00e9 jako minimalizace \u201ekoliz\u00ed\u201c).<br>Nevratn\u00e9: Vzhledem k hash by m\u011blo b\u00fdt v\u00fdpo\u010detn\u011b nemo\u017en\u00e9 ur\u010dit p\u016fvodn\u00ed vstup.<br>Uniform: Hodnoty hash jsou rovnom\u011brn\u011b rozlo\u017eeny ve v\u00fdstupn\u00edm prostoru.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hashovac\u00ed funkce jsou \u0161iroce pou\u017e\u00edv\u00e1ny v r\u016fzn\u00fdch aplikac\u00edch, jako jsou:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Integrita dat: Chcete-li zajistit, aby data nebyla zm\u011bn\u011bna nebo zfal\u0161ov\u00e1na, porovn\u00e1n\u00edm hodnot hash.<br>Ukl\u00e1d\u00e1n\u00ed hesel: Bezpe\u010dn\u00e9 ukl\u00e1d\u00e1n\u00ed hashovan\u00fdch hesel nam\u00edsto skute\u010dn\u00fdch hesel.<br>Kryptografie: Pou\u017e\u00edv\u00e1 se v digit\u00e1ln\u00edch podpisech a dal\u0161\u00edch kryptografick\u00fdch algoritmech.<br>Hash Tables: Pro efektivn\u00ed vyhled\u00e1v\u00e1n\u00ed dat p\u0159i programov\u00e1n\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Uve\u010fte p\u0159\u00edklad hash mapy, jak byste ji pou\u017eili?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SHA (Secure Hash Algorithm):<br>Zahrnuje varianty jako SHA-1, SHA-256, SHA-384 a SHA-512.<br>SHA-256 a SHA-512 jsou \u0161iroce pou\u017e\u00edv\u00e1ny v kryptografii a technologii blockchain (nap\u0159. Bitcoin).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">import java.security.MessageDigest;<br>import java.security.NoSuchAlgorithmException;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class HashExample {<br>public static void main(String[] args) {<br>zkuste {<br>\/\/ Vstupn\u00ed \u0159et\u011bzec, kter\u00fd m\u00e1 b\u00fdt ha\u0161ov\u00e1n<br>String input = &#8220;Ahoj sv\u011bte!&#8221;;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>        \/\/ Create a MessageDigest instance for SHA-256\n        MessageDigest digest = MessageDigest.getInstance(&#034;SHA-256&#034;);\n\n        \/\/ Compute the hash\n        byte&#091;] hash = digest.digest(input.getBytes());\n\n        \/\/ Convert the hash bytes to a hexadecimal string\n        StringBuilder hexString = new StringBuilder();\n        for (byte b : hash) {\n            String hex = String.format(&#034;%02x&#034;, b);\n            hexString.append(hex);\n        }\n\n        \/\/ Print the resulting hash\n        System.out.println(&#034;SHA-256 Hash: &#034; + hexString.toString());\n    } catch (NoSuchAlgorithmException e) {\n        System.err.println(&#034;Error: &#034; + e.getMessage());\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vstupn\u00ed data: Vstupn\u00ed prom\u011bnn\u00e1 obsahuje data, kter\u00e1 chcete ha\u0161ovat.<br>Inicializace MessageDigest: Instance MessageDigest je vytvo\u0159ena pomoc\u00ed getInstance(&#8220;SHA-256&#8221;), kter\u00e1 ur\u010duje hashovac\u00ed algoritmus SHA-256.<br>Ha\u0161ov\u00e1n\u00ed: Metoda digest po\u010d\u00edt\u00e1 hash vstupn\u00edch dat.<br>Hexadecim\u00e1ln\u00ed p\u0159evod: Vzhledem k tomu, \u017ee hash je v bin\u00e1rn\u00edm form\u00e1tu, pou\u017e\u00edv\u00e1me cyklus k jeho p\u0159evodu na \u010diteln\u011bj\u0161\u00ed hexadecim\u00e1ln\u00ed \u0159et\u011bzec.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e1t a opravit? Kdy jej pou\u017e\u00edt?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PUT i PATCH jsou metody HTTP pou\u017e\u00edvan\u00e9 k aktualizaci zdroj\u016f na serveru, ale li\u0161\u00ed se v tom, jak zpracov\u00e1vaj\u00ed aktualizace:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00c1T:<br>Kompletn\u00ed aktualizace:<br>PUT se pou\u017e\u00edv\u00e1 k \u00fapln\u00e9mu nahrazen\u00ed existuj\u00edc\u00edho zdroje.<br>V po\u017eadavku je t\u0159eba odeslat cel\u00fd zdroj, i kdy\u017e se m\u011bn\u00ed pouze jeho \u010d\u00e1st.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pokud zdroj neexistuje, PUT jej \u010dasto vytvo\u0159\u00ed (a\u010dkoli toto chov\u00e1n\u00ed se m\u016f\u017ee li\u0161it).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotentn\u00ed:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Opakovan\u00e9 po\u017eadavky PUT se stejn\u00fdmi daty budou m\u00edt v\u017edy za n\u00e1sledek stejn\u00fd stav zdroje.<br>P\u0159\u00edklad: Aktualizace profilu u\u017eivatele:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>PUT \/users\/123<br>{<br>&#8220;name&#8221;: &#8220;Velislav&#8221;,<br>&#8220;e-mail&#8221;: &#8220;velislav@example.com&#8221;,<br>&#8220;v\u011bk&#8221;: 30<br>}<br>Pokud se zm\u011bn\u00ed pouze jm\u00e9no, ale e-mail a v\u011bk z\u016fstanou stejn\u00e9, mus\u00ed b\u00fdt st\u00e1le uvedeny v \u017e\u00e1dosti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Z\u00c1PLATY:<br>\u010c\u00e1ste\u010dn\u00e1 aktualizace:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PATCH se pou\u017e\u00edv\u00e1 k \u010d\u00e1ste\u010dn\u00e9 aktualizaci existuj\u00edc\u00edho prost\u0159edku.<br>V \u017e\u00e1dosti je t\u0159eba odeslat pouze zm\u011bn\u011bn\u00e1 pole.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotentn\u00ed (v\u011bt\u0161inou):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stejn\u011b jako PUT, opakovan\u00e9 po\u017eadavky PATCH se stejn\u00fdmi daty obecn\u011b vedou ke stejn\u00e9mu stavu zdroje.<br>Chov\u00e1n\u00ed v\u0161ak m\u016f\u017ee z\u00e1viset na implementaci serveru.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P\u0159\u00edklad: Aktualizace pouze jm\u00e9na u\u017eivatele:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>PATCH \/users\/123<br>{<br>&#8220;jm\u00e9no&#8221;: &#8220;Velislav&#8221;<br>}<br>Zde se aktualizuje pouze pole n\u00e1zvu, ostatn\u00ed pole z\u016fst\u00e1vaj\u00ed beze zm\u011bny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kl\u00ed\u010dov\u00fd rozd\u00edl:<br>PUT nahrad\u00ed cel\u00fd prost\u0159edek, zat\u00edmco PATCH uprav\u00ed pouze specifikovan\u00e1 pole prost\u0159edku.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HTTP metody s kr\u00e1tk\u00fdm popisem.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GET: Pou\u017e\u00edv\u00e1 se k na\u010dten\u00ed dat ze serveru bez jejich \u00fapravy. B\u011b\u017en\u011b se pou\u017e\u00edv\u00e1 pro z\u00edsk\u00e1v\u00e1n\u00ed zdroj\u016f nebo informac\u00ed.<br>POST: Pou\u017e\u00edv\u00e1 se k odes\u00edl\u00e1n\u00ed dat na server, obvykle k vytvo\u0159en\u00ed nov\u00e9ho zdroje. Nap\u0159\u00edklad odesl\u00e1n\u00ed formul\u00e1\u0159e nebo nahr\u00e1n\u00ed souboru.<br>PUT: Pou\u017e\u00edv\u00e1 se k aktualizaci nebo \u00fapln\u00e9mu nahrazen\u00ed existuj\u00edc\u00edho prost\u0159edku na serveru. Pokud zdroj neexistuje, m\u016f\u017ee b\u00fdt vytvo\u0159en.<br>OPRAVA: Pou\u017e\u00edv\u00e1 se pro \u010d\u00e1ste\u010dn\u00e9 aktualizace existuj\u00edc\u00edho prost\u0159edku, upravuj\u00edc\u00ed pouze ur\u010den\u00e1 pole.<br>DELETE: Pou\u017e\u00edv\u00e1 se k odstran\u011bn\u00ed prost\u0159edku ze serveru.<br>HEAD: Podobn\u011b jako GET, pou\u017e\u00edv\u00e1 se k na\u010dten\u00ed z\u00e1hlav\u00ed bez t\u011bla zdroje.<br>MO\u017dNOSTI: \u0158\u00edk\u00e1, jak\u00e9 metody HTTP jsou povoleny.<br>TRACE: Pou\u017e\u00edv\u00e1 se hlavn\u011b pro diagnostick\u00e9 \u00fa\u010dely odesl\u00e1n\u00edm po\u017eadavku zp\u011bt klientovi<br>CONNECT: Vytvo\u0159\u00ed tunel k serveru, kter\u00fd se \u010dasto pou\u017e\u00edv\u00e1 pro p\u0159ipojen\u00ed SSL\/TLS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">========== Funk\u010dn\u00ed rozhran\u00ed ======================================<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Funk\u010dn\u00ed rozhran\u00ed v Jav\u011b je rozhran\u00ed, kter\u00e9 obsahuje pr\u00e1v\u011b jednu abstraktn\u00ed metodu. Tato rozhran\u00ed se pou\u017e\u00edvaj\u00ed p\u0159edev\u0161\u00edm v lambda v\u00fdrazech a odkazech na metody, co\u017e umo\u017e\u0148uje stru\u010dn\u011bj\u0161\u00ed a \u010diteln\u011bj\u0161\u00ed funk\u010dn\u00ed programov\u00e1n\u00ed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kl\u00ed\u010dov\u00e9 vlastnosti:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Jednotn\u00e1 abstraktn\u00ed metoda<\/strong>: Funk\u010dn\u00ed rozhran\u00ed m\u00e1 pouze jednu abstraktn\u00ed metodu. To je podstata jeho funk\u010dnosti.<\/li>\n\n\n\n<li><strong>V\u00fdchoz\u00ed a statick\u00e9 metody<\/strong>: Funk\u010dn\u00ed rozhran\u00ed mohou zahrnovat v\u00fdchoz\u00ed a statick\u00e9 metody, ale ty se nepo\u010d\u00edtaj\u00ed jako jedin\u00e1 abstraktn\u00ed metoda.<\/li>\n\n\n\n<li><strong>@FunctionalInterface Anotace<\/strong>: I kdy\u017e je tato anotace voliteln\u00e1, pom\u00e1h\u00e1 t\u00edm, \u017ee signalizuje, \u017ee rozhran\u00ed je zam\u00fd\u0161leno jako funk\u010dn\u00ed. Pokud jsou do rozhran\u00ed p\u0159id\u00e1ny dal\u0161\u00ed abstraktn\u00ed metody, kompil\u00e1tor vyvol\u00e1 chybu.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edklad:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@FunctionalInterface<\/div><div class=\"cm-line\">interface Calculator {<\/div><div class=\"cm-line\">    int calculate(int a, int b);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Using lambda expression<\/div><div class=\"cm-line\">public class Main {<\/div><div class=\"cm-line\">    public static void main(String[] args) {<\/div><div class=\"cm-line\">        \/\/ Implementing the calculate method using a lambda<\/div><div class=\"cm-line\">        Calculator addition = (a, b) -&gt; a + b;<\/div><div class=\"cm-line\">        Calculator multiplication = (a, b) -&gt; a * b;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        System.out.println(&quot;Addition: &quot; + addition.calculate(5, 3));  \/\/ Output: 8<\/div><div class=\"cm-line\">        System.out.println(&quot;Multiplication: &quot; + multiplication.calculate(5, 3));  \/\/ Output: 15<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edpad pou\u017eit\u00ed:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>Calculator<\/code> rozhran\u00ed v p\u0159\u00edkladu m\u00e1 jedinou abstraktn\u00ed metodu <code>calculate<\/code>, co\u017e z n\u011bj d\u011bl\u00e1 funk\u010dn\u00ed rozhran\u00ed.<br>To n\u00e1m umo\u017e\u0148uje pou\u017e\u00edvat v\u00fdrazy lambda pro stru\u010dnost a eleganci p\u0159i implementaci.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">B\u011b\u017en\u00e1 funk\u010dn\u00ed rozhran\u00ed v Jav\u011b:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java poskytuje n\u011bkolik vestav\u011bn\u00fdch funk\u010dn\u00edch rozhran\u00ed v <code>java.util.function<\/code> bal\u00ed\u010dky, jako nap\u0159\u00edklad:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Predik\u00e1t<\/strong>: Vezme vstup a vr\u00e1t\u00ed boolean.<\/li>\n\n\n\n<li><strong>Funkce<\/strong>: Vezme vstup a vr\u00e1t\u00ed v\u00fdstup typu R.<\/li>\n\n\n\n<li><strong>Dodavatel<\/strong>: Poskytuje hodnotu bez zad\u00e1n\u00ed.<\/li>\n\n\n\n<li><strong>Spot\u0159ebitel<\/strong>: P\u0159ijme hodnotu a provede akci.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Funk\u010dn\u00ed rozhran\u00ed zjednodu\u0161uj\u00ed operace, zejm\u00e9na ve sc\u00e9n\u00e1\u0159\u00edch, jako je pr\u00e1ce s kolekcemi, proudy nebo asynchronn\u00edmi \u00falohami.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Umo\u017e\u0148uj\u00ed Jav\u011b p\u0159ijmout funk\u010dn\u00ed programovac\u00ed paradigmata p\u0159i zachov\u00e1n\u00ed jej\u00ed objektov\u011b orientovan\u00e9 povahy.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">================ Funkce vy\u0161\u0161\u00edho \u0159\u00e1du je ==============================<br>Funkce vy\u0161\u0161\u00edho \u0159\u00e1du je funkce, kter\u00e1 bu\u010f bere jin\u00e9 funkce jako argumenty, nebo jako v\u00fdsledek vrac\u00ed funkci. Jin\u00fdmi slovy, operuje s funkcemi a zach\u00e1z\u00ed s nimi jako s \u201eob\u010dany prvn\u00ed t\u0159\u00eddy\u201c. Toto je v\u00fdkonn\u00e1 funkce v paradigmatech funk\u010dn\u00edho programov\u00e1n\u00ed, kter\u00e1 umo\u017e\u0148uje abstrakci, op\u011btovn\u00e9 pou\u017eit\u00ed k\u00f3du a kompozici.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edklad funkce vy\u0161\u0161\u00edho \u0159\u00e1du v Jav\u011b:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">import java.util.function.Function;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class Main {<\/div><div class=\"cm-line\">    public static void main(String[] args) {<\/div><div class=\"cm-line\">        \/\/ Higher-order function: applies a function to a value<\/div><div class=\"cm-line\">        Function&lt;Integer, Integer&gt; squareFunction = x -&gt; x * x;<\/div><div class=\"cm-line\">        int result = applyFunction(5, squareFunction);<\/div><div class=\"cm-line\">        System.out.println(&quot;Square of 5: &quot; + result);  \/\/ Output: 25<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public static int applyFunction(int value, Function&lt;Integer, Integer&gt; function) {<\/div><div class=\"cm-line\">        return function.apply(value);<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">V p\u0159\u00edkladu v\u00fd\u0161e:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <code>applyFunction<\/code> metoda je funkc\u00ed vy\u0161\u0161\u00edho \u0159\u00e1du, proto\u017ee p\u0159ij\u00edm\u00e1 jinou funkci (<code>Function&lt;Integer, Integer&gt;<\/code>) jako parametr.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Vlastnosti:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>P\u0159ij\u00edm\u00e1 funkce jako argumenty<\/strong>: Funkce vy\u0161\u0161\u00edho \u0159\u00e1du mohou m\u00edt jin\u00e9 funkce jako vstup pro prov\u00e1d\u011bn\u00ed specifick\u00fdch operac\u00ed.<\/li>\n\n\n\n<li><strong>Vr\u00e1t\u00ed funkce<\/strong>: Mohou dynamicky generovat a vracet nov\u00e9 funkce.<\/li>\n\n\n\n<li><strong>Podporuje op\u011btovn\u00e9 pou\u017eit\u00ed k\u00f3du<\/strong>: Podporuje modul\u00e1rn\u00ed a opakovan\u011b pou\u017eiteln\u00fd k\u00f3d, proto\u017ee funkce lze p\u0159ed\u00e1vat a skl\u00e1dat spole\u010dn\u011b.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edpad pou\u017eit\u00ed:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">V Jav\u011b se funkce vy\u0161\u0161\u00edho \u0159\u00e1du b\u011b\u017en\u011b pou\u017e\u00edvaj\u00ed ve funk\u010dn\u00edm programov\u00e1n\u00ed s proudy, lambdami a odkazy na metody. Nap\u0159\u00edklad:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">List&lt;String&gt; names = Arrays.asList(&quot;John&quot;, &quot;Jane&quot;, &quot;Jake&quot;);<\/div><div class=\"cm-line\">names.stream()<\/div><div class=\"cm-line\">     .filter(name -&gt; name.startsWith(&quot;J&quot;))  \/\/ Takes a lambda function as argument<\/div><div class=\"cm-line\">     .forEach(System.out::println);         \/\/ Takes a method reference as argument<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Funkce vy\u0161\u0161\u00edho \u0159\u00e1du p\u0159in\u00e1\u0161ej\u00ed flexibilitu a v\u00fdkon program\u016fm Java a umo\u017e\u0148uj\u00ed v\u00fdvoj\u00e1\u0159\u016fm ps\u00e1t \u010dist\u00fd, stru\u010dn\u00fd a v\u00fdrazn\u00fd k\u00f3d!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zde je n\u011bkolik odpov\u011bd\u00ed na rozhovory v re\u00e1ln\u00e9m sv\u011bt\u011b.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rozum\u00ed z\u00e1klad\u016fm, jako je polymorfismus, statick\u00e9 metody a fond \u0159et\u011bzc\u016f<\/li>\n\n\n\n<li>obezn\u00e1meni s kolekcemi (nap\u0159. HashSet, TreeSet) a jejich p\u0159\u00edpady pou\u017eit\u00ed.<\/li>\n\n\n\n<li>Spr\u00e1vn\u011b identifikuje rozsahy fazol\u00ed (singleton, prototyp)<\/li>\n\n\n\n<li>Uv\u011bdomte si injekce z\u00e1vislosti a jej\u00ed \u00fa\u010del.<\/li>\n\n\n\n<li>v\u00ed, jak implementovat vztahy many-to-many pomoc\u00ed spojovac\u00edch tabulek.<\/li>\n\n\n\n<li>Rozum\u00ed \u00fa\u010delu index\u016f (i kdy\u017e povrchn\u011b)<\/li>\n\n\n\n<li>dok\u00e1\u017ee rozli\u0161it mezi monolitickou a mikroservisn\u00ed architekturou<\/li>\n\n\n\n<li>rozum\u00ed z\u00e1kladn\u00edm kompromis\u016fm (\u0161k\u00e1lovatelnost, udr\u017eovatelnost)<\/li>\n\n\n\n<li>\u0161patn\u011b ch\u00e1pe Liskov\u016fv substitu\u010dn\u00ed princip a inverzi z\u00e1vislosti<\/li>\n\n\n\n<li>Sna\u017e\u00ed se poskytnout konkr\u00e9tn\u00ed p\u0159\u00edklady pro princip otev\u0159en\u00fd\/uzav\u0159en\u00fd.<\/li>\n\n\n\n<li>Postr\u00e1d\u00e1 hloubku v \u0159\u00edzen\u00ed \u017eivotn\u00edho cyklu fazol\u00ed<\/li>\n\n\n\n<li>Nejasn\u00e9 vkl\u00e1d\u00e1n\u00ed pokro\u010dil\u00e9 z\u00e1vislosti<\/li>\n\n\n\n<li>povrchn\u00ed porozum\u011bn\u00ed index\u016fm (slo\u017een\u00e9 indexy, optimalizace dotaz\u016f)<\/li>\n\n\n\n<li>Nezn\u00e1te \u00farovn\u011b izolace a optimistick\u00e9\/pesimistick\u00e9 zamyk\u00e1n\u00ed<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pro:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pracovalo se se star\u0161\u00edm k\u00f3dem v obrovsk\u00e9m a slo\u017eit\u00e9m syst\u00e9mu<\/li>\n\n\n\n<li>Zn\u00e1 SOLID<\/li>\n\n\n\n<li>Znalost proud\u016f<\/li>\n\n\n\n<li>Vysv\u011btlen\u00e9 indexy a ACID<\/li>\n\n\n\n<li>Dobr\u00e1 \u00farove\u0148 angli\u010dtiny<br>nev\u00fdhody:<\/li>\n\n\n\n<li>\u017d\u00e1dn\u00e1 odpov\u011bdnost za nasazen\u00ed nebo infrastrukturu, \u00fa\u010dast na n\u00e1vrhu architektury<\/li>\n\n\n\n<li>M\u00e1 ur\u010dit\u00e9 znalosti o principech OOP, ale opravdu se sna\u017eil je vysv\u011btlit a n\u011bkter\u00e9 koncepty se m\u00fdlily<\/li>\n\n\n\n<li>Obecn\u00e1 znalost sb\u00edrek m\u00e1 ale mezery a je velmi nejist\u00e1<\/li>\n\n\n\n<li>Nerozum\u00ed rozd\u00edlu mezi soub\u011b\u017enost\u00ed a paralelismem, nep\u0159\u00edli\u0161 siln\u00e1 znalost soub\u011b\u017enosti<\/li>\n\n\n\n<li>Moc jsem se nezab\u00fdval architekturou mikro slu\u017eeb<\/li>\n\n\n\n<li>V\u00e1gn\u00ed u n\u011bkter\u00fdch datab\u00e1zov\u00fdch koncept\u016f (diskuze o indexech byla povrchov\u00e1)<\/li>\n\n\n\n<li>Livelock se nepoda\u0159ilo vysv\u011btlit<\/li>\n\n\n\n<li>Mezery v porozum\u011bn\u00ed nakonec blokuj\u00ed<\/li>\n\n\n\n<li>Omezen\u00e1 znalost specifik zpracov\u00e1n\u00ed v\u00fdjimek<\/li>\n\n\n\n<li>Zmaten\u00e9 ohledn\u011b modifik\u00e1tor\u016f p\u0159\u00edstupu (chr\u00e1n\u011bn\u00e9 vs. soukrom\u00fd bal\u00ed\u010dek)<br>Konsensu\u00e1ln\u00ed n\u00e1zor \u2026.. je<br>nen\u00ed vhodn\u00fd pro pozici v\u00fdvoj\u00e1\u0159e ve st\u0159edn\u00ed J\u00e1v\u011b kv\u016fli mezer\u00e1m v jeho technick\u00fdch znalostech.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pros<br>Dob\u0159e vysv\u011btleno SOLID<br>Dob\u0159e vysv\u011btlil OOP<br>Vysv\u011btlen\u00e1 kompozice (ale zpo\u010d\u00e1tku trochu bojovala)<br>V\u00fdborn\u00e1 znalost sb\u00edrek<br>Rozd\u00edl mezi seznamy a mno\u017einami<br>Hashsety<br>Hashmap<br>ConcurrentHashmap<br>Dobr\u00e1 znalost datov\u00fdch struktur &#8211; z\u00e1sobn\u00edky, fronty, stromy<br>Dobr\u00e1 znalost architektury jvm<br>Vysv\u011btlen\u00ed soub\u011b\u017enosti vs paralelismus, prok\u00e1z\u00e1n\u00ed dobr\u00fdch znalost\u00ed v\u00edcevl\u00e1knov\u00fdch aplikac\u00ed<br>Dobr\u00e9 pochopen\u00ed REST<br>Dob\u0159e vysv\u011btlil db indexy<br>Vysv\u011btlil r\u016fzn\u00e9 typy spojen\u00ed<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jakke jsou principy SOLID? Jak\u00fd je princip jednotn\u00e9 odpov\u011bdnosti (SRP): T\u0159\u00edda by m\u011bla m\u00edt pouze jednu odpov\u011bdnost. Ke v\u011bdn\u011b by m\u011bla m\u00edt jedinou odpov\u011bdnost. Mezi v\u00fdhody pat\u0159\u00ed snadn\u011bj\u0161\u00ed testov\u00e1n\u00ed, ni\u017e\u0161\u00ed konektivita a lep\u0161\u00ed organizace. P\u0159\u00edklad: J\u00e1va ve\u0159ejn\u00e1 t\u0159\u00edda Kniha {private String name; soukrom\u00fd autor k\u00e9tzelce; soukrom\u00fd text k\u00e9tzelce;\/\/ konstruktori, getry a nastavova\u010de} Co je otev\u0159en\u00fd princip (OCP): Softwarov\u00e9 entity (t\u0159\u00eddy, [&hellip;]<\/p>\n","protected":false},"author":65283547,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1017],"tags":[11788,789678139,2549795,196,789678143],"class_list":["post-2308","post","type-post","status-publish","format-standard","hentry","category-java","tag-rozhovor","tag-rozhovor-s-java-vyvojarem","tag-java","tag-programovani","tag-dotazy-java-developer"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4CoHV-Be","jetpack-related-posts":[{"id":2537,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d1%82%d1%80%d0%b5%d1%82%d0%b8%d1%8f%d1%82-%d0%b2%d1%81%d0%b5%d0%bb%d0%b5%d0%bd%d1%81%d0%ba%d0%b8-%d1%81%d1%8a%d0%b1%d0%be%d1%80-%d0%b2-%d0%b5%d1%84%d0%b5%d1%81-431-%d0%b3-%d1%85%d1%80%d0%b8%d1%81\/","url_meta":{"origin":2308,"position":0},"title":"T\u0159et\u00ed ekumenick\u00fd koncil v Efezu (431): christologick\u00fd spor mezi Cyrilem Alexandrijsk\u00fdm a Nestoriem a potvrzen\u00ed nauky o Matce Bo\u017e\u00ed","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440 \u0432 \u0415\u0444\u0435\u0441 (431 \u0433.): \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0438\u044f\u0442 \u0441\u043f\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u041a\u0438\u0440\u0438\u043b \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0438\u0439\u0441\u043a\u0438 \u0438 \u041d\u0435\u0441\u0442\u043e\u0440\u0438\u0439 \u0438 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0438\u0446\u0430 \u041d\u0430\u0443\u0447\u043d\u043e-\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e \u0438 \u0431\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u0441\u043a\u043e \u0438\u0437\u0441\u043b\u0435\u0434\u0432\u0430\u043d\u0435 \u0410\u0432\u0442\u043e\u0440: \u0412\u0435\u043b\u0438\u0441\u043b\u0430\u0432 \u041a\u0440\u044a\u0441\u0442\u0435\u0432\u0422\u0435\u043c\u0430: \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0440\u0430\u043d\u043d\u0430\u0442\u0430 \u0426\u044a\u0440\u043a\u0432\u0430 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u0442\u0430 \u0434\u043e\u0433\u043c\u0430\u0442\u0438\u043a\u0430\u041f\u0435\u0440\u0438\u043e\u0434: 428\u2013451 \u0433.\u041e\u0441\u043d\u043e\u0432\u043d\u043e \u0441\u044a\u0431\u0438\u0442\u0438\u0435: \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u0415\u0444\u0435\u0441, 431 \u0433. \u0420\u0435\u0437\u044e\u043c\u0435 \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u2026","rel":"","context":"In &quot;\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble&quot;","block_context":{"text":"\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":901,"url":"https:\/\/vkrastev1blog.com\/2024\/11\/17\/%d0%ba%d0%be%d0%bb%d0%ba%d0%be-%d0%bf%d1%80%d0%be%d1%82%d0%b5%d0%b8%d0%bd%d0%b8-%d0%b4%d0%b0-%d0%bf%d1%80%d0%b8%d0%b5%d0%bc%d0%b0%d0%bc%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd\/","url_meta":{"origin":2308,"position":1},"title":"Kolik b\u00edlkovin denn\u011b sn\u00edst a \u00fa\u010dinky proteinov\u00e9ho hladov\u011bn\u00ed","author":"vkrastev2014","date":"17.11.2024","format":false,"excerpt":"\u041a\u043e\u043b\u043a\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u0434\u0430 \u043f\u0440\u0438\u0435\u043c\u0430\u043c\u0435 \u043d\u0430 \u0434\u0435\u043d \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0438\u0446\u0438\u0442\u0435 \u043e\u0442 \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u043e\u0432 \u0433\u043b\u0430\u0434 \u041f\u0440\u0438\u0435\u043c\u044a\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u043d\u0430 \u0434\u0435\u043d \u0435 \u043e\u0442 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u0440\u0430\u0434\u0438 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0438: \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0438 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438: \u041f\u0440\u043e\u0442\u0435\u0438\u043d\u0438\u0442\u0435 \u0441\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u0442\u0435 \u0433\u0440\u0430\u0434\u0438\u0432\u043d\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438 \u043d\u0430 \u043c\u0443\u0441\u043a\u0443\u043b\u0438\u0442\u0435, \u043a\u043e\u0436\u0430\u0442\u0430, \u043a\u043e\u0441\u0430\u0442\u0430 \u0438 \u043d\u043e\u043a\u0442\u0438\u0442\u0435. \u0422\u0435 \u0441\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438 \u0437\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u2026","rel":"","context":"In &quot;\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble&quot;","block_context":{"text":"\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2586,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d0%b2%d0%b5%d0%bb%d0%b8%d0%ba%d0%b0%d1%82%d0%b0-%d1%81%d1%85%d0%b8%d0%b7%d0%bc%d0%b0-%d0%be%d1%82-1054-%d0%b3-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5\/","url_meta":{"origin":2308,"position":2},"title":"Velk\u00e9 schizma z roku 1054 - historick\u00e9 d\u016fvody pro rozkol mezi pravoslavnou a \u0159\u00edmskokatolickou c\u00edrkv\u00ed","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0442\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0437\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u041f\u0440\u0430\u0432\u043e\u0441\u043b\u0430\u0432\u043d\u0430\u0442\u0430 \u0438 \u0420\u0438\u043c\u043e\u043a\u0430\u0442\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u0420\u0435\u0437\u044e\u043c\u0435 \u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u0435 \u0435\u0434\u043d\u043e \u043e\u0442 \u043d\u0430\u0439-\u0437\u043d\u0430\u0447\u0438\u043c\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e\u0442\u043e. \u0422\u044f \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430 \u0441 \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0446\u044a\u0440\u043a\u043e\u0432\u043d\u043e\u0442\u043e \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0420\u0438\u043c\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0417\u0430\u043f\u0430\u0434 \u0438 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0418\u0437\u0442\u043e\u043a. \u0421\u044a\u0431\u0438\u0442\u0438\u044f\u0442\u0430\u2026","rel":"","context":"In &quot;\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble&quot;","block_context":{"text":"\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":2663,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/10\/%d1%81%d1%8a%d0%b1%d1%80%d0%b0%d0%bd%d0%b8-%d0%bb%d0%b8%d0%bd%d0%ba%d0%be%d0%b2%d0%b5-%d0%ba%d1%8a%d0%bc-%d0%b4%d0%be%d0%b1%d1%80%d0%b8-%d1%85%d1%80%d0%b8%d1%81%d1%82%d0%b8%d1%8f%d0%bd%d1%81%d0%ba\/","url_meta":{"origin":2308,"position":3},"title":"Shrom\u00e1\u017ed\u011bn\u00e9 odkazy na dobr\u00e9 k\u0159es\u0165ansk\u00e9 filmy z internetu","author":"vkrastev2014","date":"10.10.2026","format":false,"excerpt":"\u0421\u044a\u0431\u0440\u0430\u043d\u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u0435 \u043a\u044a\u043c \u0434\u043e\u0431\u0440\u0438 \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u0424\u0438\u043b\u043c\u0438 \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0422\u0443\u043a \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043c \u0441\u043f\u0438\u0441\u044a\u043a \u0441 \u0434\u043e\u0431\u0440\u0438 \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u0424\u0438\u043b\u043c\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0421\u0442\u0430\u0442\u0438\u044f\u0442\u0430 \u0449\u0435 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441 \u043d\u043e\u0432\u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u0435, \u043d\u0435 \u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u044f. \u0418\u043c\u0430 \u0438 \u0444\u0438\u043b\u043c\u0438 \u0441 \u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043f\u0440\u0435\u0432\u043e\u0434 \u0438 \u0441 \u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438 \u043d\u043e \u043d\u044f\u043a\u043e\u0438 \u0441\u0430 \u0441\u0430\u043c\u043e \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u043a. \u041f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0442\u0435\u0437\u0438\u2026","rel":"","context":"In &quot;\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble&quot;","block_context":{"text":"\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2532,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d0%b2%d1%82%d0%be%d1%80%d0%b8%d1%8f%d1%82-%d0%b2%d1%81%d0%b5%d0%bb%d0%b5%d0%bd%d1%81%d0%ba%d0%b8-%d1%81%d1%8a%d0%b1%d0%be%d1%80-%d0%b2-%d0%ba%d0%be%d0%bd%d1%81%d1%82%d0%b0%d0%bd%d1%82%d0%b8%d0%bd\/","url_meta":{"origin":2308,"position":4},"title":"Druh\u00fd ekumenick\u00fd koncil v Konstantinopoli (381) - potvrzen\u00ed nauky o Duchu sv.","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0412\u0442\u043e\u0440\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440 \u0432 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b (381 \u0433.) \u2013 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0421\u0432\u0435\u0442\u0438\u044f \u0414\u0443\u0445 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e\u0442\u043e \u2022 \u0412\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440\u0438 \u2022 IV \u0432\u0435\u043a \u0412\u0442\u043e\u0440\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u0435\u0437 381 \u0433. \u0432 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b, \u0435 \u0435\u0434\u043d\u043e \u043e\u0442 \u043d\u0430\u0439-\u0432\u0430\u0436\u043d\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u0440\u0430\u043d\u043d\u043e\u0442\u043e \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e. \u041d\u0430 \u043d\u0435\u0433\u043e \u0435 \u043f\u043e\u0442\u0432\u044a\u0440\u0434\u0435\u043d\u0430 \u041d\u0438\u043a\u0435\u0439\u0441\u043a\u0430\u0442\u0430 \u0432\u044f\u0440\u0430 \u043e\u0442 325\u2026","rel":"","context":"In &quot;\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble&quot;","block_context":{"text":"\u010cl\u00e1nky v\u011bnovan\u00e9 Bibli a o duchu a t\u011ble","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":297,"url":"https:\/\/vkrastev1blog.com\/2024\/05\/15\/artifitial-eye\/","url_meta":{"origin":2308,"position":5},"title":"Um\u011bl\u00e9 oko \u2013 kam a\u017e v\u011bda dosp\u011bla v roce 2026","author":"vkrastev2014","date":"15.05.2024","format":false,"excerpt":"\u0418\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043e\u0442\u043e \u043e\u043a\u043e \u2013 \u0434\u043e\u043a\u044a\u0434\u0435 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430\u0443\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u0437 2026 \u0433\u043e\u0434\u0438\u043d\u0430 \u041e\u0442 \u0440\u0435\u0442\u0438\u043d\u0430\u043b\u043d\u0438 \u0438\u043c\u043f\u043b\u0430\u043d\u0442\u0438 \u0434\u043e \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u0430 \u0440\u0435\u0442\u0438\u043d\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043b\u0430\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0446\u044f\u043b\u043e \u043e\u043a\u043e \u0418\u0434\u0435\u044f\u0442\u0430 \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043e \u043e\u043a\u043e, \u043a\u043e\u0435\u0442\u043e \u0434\u0430 \u0437\u0430\u043c\u0435\u043d\u0438 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0447\u043e\u0432\u0435\u0448\u043a\u043e\u0442\u043e \u043e\u043a\u043e \u0438 \u0434\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u0438 \u0437\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u043b\u0435\u043f\u0438 \u0445\u043e\u0440\u0430, \u0434\u044a\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0435\u0448\u0435 \u043f\u0440\u0435\u0434\u0438\u043c\u043d\u043e \u043d\u0430 \u043d\u0430\u0443\u0447\u043d\u0430\u0442\u0430 \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0430. \u041f\u0440\u0435\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0434\u0435\u0441\u0435\u0442\u0438\u043b\u0435\u0442\u0438\u044f\u2026","rel":"","context":"In &quot;Um\u011bl\u00e9 org\u00e1ny \u2013 kam a\u017e v\u011bda dosp\u011bla v roce 2026&quot;","block_context":{"text":"Um\u011bl\u00e9 org\u00e1ny \u2013 kam a\u017e v\u011bda dosp\u011bla v roce 2026","link":"https:\/\/vkrastev1blog.com\/category\/umele-organy-kam-az-veda-dospela-v-roce-2026\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/users\/65283547"}],"replies":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":6,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions"}],"predecessor-version":[{"id":2314,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions\/2314"}],"wp:attachment":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/categories?post=2308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/tags?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}