{"id":3004,"date":"2022-07-08T11:25:57","date_gmt":"2022-07-08T11:25:57","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"modified":"2026-03-09T13:13:14","modified_gmt":"2026-03-09T13:13:14","slug":"9-chyb-kterych-se-vyvarujte-pri-programovani-v-jazyce-java","status":"publish","type":"post","link":"https:\/\/thecodest.co\/cs\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","title":{"rendered":"9 chyb, kter\u00fdch se vyvarujte p\u0159i programov\u00e1n\u00ed v jazyce Java"},"content":{"rendered":"<p><strong><a href=\"https:\/\/thecodest.co\/cs\/blog\/top-programming-languages-to-build-e-commerce\/\">Java<\/a><\/strong> je obl\u00edben\u00fd jazyk s pevnou pozic\u00ed ve sv\u011bt\u011b. <strong><a href=\"https:\/\/thecodest.co\/cs\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">v\u00fdvoj softwaru<\/a><\/strong>. Je to siln\u00fd a v\u0161estrann\u00fd programovac\u00ed jazyk. P\u0159ibli\u017en\u011b 3 miliardy za\u0159\u00edzen\u00ed po cel\u00e9m sv\u011bt\u011b b\u011b\u017e\u00ed na <strong>Java<\/strong> a proto se p\u0159i jeho pou\u017e\u00edv\u00e1n\u00ed ud\u011blaly nejm\u00e9n\u011b 3 miliardy chyb. V tomto \u010dl\u00e1nku se zam\u011b\u0159\u00edme na to, jak ned\u011blat dal\u0161\u00ed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Z\u00edsk\u00e1n\u00ed v\u00fdjimky pro soub\u011b\u017enou modifikaci<\/h2>\n\n\n\n<p>To je zdaleka nej\u010dast\u011bj\u0161\u00ed chyba, se kterou jsem se setkal. V po\u010d\u00e1tc\u00edch sv\u00e9 kari\u00e9ry jsem ji ud\u011blal tak\u00e9 mnohokr\u00e1t. K t\u00e9to chyb\u011b doch\u00e1z\u00ed, kdy\u017e se sna\u017e\u00edte upravit kolekci v pr\u016fb\u011bhu iterace. Na adrese <code>ConcurrentModificationException<\/code> m\u016f\u017ee b\u00fdt tak\u00e9 vyvol\u00e1n p\u0159i pr\u00e1ci s v\u00edce vl\u00e1kny, ale nyn\u00ed se zam\u011b\u0159\u00edme na z\u00e1kladn\u00ed sc\u00e9n\u00e1\u0159.<\/p>\n\n\n\n<p>P\u0159edpokl\u00e1dejme, \u017ee m\u00e1te <code>Sb\u00edrka<\/code> u\u017eivatel\u016f, z nich\u017e n\u011bkte\u0159\u00ed jsou dosp\u011bl\u00ed a n\u011bkte\u0159\u00ed ne. Va\u0161\u00edm \u00fakolem je odfiltrovat d\u011bti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">for (User : users) {\n\n   if (!user.isAdult()) {\n\n       users.remove(u\u017eivatel);\n\n   }\n\n}\n<\/code><\/pre>\n\n\n\n<p>Spu\u0161t\u011bn\u00ed v\u00fd\u0161e uveden\u00e9ho <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/what-is-code-refactoring\/\">k\u00f3d<\/a> kon\u010d\u00ed z\u00edsk\u00e1n\u00edm <code>ConcurrentModificationException<\/code>. Kde jsme ud\u011blali chybu? P\u0159ed dokon\u010den\u00edm iterace jsme se pokusili odstranit n\u011bkter\u00e9 prvky. To vyvolalo v\u00fdjimku.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>V takov\u00e9m p\u0159\u00edpad\u011b m\u016f\u017ee pomoci n\u011bkolik p\u0159\u00edstup\u016f. V prvn\u00ed \u0159ad\u011b vyu\u017eijte <strong>Java<\/strong> 8's goodness - <code>Stream<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">List adults = users.stream()\n\n       .filter(User::isAdult)\n\n       .toList();\n<\/code><\/pre>\n\n\n\n<p>Pou\u017eit\u00ed <code>Predik\u00e1t<\/code> filtru jsme provedli obr\u00e1cenou funkci ne\u017e u p\u0159edchoz\u00ed podm\u00ednky - nyn\u00ed ur\u010dujeme prvky, kter\u00e9 maj\u00ed b\u00fdt zahrnuty. V\u00fdhodou takov\u00e9ho p\u0159\u00edstupu je, \u017ee po odstran\u011bn\u00ed lze snadno \u0159et\u011bzit dal\u0161\u00ed funkce, nap\u0159. <code>mapa<\/code>. Ale proboha. pros\u00edm, nepokou\u0161ejte se d\u011blat n\u011bco podobn\u00e9ho jako n\u00ed\u017ee:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">users.stream()\n\n       .filter(v -&gt; !v.isAdult())\n\n       .forEach(users::remove);\n<\/code><\/pre>\n\n\n\n<p>Mohl by tak\u00e9 skon\u010dit v <code>ConcurrentModificationException<\/code> proto\u017ee upravujete zdroj proudu. M\u016f\u017ee to tak\u00e9 zp\u016fsobit dal\u0161\u00ed v\u00fdjimky, kter\u00e9 nebude snadn\u00e9 odladit.<\/p>\n\n\n\n<p>Vy\u0159e\u0161it <code>ConcurrentModificationException<\/code> v jednovl\u00e1knov\u00e9m sc\u00e9n\u00e1\u0159i. m\u016f\u017eete tak\u00e9 p\u0159ej\u00edt na p\u0159\u00edm\u00e9 pou\u017eit\u00ed <code>Iter\u00e1tor<\/code> a jeho <code>remove()<\/code> nebo m\u016f\u017eete jednodu\u0161e prvky b\u011bhem iterace neodstra\u0148ovat. Doporu\u010duji v\u0161ak pou\u017e\u00edt <code>Proudy<\/code> - je rok 2022.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Ukl\u00e1d\u00e1n\u00ed hesel jako \u0159et\u011bzc\u016f<\/h2>\n\n\n\n<p>Proto\u017ee se st\u00e1le v\u00edce zab\u00fdv\u00e1m kybernetickou bezpe\u010dnost\u00ed, nebyl bych k sob\u011b up\u0159\u00edmn\u00fd, kdybych se nezm\u00ednil alespo\u0148 o jedn\u00e9 z nich. <strong>Chyba v jazyce Java<\/strong> co\u017e m\u016f\u017ee v\u00e9st k probl\u00e9mu se zabezpe\u010den\u00edm. Ukl\u00e1d\u00e1n\u00ed hesel p\u0159ijat\u00fdch od u\u017eivatel\u016f do <code>\u0158et\u011bzec<\/code> objekt je p\u0159esn\u011b to, \u010deho byste se m\u011bli b\u00e1t.<\/p>\n\n\n\n<p>Probl\u00e9m (nebo mo\u017en\u00e1 v\u00fdhoda) <code>\u0158et\u011bzec<\/code> je, \u017ee je nem\u011bnn\u00fd. V kybernetick\u00e9m sv\u011bt\u011b to p\u0159edstavuje potenci\u00e1ln\u00ed hrozbu, proto\u017ee nelze vymazat hodnotu jednou vytvo\u0159en\u00e9ho souboru. <code>\u0158et\u011bzec<\/code> objekt. \u00dato\u010dn\u00edk, kter\u00fd z\u00edsk\u00e1 p\u0159\u00edstup do pam\u011bti po\u010d\u00edta\u010de, v n\u00ed m\u016f\u017ee naj\u00edt hesla v prost\u00e9m textu.<\/p>\n\n\n\n<p>Za druh\u00e9, \u0159et\u011bzce v <strong>Java<\/strong> jsou internetizov\u00e1ny JVM a ulo\u017eeny v prostoru PermGen nebo v prostoru haldy. P\u0159i vytv\u00e1\u0159en\u00ed <code>\u0158et\u011bzec<\/code> objekt se ulo\u017e\u00ed do mezipam\u011bti a odstran\u00ed se teprve tehdy, kdy\u017e Garbage Collector za\u010dne vykon\u00e1vat svou pr\u00e1ci. Nem\u016f\u017eete si b\u00fdt jisti, kdy bude heslo z fondu \u0159et\u011bzc\u016f odstran\u011bno, proto\u017ee Garbage Collector pracuje nedeterministicky.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu vyhnout?<\/h3>\n\n\n\n<p>Doporu\u010den\u00fd postup je pou\u017e\u00edt <code>char[]<\/code> nebo je\u0161t\u011b l\u00e9pe knihovnu, kter\u00e1 podporuje ukl\u00e1d\u00e1n\u00ed hesel jako <code>char[]<\/code>, nap\u0159.<a href=\"https:\/\/github.com\/Password4j\/password4j\">Password4j<\/a>. Na str\u00e1nk\u00e1ch . <code>char[]<\/code> pole je prom\u011bnliv\u00e9 a lze jej po inicializaci upravovat. Po zpracov\u00e1n\u00ed hesla sta\u010d\u00ed vymazat pole <code>char[]<\/code> pole hesel t\u00edm, \u017ee do n\u011bj zap\u00ed\u0161e n\u00e1hodn\u00e9 znaky. V p\u0159\u00edpad\u011b, \u017ee \u00fato\u010dn\u00edci z\u00edskaj\u00ed p\u0159\u00edstup do pam\u011bti po\u010d\u00edta\u010de, uvid\u00ed pouze n\u011bkter\u00e9 n\u00e1hodn\u00e9 hodnoty, kter\u00e9 nemaj\u00ed s hesly u\u017eivatel\u016f nic spole\u010dn\u00e9ho.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. (Ne)zpracov\u00e1n\u00ed v\u00fdjimek<\/h2>\n\n\n\n<p>Nov\u00e1\u010dci, ale i pokro\u010dilej\u0161\u00ed program\u00e1to\u0159i nev\u011bd\u00ed, jak spr\u00e1vn\u011b zach\u00e1zet s v\u00fdjimkami. Jejich hlavn\u00edm proh\u0159e\u0161kem je, \u017ee je prost\u011b ignoruj\u00ed. TO NIKDY NEN\u00cd DOBR\u00dd P\u0158\u00cdSTUP.<\/p>\n\n\n\n<p>Bohu\u017eel v\u00e1m nem\u016f\u017eeme nab\u00eddnout st\u0159\u00edbrn\u00e9 \u0159e\u0161en\u00ed, kter\u00e9 by se hodilo pro ka\u017ed\u00e9ho. <code>V\u00fdjimka<\/code>s' sc\u00e9n\u00e1\u0159, na kter\u00fd naraz\u00edte. Mus\u00edte se zamyslet nad ka\u017ed\u00fdm p\u0159\u00edpadem zvl\u00e1\u0161\u0165. M\u016f\u017eeme v\u00e1m v\u0161ak poradit, jak s t\u00edmto t\u00e9matem za\u010d\u00edt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p>Ignorov\u00e1n\u00ed <code>V\u00fdjimka<\/code>s nen\u00ed nikdy dobr\u00fd postup. <code>V\u00fdjimka<\/code>jsou zde z n\u011bjak\u00e9ho d\u016fvodu, tak\u017ee byste je nem\u011bli ignorovat.<\/p>\n<\/li>\n\n\n\n<li>\n<p><code>try {...} catch(V\u00fdjimka e) { log(e); }<\/code> je z\u0159\u00eddkakdy spr\u00e1vn\u00fd p\u0159\u00edstup k <code>V\u00fdjimka<\/code> manipulace.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Rethrow <code>V\u00fdjimka<\/code>, zobrazit u\u017eivateli dialogov\u00e9 okno s chybou nebo alespo\u0148 p\u0159idat vy\u010derp\u00e1vaj\u00edc\u00ed zpr\u00e1vu do protokolu.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Pokud jste nechali v\u00fdjimky neo\u0161et\u0159en\u00e9 (co\u017e byste nem\u011bli), vysv\u011btlete to alespo\u0148 v koment\u00e1\u0159i.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">4. Pou\u017e\u00edv\u00e1n\u00ed nulov\u00fdch hodnot<\/h2>\n\n\n\n<p>Bohu\u017eel je pom\u011brn\u011b b\u011b\u017en\u00e9, \u017ee funkce Javy v n\u011bkter\u00fdch p\u0159\u00edpadech vrac\u00ed hodnotu <code>null<\/code>. Probl\u00e9m spo\u010d\u00edv\u00e1 v tom, \u017ee takov\u00e1 funkce nut\u00ed sv\u00e9ho klienta, aby u v\u00fdsledku provedl kontrolu null. Bez n\u00ed by <code>NullPointerException<\/code> se vyhod\u00ed.<\/p>\n\n\n\n<p>Dal\u0161\u00ed v\u011bc\u00ed je p\u0159ed\u00e1n\u00ed <code>null<\/code> hodnotu. Pro\u010d t\u011b to v\u016fbec napadlo? V takov\u00e9m p\u0159\u00edpad\u011b mus\u00ed funkce prov\u00e9st kontrolu null. Kdy\u017e pou\u017e\u00edv\u00e1te knihovny t\u0159et\u00edch stran, nem\u016f\u017eete m\u011bnit vnit\u0159ek funkc\u00ed. Co tedy?<\/p>\n\n\n\n<p>Je\u0161t\u011b d\u016fle\u017eit\u011bj\u0161\u00ed je, \u017ee ostatn\u00ed v\u00fdvoj\u00e1\u0159i, kte\u0159\u00ed si p\u0159e\u010dtou v\u00e1\u0161 k\u00f3d a uvid\u00ed, \u017ee p\u0159ed\u00e1v\u00e1te <code>null<\/code> budou pravd\u011bpodobn\u011b zmateni, pro\u010d jste zvolili tak bizarn\u00ed zp\u016fsob implementace funkce.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>Nevracejte <code>null<\/code> hodnotu! Nikdy! V p\u0159\u00edpad\u011b, \u017ee va\u0161e funkce vrac\u00ed n\u011bjak\u00fd typ <code>Sb\u00edrka<\/code>, m\u016f\u017eete prost\u011b vr\u00e1tit pr\u00e1zdn\u00fd <code>Sb\u00edrka<\/code>. Pokud pracujete s jednotliv\u00fdmi objekty, m\u016f\u017eete vyu\u017e\u00edt n\u00e1vrhov\u00fd vzor null object. Vzhledem k tomu, \u017ee <strong>Java<\/strong> 8, je implementov\u00e1n jako <code>Voliteln\u011b<\/code>. Jinak je nejm\u00e9n\u011b doporu\u010dovan\u00fdm p\u0159\u00edstupem vznesen\u00ed <code>V\u00fdjimka<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. T\u011b\u017ek\u00e9 spojov\u00e1n\u00ed \u0159et\u011bzc\u016f<\/h2>\n\n\n\n<p>Doufejme, \u017ee to nen\u00ed chyba, kterou d\u011bl\u00e1te, proto\u017ee je to nejobl\u00edben\u011bj\u0161\u00ed (nebo mo\u017en\u00e1 druh\u00e1 nejobl\u00edben\u011bj\u0161\u00ed po FizzBuzz) ot\u00e1zka p\u0159i pohovoru. Jak u\u017e byste m\u011bli v\u011bd\u011bt, a <code>\u0158et\u011bzec<\/code> objekt je nem\u011bnn\u00fd v <strong>Java<\/strong> - jakmile je jednou vytvo\u0159en, nelze jej upravit. Tak\u017ee spojov\u00e1n\u00ed <code>\u0158et\u011bzec<\/code> liter\u00e1l\u016f znamen\u00e1 spoustu zbyte\u010dn\u00e9 alokace pam\u011bti. Spojov\u00e1n\u00ed <code>\u0158et\u011bzec<\/code> objekt\u016f poka\u017ed\u00e9 vy\u017eaduje vytvo\u0159en\u00ed do\u010dasn\u00e9ho <code>StringBuilder<\/code> a zm\u011bnit jej zp\u011bt na \u0159et\u011bzec. Proto je toto \u0159e\u0161en\u00ed naprosto nevhodn\u00e9, pokud chceme kombinovat velk\u00e9 mno\u017estv\u00ed znak\u016f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>Chcete-li tento probl\u00e9m vy\u0159e\u0161it, pou\u017eijte <code>StringBuilder<\/code>. Vytv\u00e1\u0159\u00ed prom\u011bnliv\u00fd objekt, se kter\u00fdm lze snadno manipulovat. Samoz\u0159ejm\u011b m\u016f\u017eete v\u017edy pou\u017e\u00edt <code>StringBuffer<\/code> pokud v\u00e1\u0161 <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/why-do-projects-fail\/\">projekt<\/a> se pou\u017e\u00edv\u00e1 v soub\u011b\u017en\u00e9m kontextu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Nepou\u017e\u00edv\u00e1n\u00ed st\u00e1vaj\u00edc\u00edch \u0159e\u0161en\u00ed<\/h2>\n\n\n\n<p>P\u0159i v\u00fdvoji softwaru je znalost z\u00e1klad\u016f jazyka, ve kter\u00e9m p\u00ed\u0161ete, nutnost\u00ed, ale nesta\u010d\u00ed. Mnoho algoritmick\u00fdch probl\u00e9m\u016f, na kter\u00e9 jste narazili p\u0159i implementaci nov\u00e9 funkce, u\u017e vy\u0159e\u0161il n\u011bkdo jin\u00fd. P\u0159\u00edli\u0161 \u010dasto jsem vid\u011bl, jak n\u011bkdo implementuje bezpe\u010dnostn\u00ed algoritmus od nuly. Takov\u00fd p\u0159\u00edstup je n\u00e1chyln\u00fd k chyb\u00e1m. Jeden \u010dlov\u011bk nem\u016f\u017ee takov\u00e9 slo\u017eit\u00e9 \u0159e\u0161en\u00ed d\u016fkladn\u011b otestovat. Kolektivn\u00ed znalosti <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/how-to-lead-software-development-team\/\">t\u00fdm<\/a> kter\u00e1 se skl\u00e1d\u00e1 ze st\u0159edn\u011b pokro\u010dil\u00fdch program\u00e1tor\u016f, je t\u00e9m\u011b\u0159 v\u017edy lep\u0161\u00ed ne\u017e velikost jednoho z\u00e1zra\u010dn\u00e9ho d\u00edt\u011bte. <strong><a href=\"https:\/\/thecodest.co\/cs\/dictionary\/java-developer\/\">V\u00fdvoj\u00e1\u0159 v jazyce Java<\/a><\/strong>. Nen\u00ed t\u0159eba znovu vynal\u00e9zat kolo - sta\u010d\u00ed p\u0159izp\u016fsobit st\u00e1vaj\u00edc\u00ed \u0159e\u0161en\u00ed sv\u00fdm pot\u0159eb\u00e1m.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>Zkuste vyhledat knihovny, kter\u00e9 se zab\u00fdvaj\u00ed probl\u00e9mem, na kter\u00e9m pracujete. Pokuste se naj\u00edt podobn\u00e1 \u0159e\u0161en\u00ed. Mnoho knihoven, kter\u00e9 jsou k dispozici na port\u00e1lu <a href=\"https:\/\/thecodest.co\/cs\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> jsou zdarma a byly vylad\u011bny a otestov\u00e1ny zku\u0161en\u00fdmi v\u00fdvoj\u00e1\u0159i a celou komunitou Javy. Nebojte se je vyu\u017e\u00edt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Nedostatek \u010dasu na psan\u00ed test\u016f<\/h2>\n\n\n\n<p>Je l\u00e1kav\u00e9 v\u011b\u0159it, \u017ee n\u00e1\u0161 k\u00f3d bude v\u017edy fungovat perfektn\u011b. Nenaps\u00e1n\u00ed test\u016f pro k\u00f3d je nejhor\u0161\u00ed h\u0159\u00edch. <strong>Java <a href=\"https:\/\/thecodest.co\/cs\/blog\/hire-software-developers\/\">v\u00fdvoj\u00e1\u0159i softwaru<\/a><\/strong>. Mnoho z nich <a href=\"https:\/\/thecodest.co\/cs\/blog\/why-us-companies-are-opting-for-polish-developers\/\">n\u00e1s<\/a> up\u0159ednost\u0148uj\u00ed manu\u00e1ln\u00ed a pr\u016fzkumn\u00e9 testy p\u0159ed jednotkov\u00fdmi testy, co\u017e je nesmysl.  Pro\u010d ztr\u00e1cet \u010das psan\u00edm test\u016f, kdy\u017e se m\u016f\u017eete soust\u0159edit na to, aby v\u00e1\u0161 projekt obsahoval ten nejlep\u0161\u00ed k\u00f3d na sv\u011bt\u011b, kter\u00fd ROZHODN\u011a neobsahuje \u017e\u00e1dn\u00e9 chyby?&amp;ltjoke&gt;. Ukazuje se, \u017ee realita je krut\u00e1 a bez psan\u00ed test\u016f nem\u016f\u017eeme poskytovat kvalitn\u00ed k\u00f3d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>Pro sv\u016fj k\u00f3d byste m\u011bli v\u017edy p\u0159ipravit testy. V\u00edm, \u017ee p\u0159\u00edstup TDD nen\u00ed tak snadn\u00fd na \u00fadr\u017ebu, ale m\u011bli byste alespo\u0148 zajistit testy, kter\u00e9 pokryj\u00ed v\u0161echny podm\u00ednky, za kter\u00fdch m\u016f\u017ee b\u00fdt v\u00e1\u0161 k\u00f3d spu\u0161t\u011bn. To zahrnuje i testov\u00e1n\u00ed v\u00fdjime\u010dn\u00fdch situac\u00ed. Jednotkov\u00e9 testy jsou nezbytn\u00e9. Mus\u00edte je poskytnout pro ka\u017edou funkci sv\u00e9ho projektu, pokud chcete m\u00edt jistotu, \u017ee v\u00e1\u0161 k\u00f3d bude snadno refaktorovateln\u00fd a roz\u0161i\u0159iteln\u00fd p\u0159i dal\u0161\u00edm v\u00fdvoji.&nbsp;<\/p>\n\n\n\n<p>Je\u0161t\u011b jedna v\u011bc. Udr\u017eujte vysok\u00fd standard testovac\u00edho k\u00f3du - vyplat\u00ed se to. To je rada str\u00fd\u010dka Boba a j\u00e1 s n\u00ed naprosto souhlas\u00edm.<\/p>\n\n\n\n<p>Krom\u011b toho nezapom\u00ednejte na dal\u0161\u00ed typy test\u016f. Integra\u010dn\u00ed testy jsou v\u011bc\u00ed, kterou byste m\u011bli zv\u00e1\u017eit v ka\u017ed\u00e9m projektu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Zapom\u00edn\u00e1n\u00ed na modifik\u00e1tory p\u0159\u00edstupu<\/h2>\n\n\n\n<p>Soukrom\u00e9 a ve\u0159ejn\u00e9, \u017ee? Jak na n\u011b m\u016f\u017eeme zapomenout. Uk\u00e1zalo se, \u017ee jich je v\u00edc. Kdy\u017e jste se poprv\u00e9 za\u010dali u\u010dit <strong>Java<\/strong>, jste se ur\u010dit\u011b dozv\u011bd\u011bli o chr\u00e1n\u011bn\u00fdch modifik\u00e1torech p\u0159\u00edstupu. V n\u011bkter\u00fdch p\u0159\u00edpadech mohou b\u00fdt u\u017eite\u010dn\u00e9, proto se vyplat\u00ed o jejich existenci v\u011bd\u011bt.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/cs\/blog\/the-right-way-to-find-top-java-developers\/\">V\u00fdvoj\u00e1\u0159i v jazyce Java<\/a><\/strong> \u010dasto zapom\u00ednaj\u00ed na rozsah bal\u00ed\u010dku. Je snadn\u00e9 si na jeho pou\u017eit\u00ed nevzpomenout, proto\u017ee je implicitn\u00ed a nevy\u017eaduje \u017e\u00e1dn\u00fd <strong>Java<\/strong> kl\u00ed\u010dov\u00e1 slova. D\u016fle\u017eit\u00fd je rozsah bal\u00ed\u010dku. Umo\u017e\u0148uje testovat chr\u00e1n\u011bnou metodu. Chr\u00e1n\u011bn\u00e9 polo\u017eky jsou p\u0159\u00edstupn\u00e9 z cesty k testovac\u00ed t\u0159\u00edd\u011b, pokud je bal\u00ed\u010dek stejn\u00fd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>Nezapome\u0148te na chr\u00e1n\u011bn\u00fd modifik\u00e1tor a na to, \u017ee obor bal\u00ed\u010dku umo\u017e\u0148uje jeho testov\u00e1n\u00ed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pou\u017eit\u00ed \u010dist\u00e9ho JavaEE nam\u00edsto jara<\/h2>\n\n\n\n<p>Dal\u0161\u00ed krok po u\u010den\u00ed <strong>Java<\/strong> SE je nau\u010dit se provozovat <strong>Java<\/strong> na serverech, jak vytvo\u0159it aplikaci podnikov\u00e9 \u00farovn\u011b.<\/p>\n\n\n\n<p>Nov\u00e1\u010dci se \u010dasto dost\u00e1vaj\u00ed do pasti, kdy\u017e se u\u010d\u00ed JavaEE, proto\u017ee o n\u00ed existuje obrovsk\u00e9 mno\u017estv\u00ed v\u00fdukov\u00fdch program\u016f. Dokonce i \"My\u0161len\u00ed v Jav\u011b <strong>Program\u00e1to\u0159i v jazyce Java<\/strong>', zmi\u0148uje JavaEE a ne\u0159\u00edk\u00e1 nic o jin\u00fdch mo\u017enostech.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se tomu mohu vyhnout?<\/h3>\n\n\n\n<p>JavaEE je p\u00edsn\u00ed minulosti. V dne\u0161n\u00ed dob\u011b se pou\u017e\u00edv\u00e1 Spring a Java EE je jen p\u0159\u00edjemn\u00e1 v\u011bc. Ka\u017ed\u00e1 modern\u00ed aplikace na podnikov\u00e9 \u00farovni pou\u017e\u00edv\u00e1 Spring, tak\u017ee byste m\u011bli d\u016frazn\u011b zv\u00e1\u017eit, zda se nau\u010dit <a href=\"https:\/\/spring.io\/guides\">zde<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/calendly.com\/the-codest-java-consulting\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/meeting_java_expert.png\" alt=\"Seznamte se s odborn\u00edkem na Javu\"\/><\/a><\/figure>\n\n\n\n<p><strong>P\u0159e\u010dt\u011bte si v\u00edce:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">Spr\u00e1vn\u00fd zp\u016fsob, jak naj\u00edt \u0161pi\u010dkov\u00e9 v\u00fdvoj\u00e1\u0159e Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Nejlep\u0161\u00ed typy projekt\u016f pro Javu<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/top-programming-languages-for-fintech-companies\">Nejlep\u0161\u00ed programovac\u00ed jazyky pro fintech spole\u010dnosti<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Jak\u00fdch chyb byste se m\u011bli vyvarovat p\u0159i programov\u00e1n\u00ed v jazyce Java? V n\u00e1sleduj\u00edc\u00edm d\u00edle na tuto ot\u00e1zku odpov\u00edme.<\/p>","protected":false},"author":2,"featured_media":3005,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[15,8],"tags":[],"class_list":["post-3004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fintech","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>9 Mistakes to Avoid While Programming in Java - The Codest<\/title>\n<meta name=\"description\" content=\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/cs\/blog\/9-chyb-kterych-se-vyvarujte-pri-programovani-v-jazyce-java\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"9 Mistakes to Avoid While Programming in Java\" \/>\n<meta property=\"og:description\" content=\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/cs\/blog\/9-chyb-kterych-se-vyvarujte-pri-programovani-v-jazyce-java\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-08T11:25:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T13:13:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"9 Mistakes to Avoid While Programming in Java\",\"datePublished\":\"2022-07-08T11:25:57+00:00\",\"dateModified\":\"2026-03-09T13:13:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"},\"wordCount\":1643,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"articleSection\":[\"Fintech\",\"Software Development\"],\"inLanguage\":\"cs-CZ\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\",\"name\":\"9 Mistakes to Avoid While Programming in Java - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"datePublished\":\"2022-07-08T11:25:57+00:00\",\"dateModified\":\"2026-03-09T13:13:14+00:00\",\"description\":\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#breadcrumb\"},\"inLanguage\":\"cs-CZ\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"9 Mistakes to Avoid While Programming in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs-CZ\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/cs\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"9 chyb, kter\u00fdch se vyvarujte p\u0159i programov\u00e1n\u00ed v jazyce Java - The Codest","description":"Prozkoumejte 9 chyb v k\u00f3dov\u00e1n\u00ed jazyka Java, kter\u00fdch by se m\u011bli v\u00fdvoj\u00e1\u0159i vyvarovat, aby zlep\u0161ili kvalitu k\u00f3du, bezpe\u010dnost a v\u00fdkon modern\u00edch aplikac\u00ed v jazyce Java.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/cs\/blog\/9-chyb-kterych-se-vyvarujte-pri-programovani-v-jazyce-java\/","og_locale":"cs_CZ","og_type":"article","og_title":"9 Mistakes to Avoid While Programming in Java","og_description":"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.","og_url":"https:\/\/thecodest.co\/cs\/blog\/9-chyb-kterych-se-vyvarujte-pri-programovani-v-jazyce-java\/","og_site_name":"The Codest","article_published_time":"2022-07-08T11:25:57+00:00","article_modified_time":"2026-03-09T13:13:14+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"9 Mistakes to Avoid While Programming in Java","datePublished":"2022-07-08T11:25:57+00:00","dateModified":"2026-03-09T13:13:14+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"wordCount":1643,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","articleSection":["Fintech","Software Development"],"inLanguage":"cs-CZ","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","url":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","name":"9 chyb, kter\u00fdch se vyvarujte p\u0159i programov\u00e1n\u00ed v jazyce Java - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","datePublished":"2022-07-08T11:25:57+00:00","dateModified":"2026-03-09T13:13:14+00:00","description":"Prozkoumejte 9 chyb v k\u00f3dov\u00e1n\u00ed jazyka Java, kter\u00fdch by se m\u011bli v\u00fdvoj\u00e1\u0159i vyvarovat, aby zlep\u0161ili kvalitu k\u00f3du, bezpe\u010dnost a v\u00fdkon modern\u00edch aplikac\u00ed v jazyce Java.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#breadcrumb"},"inLanguage":"cs-CZ","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"]}]},{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"9 Mistakes to Avoid While Programming in Java"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs-CZ"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/cs\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/comments?post=3004"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3004\/revisions"}],"predecessor-version":[{"id":7701,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3004\/revisions\/7701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media\/3005"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media?parent=3004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/categories?post=3004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/tags?post=3004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}