Aby test neselhal na první­ assert (JUnit 5)

Už jsem psal o tom, jak v JUnit 4 dosáhnout toho, aby test neselhal na první assert. JUnit 5 již dosáhl milestone 2, tak je potřeba se podívat, jak s novou verzí API dosáhnout téhož.

GeeCON Prague 2016, den 1

Vybalím to na vás hned na začátku: Je to dobrá konference, stojí za to, na ni jít. Ať chcete držet prst na tepu doby (= bleeding edge), mít všeobecný přehled, co se v doméně děje, anebo najít inspiraci - to vše tady najdete v rozumně vyvážené symbióze.

Mockování a úskalí času v Javě 8

Rozhodl jsem se, že začnu používat java.time.* místo java.util.Date. Jednak kvůli API a taky proto, že jsou nové třídy immutable. Chtěl bych se podělit o to, jak jsem se při tom nachytal.

Java konferencia Geecon bude po druhý krát aj v Prahe - 22.-23. říjen 2015

Geecon
Praha, 22.-23. October, CineStar Praha – Černý MostSvetoznáma konferencia Geecon po druhý krát organizovaná aj v Prahe. Bol som minulý rok, super zážitok a veľké množstvo nových zaujímavých poznatkov.Java and JVM based technologies, dynamic languages, enterprise architectures, patterns, distributed computing ... October 22-23, 2015 Prague,...

Refactoring: HashMapové peklo

Proč je používání map místo pojo objektů špatné? Jak moc? Co se s tím dá dělat?

JSR 303 Validation Messages Fairytale

Have you ever had a need to change the name and/or directory for ValidationMessages.properties? No? Lucky you! By default you should place the ValidationMessages.properties file in your project classpath root, and if you don’t like it’s name (as I don’t) or would like to organize all messages in a separate directory (as I like), than you...

Serializujte optimálně skrze Kryo

Je zajímavé, že tak základní věc, jako serializace objektů do binárního streamu je v Javě implementovaná neoptimálně - a to jak z hlediska velikosti výsledné binární podoby, tak i rychlosti s jakou je vytvořena. Míst, kde se serializace objektů hodí je celá řada, a proto je určitě v zájmu každého kvalitního vývojáře zamyslet se, jestli to nejde...

Logovanie z webových aplikácií cez logstash do ElasticSearch

Ukážeme si, ako možno logovať z webovej aplikácie rovno do ElasticSearchu, nad ktorým možno potom fulltextovo vyhľadávať. Využijeme pritom Maven, slf4j, logback, logstash a ElasticSearch.

Maven repozitář v projektu – proč a jak

Přestože je javovská část programátorského světa plná open-sourcu občas není zbytí a je třeba použít nějaký closed-souce. Tedy knihovny buď placené a nebo knihovny obsahující pomocné třídy pro API k nějakému magickému a tedy i velmi drahému produktu. Takové knihovny nelze přirozeně stahnout z žádného veřejného maven repozitáře.Jak tedy...

Formio, lightweight knihovna pro snadnou tvorbu formulářů

Formio, lightweight knihovna pro zpracování formulářů v Javě, si klade za cíl, co nejvíce usnadnit tvorbu formulářů, a to pomocí API, které je snadno použitelné, konfigurovatelné a minimalizuje prostor pro případné chyby.

Google Guava – bilancování v předvečer releasu Javy 8

V článku shrnuji své zkušenosti z používáním utility knihovny Google Guava a rozebírám její podobnost s přicházející Javou 8. Začněte stahovat JDK8 a až článek dočtete do konce, bude už určitě stahování dokončeno! :-)

Hotswap Agent - neomezený reload tříd a resource za běhu

HotswapAgent je open source/zdarma alternativa k JRebel. Pomocí DCEVM rozšiřuje možnosti standardního Java hotswap mechanismu a obsahuje podporu pro refresh konfigurace oblíbených frameworků (Spring, Hibernate...). Článek popisuje historii, motivaci ke vzniku a odkaz k instalaci.

Inherit javadoc

Jak píšete javadoc u implementací rozhraní nebo u překrytých metod? Léta jsem používal výchozí generovaný javadoc v Eclipse (non-Javadoc) @see, později jsem přešel na standardní {@inheritDoc} Nedávno jsem si na twitteru stěžoval, že v Intellij Idea není možné si potřebnou šablonu upravit. Připadám si jak z té historky, ve které dcera celý život...

Trimou - další implementace šablonového systému Mustache


Přebal Javy

Eseje Paula Grahama jsou tak úžasné čtení, že jsem se rozhodl (s jeho laskavým svolením), že některé přeložím do češtiny. Začínám esejí ještě z pravěku Javy. Sami posuďte, na kolik je text Java's Cover po dvanácti letech (možná i s přihlédnutím k tanečkům ohledně další verze) aktuální.Tato esej vznikla z diskuse s několika dalšími programátory o...

GeeCON 2013 - poznámky z konference

Ve dnech 15.-17.5.2013 jsem poprvé navštívil konferenci GeeCON v polském Krakówě. Své dojmy a mnoho věcí, které mne zaujaly, jsem zaznamenal do blogu. Rád bych na tomto místě - stejně jako Honza Novotný, s nímž jsem jel - poděkoval společnosti YSoft za volnou vstupenku. A teď už tudy prosím...

GeeCON – Krakow 2013

Forrestí výprava opět vyrazila do Polska na Java konferenci GeeCON a nebyl bych to já, kdybych vám nepřinesl detailní reportáž o věcech, které mne tam zaujaly. Letos byl můj výlet sponzorován brněnskou firmou YSoft, která byla platinovým sponzorem celé konference a které bych chtěl prostřednictvím tohoto článku také poděkovat. Na společnou výpravu...

Dizajnové čriepky: anonymné vnútorné triedy

Anonymné vnútorné triedy vyzerajú v Jave strašne, ale je to otázka zvyku. Koniec koncov, nič iné ani neostáva, používajú sa na každom rohu. Ako to funguje? Ako sa možno vysomáriť z ich zápisu?

Java 8 - Je tu konečně revoluce?

O Javě 8 tento rok ještě hodně uslyšíme a možná se i dočkáme jejího vydání. Byla jedním z témat na posledním setkání CZJUG a i my jsme si před nedávnem udělali interní prezentaci, o kterou se s vámi chceme podělit.

Glassfish JMS broker perzistující zprávy do Sybase ASE

How-to připojení Glassfish JMS Broker k Sybase ASE.

RuleChain - pořadí JUnit interceptorů

Již dvakrát jsem psal o tom, jak na interceptor JUnit testů. Mojí motivací byly screenshoty Selenium testů, ale jen když selžou. Prvním způsobem je vlastní anotace @AfterFailure, což mimo jiné vyžaduje i vlastní test runner. V pozdější verzi JUnit se objevila třída TestWatchman (již deprecated). Největší nevýhodou bylo, že se volá až po metodě...

Maven, buildovací a konfigurační profily

Na projektu je většinou potřeba řešit nasazení na různá prostředí, s čímž souvisí změna konfigurací. Maven umožňuje několik způsobů, jak tuto potřebu řešit. Na blogu SoftWare Samuraj vyšel článek popisující jednu z možností - použití filtrování a buildovacích profilů.

Quartz Scheduler a dynamické plánování úloh

Na zákaznickém projektu bylo potřeba umožnit asynchronní spouštění různých handlerů, registrovaných jako Spring bean. Typicky jde o případ, kdy uživatel iniciuje vykonání nějaké činnosti, která může trvat desítky sekund nebo dokonce minut. Zároveň jsme potřebovali, aby řešení bylo persistentní, a tedy aby se naplánované úlohy neztrácely při pádu...

JAXB and Commons pool

Názorný príklad použitia cache a pool-u na zlepšenie výkonu JAXB.

IntelliJ Idea pro vývoj v Javě

Většina lidí si vývoj v Javě spojí s jedním ze dvou nejpoužívanějších IDE – Eclipse a Netbeans. Třetí, donedávna čistě komerční IDE je často neprávem přehlíženo. Před pár dny byla uvolněna nová verze IDE IntelliJ Idea s číslem 11. V článku se budu snažit shrnout věci, které jsem si oblíbil a chybí nebo jsou v horším provedení u konkurence...

Pohled pod kapotu JVM (1.část - prohlížení a modifikace bajtkódu)

V osmnácté části poněkud nepravidelně vycházejícího seriálu o programovacím jazyce Java i o vlastnostech JVM se budeme zabývat prohlížením a modifikací bajtkódu, do něhož jsou překládány zdrojové texty psané (nejenom) v Javě. Modifikace bajtkódu je často používána nástroji typu Cobertura, EMMA či AspectJ....

Párovacie algoritmy

K napísaniu tohoto príspevku ma priviedla potreba prepísať kus kódu tak aby bol rýchlejší. Keďže som sa už s podobným problémom stretol viackrát, tak ho považujem za celkom všedný, ale nechcem ho popisovať všeobecne, preto som si vymyslel príklad s faktúrami a platbami. Všeobecný popis problému by znel asi takto: Máme dve množiny...

Pokročilé integrační buildy

Pevně veřím, že continuous integration je již zažitý standard na všech, nebo alespoň na těch jednodušších, projektech. Chtěl bych rozptýlit případné obavy z konfigurace složitějších projektů. Ukážeme si, jak pouhým mvn clean verify nastartujeme celou SOA platformu a nad ní spustíme selenium testy.

Java deJavu

Úsmevný pokus o dôkaz, že Matrix bol naprogramovaný v Jave inšpirovaný Disgruntled Bomb.

Java Double Quiz

Pro kolegy jsem si připravil krátký kvíz (3 otázky) na datový typ double v jazyce Java. Věřím, že pobaví i vás.

Ako na refaktoring kódu v Jave?

Indikátorom či kód je potrebné zrefaktorovať sú situácie, kedy sa v kóde prestávame orientovať. Najčastejšie problémy a ich riešenia uvádzam v tabuľke....

Využití komprimovaných ukazatelů na objekty v JVM

V dnešní části seriálu o novinkách, které můžeme najít v syntaxi a sémantice programovacího jazyka Java i v jeho virtuálním stroji, si popíšeme vlastnost, která sice byla původně plánována až pro oficiální verzi JDK 7, ale nakonec ji mohou využít i programátoři a uživatelé používající JDK 1.6.0 14 a samozřejmě také OpenJDK 6. Jedná se o zavedení...

Otevřená Java 2: OpenJDK, IcedTea a Java wars

Projekt OpenJDK se poměrně rychle etabloval u většiny distribucí. Něktěří možná zaslechli zmínku o projektu IcedTea - je to, či není fork OpenJDK? A co jsou to Java wars?

Novinky v JDK 7 (5) – projekt Lambda a anonymní funkce v příkladech

V páté části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje budeme pokračovat v popisu použití anonymních funkcí, které jsou implementovány v rámci projektu Lambda. Mezi typické možnosti využití anonymních funkcí patří implementace komparátorů, filtrů a podobně...

Java Native Interface: propojujeme Javu a C/C++ – 3

Tentokrát si předvedeme lokální, globální a slabé globální reference na javovské objekty.

Novinky v JDK 7 aneb mírný pokrok v mezích zákona – projekt Lambda

Ve čtvrté části seriálu o nových vlastnostech jazyka Java si řekneme o projektu Lambda, který sice není – a po přijetí plánu „B“ ani nebude – oficiální součástí JDK 7, ovšem tento projekt je možné poměrně snadným způsobem doinstalovat a odzkoušet i na současné verzi JDK 7 nebo OpenJDK 7.

Novinky v JDK 7 aneb mírný pokrok v mezích zákona (2)

Ve druhé části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje, které jsou zařazeny do JDK 7, si popíšeme další rozšíření syntaxe a sémantiky Javy. Jedná se především o nový operátor nazvaný „diamant" a taktéž o rozšířené možnosti bloku try-catch-delete.

Jak vytvořit java web aplikaci s podporou Spring a JPA

Nedávno se kolega ptal na to jak vytvořit a nakonfigurovat jednoduchou aplikaci využívající Spring IoC a JPA. Aplikace má sloužit jako platforma pro jednoduché testování a jedinou úlohou bylo ukládání a čtení několika málo entit. Potřeboval přidávat nové třídy do business logiky, psát testy a výstup na web. Namísto obvyklého RTFM jsem se...

Kdo s čím zachází, s tím také schází

Lukáš Křečan nedávno napsal o tom co ho štve na Javě. Já bych ho trošku podpořil, protože občas mám pocit, jako bych roztlačoval parní lokomotivu. V poslední době jsem rozcházel několik Java projektů pro pár vývojářů, kteří chtěli nastartovat webový vývoj a musel jsem se tedy hluboce stydět. Přestože mi Maven říká pane, tak rozběhnout plnohodnotný...

Jak to bude s Javou 7?

Poslední informace o aktuálním vývoji vypustil minulý týden ve svém blogu Mark Reinhold. Kupodivu stále mají problém s closures (projekt Lambda) a s modularitou (projekt Jigsaw). Kdo by to byl čekal. Jestli to nebude tím, že jsou to oboje dost zásadní změny. Přitom třeba slavný Jigsaw mi ještě letos na jaře připadal stále dost nedomyšlený. V zásadě...

Automatický update knihoven Ehcache a Quartz

Zdá se, že automatický update se stává populárním i mezi Java knihovnami. Co si myslíte vy o automatické kontrole aktuálnosti knihovny Ehcache a Quartz od firmy Terracotta?

Selenium a návrhový vzor Page Objects

Selenium používáme úspěšně už několik posledních projektů. Vždycky byly automatizované testy přínosem pro kvalitu aplikace a ušetřily obrovské množství rutinní práce testerům. Představa, že lze vytvořit Selenium test tak, že se "nakliká", a pak ho už budeme jen dokola pouštět, vezme hodně rychle za své. Je jasné, že některé části testů bude potřeba...

JUnit anotace @AfterFailure

Na automatické testování GUI našeho produktu Orinoco používáme framework Selenium. Pro identifikaci a opravu chyby je často klíčové vědět, co uživatel(respektive selenium test) v okamžiku chyby viděl. Selenium umí uložit snímek obrazovky, ale jak definovat okamžik, kdy ho má vytvořit? Nechtěli jsme mít přesně definované, které obrazovky má pokaždé...

Java Developers Day - 4.2.2010

Java Developers Day
Vážení přátelé technologií Java,školicí středisko společnosti Sun Microsystems si Vás dovoluje srdečně pozvat na Java Developers Day, který proběhne 4.2.2010 v Národní Technické knihovně.Podrobné informace a registrace: http://sun-training.cz/java-day/program

Selenium remote control – testování AJAXu a další finty

Na posledním projektu jsem dělal větší část práce na GUI a nehodlal jsem stále dokola klikat jak cvičená opice a raději jsem si dal trochu práce s nasazením Selenium remote control. Nešlo ani tak o jednotkové testy jako spíš o integrační a regresní testování. Zvolil jsem remote control a ne plugin do firefoxu (Selenium IDE), protože takto jsem měl...

Závislosti polí ve formuláři a Drools

Ve druhé části blogu o závislostech polí ve formuláři bych rád navázal na předchozí úvahy a ukázal, jak postup popsaný v první části implementovat s pomocí knihovny Drools. 

Statické metódy a ich úskalia v Jave

V nasledovnom článku sa bližšie pozrieme na prekrývanie statických metód a na dôsledky, ktoré z toho vyplývajú. Nie tak dávno som bol pred problémom refaktoringu DB objektov. Aplikácia stará viac ako 7 rokov bola vyvíjaná ľuďmi čo sa na tom učili. Nikoho isto neprekvapí, že z času na čas je v takýchto aplikáciách potrebné urobiť trošku prievan...

Ako nakonfigurovať Jetty v Java kóde

Servletový kontajner Jetty umožňuje veľmi jednoduché embeddovanie, čiže použitie v rámci iných aplikácií. To sa prejavuje aj v jeho jednoduchej konfigurácii pomocou Java kódu, čo v mnohých jednoduchých prípadoch uľahčuje spúšťanie a ladenie webových aplikácií. V článku si ukážeme základné triedy a mechanizmy, pomocou ktorých je to možné dosiahnuť.

Assertions, takové malé připomenutí

Když byly v Jave 1.4 představeny Assertions, tak kde kdo asi očekával, že se klíčové slovo assert stane běžnou součástí zdrojových kódů. Nevím jak vy, ale jak pátrám v paměti, tak jsem snad assert nepoužil. Můžete namítnout, že to vůbec nic neznamená, ale co hůř, já jsem použití assert snad ani neviděl ve zdrojácích open source knihoven.

Vyšší divčí anotací

Pokud budete v Jave definovat vlastní anotaci, tak asi určitě narazíte na to, že anotace má zvláštní syntaxi a omezení co do objektových typů, které můžete v anotaci použít. To vede k tomu, že ve vlastní anotaci můžete použít i jinou anotaci. Vrchol zápisu aneb to jak může být anotace definovaná jsem zatím viděl v Bean Validation specifikaci (JSR...

Do pranice: dokumentační anotace

Vždycky když pracuju na nějakém API v Jave 5 a vyšším tak mi chybí několik anotací, kterými bych jednoduše zdokumentoval základní rysy API, abych to nemusel znovu a znovu opisovat do javadocu. Výhodou anotací by navíc oproti javadoc verzi bylo to, že s nimi mohou pracovat nástroje a IDE. Úplně klasickým příkladem je, když chci o nějaké třídě...

Java 7, dobré zprávy z Devoxxu

ak a teď budu Sun jen chválit a nic než chválit. Dopoledne jsem byl na keynote o novinkách v Javě 7.  Nejvíc mě potěšila informace o tom, že Java 7 bude modulární. Tzn. JDK a JRE nebudou jen veliký navzájem propojený monolit, ale bude rozděleno na víc modulů. O tom už se mluvilo dlouho...

G1 nový grbage collector pro Javu 7

Pro Javu 7 je připraven zbrusu nový typ garbage collectoru (dále GC) nazývaný G1 (Garbage First), který slibuje přiblížení chování GC k soft real-time. Kromě předpovídatelnějších přerušení běhu aplikace by mělo být dalším cílem omezení častého úplného uklizení heapu (po tuto dobu aplikace nemůže reagovat) a třetím je snížení vlivu GC na výkon...

Problém "Božského objektu"

Setkal jsem s ním snad v každé aplikaci, ale teprve teď jsem proto našel ten správný výraz - God object. Mluvím o objektu, který plní stěžejní úlohu v celé aplikaci, něco jako centrální mozek lidstva ze seriálu Návštěvníci. Problém tohoto objektu je v tom, že neustále bobtná, výsledkem je, že máme interface s dvaceti a více metodami, což jednoduše...

jOpenSpace 2008 - Java vs. dynamické jazyky - více návratových hodnot v Javě

V záznamu z jOpenSpace na téma Java vs. dynamické jazyky jsem zaznamenal postesknutí: jediné co mi v Javě chybí je možnost, aby metoda měla více návratových hodnot. Ovšem je nutné si přiznat, že to je možné již nyní. Správný název pro objekt, který je de facto kolekcí s tou vlastností, že každý prvek je jiného typu.Simulovat tuto funkcionalitu...

Nové API pro práci (nejen) se soubory

Tak už jsem si myslel, že nám tu zůstane java.io.File na věky věků jako jediná abstrakce pro práci se souborovým systémem v Jave. Dlužno dodat trochu nepovedená abstrakce. Naštěstí za hlavu se nechytali, jenom všichni jenž byli nuceni toto API používat a tak nám vzniklo JSR 203 More New I/O APIs for the Java Platform ("NIO.2"), které bude...

Java puzzlers

Tušíte správně, dneska vás čeká pidirecenze známé knihy Java Puzzlers od Joshuy Blocha a Neala Gaftera. Kniha obsahuje 95 krátkých hříček, rébusů a hádanek, které pěkně prozkouší vaši pozornost a znalosti temných zákoutí Javy. Kniha je to zajímavá, člověk si toho hodně připomene, popřípadě naučí. Když má dost trpělivosti a nepřeskakuje rovnou...

Záludnost jménem clone

Dneska jsem s hrůzou v očích zjistil, že jsem měl základní nedostatek v tom, jak by se měla správně překrývat metoda clone(). Psát zde, že i mistr tesař se někdy utne, není na místě, protože se rozhodně za mistra nepovažuji. Pojdmě se tedy podívat na to kde leží zakopaný pes

Proč používat anotaci @Override

Jednou z nejužitečnějších anotací, kterou představila Jave 1.5, je bezesporu anotace @Override. Tuto anotaci je důležité použít pokaždé, když překrýváte metodu, kterou deklaruje předek vaší třídy. Díky tomu budete kompilátorem upozorněni, a to ne varováním jak si mnozí mylně domývají, ale rovnou kompilační chybou, ve chvíli kdy kompilátor nenajde...

Nová generace jednotných objektů

Dne 7.9.2008 byla uvolněna zásadně rozšířená verze UJO Framework 0.80, novinky jsou zejména:nové rozhraní UjoExt pro lepší komfort vývojářů umožňující například řetěžení properties a setterůoptimalizovaná deserializace UJO objektů, která je nyní rychlejší jak JAXB 2.1zjednodušení některých původních metod například pomocí rozhraní...

Kdy je Enum roven

Když jsem včera prolétnul článek Neater Java, ve kterém je ukázána zajimává prace s Enum konstruktem/typem, tak mě překvapilo, že se pro porovnání dvou instancí enum používá equals metoda a přemýšlel jsem jestli není možné použít přímo test identity ==, když se vlastně jedná o konstantu.

Teorém čtyř barev - Four Colors theorem in Java

ÚvodTeorém čtyř barev byl poprvé formulován Francisem Guthrie někdy kolem roku 1852. Spočívá v tom, že libovolný plošný obrazec (graf) rozdělený na libovolný konečný počet menších obrazců je vybarvitelný nejvýše čtyřmi barvami tak, aby žádné dva sousední obrazce neměly stejnou barvu. Obrazce mohou stejnou barvou sousedit pouze v rozích (tvary, na...

Nádherný kód

Původně jsem chtěl psát o svých pokusech se Spring OSGI modulem, ale přišlo mi lepší počkat si, až se ve středu něco poučím na CZJUGu. Takže vás dneska čeká další z mých minirecenzí knih. Tentokrát budu psát o hardcore koderské knize s názvem Beautiful Code

Effective Java - druhé vydání

Kdo by z javovských programátorů neznal kultovní knihu Effective Java (v českém překladu Java efektivně - 57 zásad softwarového experta,) Joshuy Blocha. Dneska jsem narazil na rozhovor s jejím autorem v rámci letošní JavaOne, který se točil nejen kolem jejího druhého vydání, které bylo rozšířeno vzhledem k syntaktickým a API novinkám Javy 5.

Prošlá data v Javě

Asi je pořád dost programátorů, kteří chápou problém více vláken jako pokročilé téma vyhrazené pro autory operačních systémů a vědátory na školách. Možná ještě víc programátorů bere principy z jednovláknovných aplikací za platné i ve vícevláknových aplikacích - s tím, že občas je někam potřeba přihodit kouzelné slůvko synchronized (většinou...

Ještě více statická

Ač jsem velkým příznivcem dynamických jazyků namísto násilného, alespoň z mého pohledu, rozšiřování Javy, tak jsou návrhy, které mají moje sympatie. Jedním z nich je JSR 308: Annotations on Java Types, které se snaží rozšířit možnost deklarace anotace u libovolného užití typu.

Algoritmus topologického triedenia v Jave

Topologické triedenie je algoritmus, ktorý umožňuje určiť správne poradie vykonávania úloh, ktoré na sebe závisia. Príkladom je správne poradie zapisovania predmetov na univerzite, alebo určenie poradie vykonávania úloh v Ante. Ukážeme si ideu tohto algoritmu, demonštrujeme klasickú dátovú štruktúru, ktorá je výhodná pri jeho použití...

Prehľadávanie stromov do šírky v Jave

Prehľadávanie stromu do šírky je klasický algoritmus, s ktorým sa možno v praxi nestretneme až tak často, ale v rámci všeobecného prehľadu je dobré o ňom vedieť. Prinášame popis algoritmu, návrh dátových štruktúr a klasické pozorovanie, že v Jave je už aj tento algoritmus naimplementovaný (aj keď na nečakanom mieste).

Potřebujete rychlou XML perzistenci ?

Na blogu projektu UJO Framework byly zveřejněny výsledky testu rychlosti XML perzistence UJO objektů. Výsledky jsou příznivé zejména ve srovnání s XML perzistencí implementovanou v JRE 6.0 . UJO Framework poskytuje objekty s odlišnou architekturou od JavaBeans s několika zajímavými vlastnostmi, poslední verze (0.73) má implementovanou podporu...

Vše co jste chtěli vědět o složených závorkách, ale báli jste se zeptat

Stejně jako každý ninja musí prokázat, že dokáže zabít i roličkou toaletního papíru, i já předvedu stupeň své nezměrné zvrhlosti tím, jak dokážu používat složené závorky. Složené závorky asi používáte všichni, ale všichni před ně určitě amatérsky píšete něco jako jméno třídy, metody, if, for nebo něco podobného. To já už jsem dosáhl vyšší úrovně...

Jak pracovat s logovací knihovnou

Tento zápisek se krátce věnuje logovacím knihovnám v Javě a práci s nimi – konkrétně commons-logging a log4j. Shrnul jsem několik poznámek na toto téma.

Používáte v equals metodě getClass a nebo instanceof?

Jak jinak začít, než střelbou do vlastních řad. Tak jsem byl pro změnu zase jednou za blbce... V několika třídách jednoho modulu jsme měli následující implementaci equals metody.

List nebo Iterable?

Dnes budu psát o jedné prkotině, kterou jsme včera řešili s jedním kolegou. Zajímal by mě váš názor na to. Je to opravdu jednoduché. Představte si, že máte následující metodu:Jak vidíte dostane na vstupu nějaký seznam, ten proiteruje a na základě vstupních dat vrátí nějaký výsledek. Otázka je, jaký typ zvolit pro parametr a potažmo i návratovou...

Nová Java: Jak z toho ven ...

Nová Java: nápadů a myšlenek je přehršel, ale je na čase se věc pokusit uzavřít a dobrat se nějakého závěru, nebo snad výsledku?

NIH podle Sunu

Zkratka NIH znamená Not Invented Here, česky by se dalo snad říci „nevymyšleno u nás“. Používá se, když někdo vymýšlí něco co už bylo dávno vymyšleno, jenom proto, že to nevymyslel on. Přesně v tomto duchu se nesla prezentace Glassfishe.

a += b vs a = a + b v Javě

Často se setkávám s tvrzením, že v Javě přiřazení a += b je to samé jako a = a + b. Také si to myslíte? Ano? Jste si tím skutečně jisti?

Closures: opravdu děkuji, ale nechci

Po přečtení výborného článku Java: Evolutionary Dead End z pera Bruce Eckela a prohlédnutí prezentace Closures controversy Joshuy Blocha ve mě definitivně uzrálo přesvědčení, že closures opravdu, ale opravdu v Jave nechci.

Navá Java: Chceme ji? - počtvrté

Je více než správné vést diskusi o tom, kam bychom chtěli, aby se "náš" jazyk posunul v blízké budoucnosti. Já jsem své potřeby vyčerpal, to je poslední díl ...

Nová Java: Chceme ji? - podruhé

Je více než správné vést diskusi o tom, kam bychom chtěli, aby se "náš" jazyk posunul v blízké budoucnosti. A je-li to na sklonku roku ... proč nechtít změny realizovat v roce přicházejícím.

Nová Java: Chceme ji?

Je více než správné vést diskusi o tom, kam bychom chtěli, aby se "náš" jazyk posunul v blízké budoucnosti.

Odháčkování

Snad každý český programátor narazil na problém odstranění diakritiky z textu (tzv. odháčkování). Pro tyto účely jsem si kdysi vytvořil jednoduchou mapovací tabulku pro znaky v kódování ISO-8859-2. Nyní jsem v Javě potřeboval něco podobného a našel jsem lepší řešení

Neměňte jazyk, změňte infrastrukturu

Lehce jsem se orosil při poslechu posledního Javaposse podcastu. Pánové tam probírali změny do syntaxe a rozšiřování sémantiky jazyku Java. Nechci říkat, že mi všechny ty syntaktická cukrátka nejsou sympatická, ale vidím plno jiných oblastí, které by mohla Java 7 či 8 pokrýt a vývojáři by to dozajista ocenili také. Jednou z těchto oblastí je...

Jak na metody equals a hashCode

Chyby v metodách hashCode a hlavně equals jsou velmi zákeřné a mohou se v některých případech projevovat doslova až po nasazení programu u zákazníka; kolekce se více zaplní, konflikty v hash tabulce zapříčiní volání metody equals, ve které může být skrytá chyba. Proto je vhodné věnovat implementacím těchto metod náležitou pozornost.

Rozlucka s Macem?

Dneska mi Michal Smrz poslal link na Javalobby clanek, kde Michael Urban (pro me neznamy) horekuje nad spatnou podporou javy pod Mac OS.  Aby se Stevu Jobsovi nespalo dobre, vyhrozuje navic odlivem developeru (vcetne sebe sama - to bude ovsem ztrata!).Tematu se venuje i Roumen zde.Musim rici, ze je to opravdu skoda, ze Apple

Synchronizovat nebo označit nestálou proměnnou?

Java nabízí několik prostředků synchronizace, když pomineme Java Core API, pak jazyk samotný má v podstatě dvě klíčová slova pro účely synchronizace: synchonized a volatile. Ale kdy který použít?

Život s OC4J

Pokud mi někdo řekne, že moje aplikace má běžet v aplikačním serveru OC4J naskočí mi husí kůže. Tento reflex se mi už dostal do podvědomí kvůli řadě bezesných nocí řešením řady chyb ukrytých v kódu, ke kterým člověk nemá zdrojové kódy. Nedá se ovšem nic dělat, náš zákazník, náš pán...

OSGi klíč k rozšiřitelnosti aplikací?

Většina aplikací, na kterých jsem pracoval, vyžadovala jistou míru rozšiřitelnosti (customization) podle potřeb zákazníka a naopak, některé vlastnosti bylo potřeba přidat/odebrat podle zakoupené verze. Tyto požadavky vedou k potřebě jisté modulárnosti aplikace. Na tu se již myslelo při návrhu, to je ten lepší případ a nebo se ad hoc dodělávala,...

Neměnitelné třídy

Dnes bych chtěl psát o jedné technice, která se mi celkem osvědčuje – o neměnitelných třídách (immutable classes). Kdo četl knihu od Joshuy Blocha Java Efektivně, pro toho to nebude žádná novinka. Pro ty, kteří ji nečetli nebo si ji nepamatují připomenu. Neměnitelná třída je taková třída třída, jejíž instance nejde změnit.

Synchronizace, JMM a další špeky - díl druhý

V prvním díle našeho povídání jsme si řekli něco málo k změnám paměťového modelu v Jave, který byl představen v rámci verze 5.0. Dnes se trochu blíže podíváme na zoubek tomu, co vězí za novými třídami v package java.util.concurrent.

Synchronizace, JMM a další špeky - díl první

Nejsem si úplně jistý, kolik z Vás zaznamenalo všechny změny kolem problematiky konkurenčního zpracování, které představila Java 5. Byla to skutečně Java 5, která představila některé nové vlastnosti, které umožňují efektivní práci multithread aplikací. Pokud jste novinky v této oblasti nesledovali, pak Vám tento článek poslouží jako takové malé...

Unit testy a čistota návrhu

I když si myslím, že mám s unit testy dost zkušeností, stále ještě mě dokáží dost překvapit. Kromě toho, že se překvapuji tím jak často je „zapomínám“ psát, překvapují mě většinou pozitivně. Zrovna nedávno mě překvapily znovu. Psal jsem program, který mimo jiné prohledává adresář na disku, poté nalezené soubory zpracovává, přesouvá jinam,...

Java Module System

Pro Javu 7 se chystá vylepšení v oblasti nasazení (deploymentu) aplikací z hlediska modularity, verzovatelnosti a správy. To byla ta příznivější část sdělení, ta druhá méně potěšitelná je, že to zatím nevypadá na kompatibilní řešení se specifikací OSGi - The Dynamic Module System for Java, na kterém stojí například produkty z rodiny Eclipse...

Dáte si džus? Máme Google Guice.

Pod křídly, která poskytla firma Google, vzniknul velice zajímavý projekt inversion of control frameworku postaveného na vlastnostech Javy 5 - anotacích a generikách. Framework nese název Guice, celým názvem Google Guice a vzniknul na základě potřeb aplikace AdWords. Další zajímavostí je, že se Guice hrdě hlásí k Spring frameworku.

Syntaktická cukrátka v Javě 7

Je libo a nelibo synataktická cukrátka? Java se po vzoru dalších jazyků vydala na cestu přidávání nových syntatktických cukrátek. Podle zveřejněných informací verze 7 zřejmě tento trend jenom potvrdí. Pokud mají syntaktická cukrátka něco společného, pak je to fakt, že rozdělují komunitu ve dví. Co je dni vítají s otevřenou naručí, druzí nemohou...

 
strana 1/1celkem 94 položek