Blog

Novinky ze světa IT

Studentská stáž: Poznej vývoj software v PRAXI

webflow_jsf
13 09/17

Spring Web Flow a JSF

Jan Lantora

Hledali jste někdy vhodnou kombinaci frameworků, pro vývoj webové formulářové aplikace, která Vám umožní rychlou a snadnou implementaci? Zkuste Spring Web Flow s integrací JSF. V tomto článku si ukážeme jednoduché nastavení, jak tyto frameworky propojit. Anotace Have you ever looked for a suitable combination of frameworks to develop a web form application that will allow you quick…

salesforce-dx
23 08/17

Salesforce DX

Kamil Maleček

Salesforce Developer Experience (dále jen DX) je prezentován jako sada nástrojů pro vývojáře, která si klade za cíl vylepšit a zefektivnit celý vývojový proces. Novinky mají ovlivnit, respektive usnadnit týmový vývoj, přinést automatizaci testování či continuous integration. Salesforce DX byl poprvé představen na Dreamforce ’16 a ihned se zařadil mezi nejzajímavější a nejočekávanější novinky, a to i přesto, že…

21 08/17

AspectWorks hledá Java Developery

Monika Vavrikova

AspectWorks tým Java Developerů hledá nové kolegy a kolegyně. Chceš se k nám přidat? Do našeho týmu hledáme JavaScript programátory, JEE programátory a Developery. Hledáme parťáka, který něco umí a chce dělat pořádné věci, pod které se rád podepíše. Do našeho týmu uvítáme veselou, přátelskou povahu, tak jako jsme i my. Více o práci u nás se dovíš v odkazu ZDE.

tomas knopp_náborové video
08 08/17

AspectWorks Salesforce tým hledá nové kolegy a kolegyně

Monika Vavrikova

Přidej se k nám do týmu – do týmu Salesforce.  Koho hledáme? Konzultantky nebo konzultanty.   Kam? Do našeho inovativního týmu, který pracuje na rozsáhlých implementacích CRM systému Salesforce.   Co budeš Dělat? Tvojí prací bude nejen vymýšlet a realizovat moderní technická řešení, ale i komunikovat se zákazníkem jeho požadavky.   Jaká máš být osobnost?  Do našeho týmu uvítáme veselou, přátelskou…

stáž školení_1
17 07/17

AspectWorks stáž oficiálně začala

Monika Vavrikova

Konečně je to tady! Další ročník stáže je oficiálně rozběhnutý a naši studenti se již pilně začleňují do našeho týmu. V letošním roce jsme z velkého množství žádostí vybrali 4 studenty do týmu Salesforce a 4 studenty, kteří se budou věnovat Javě. Dokonce se mezi nimi našla i jedna slečna, aby nám tak opět dokázala, že IT není jen ryze…

mikroservisy
24 05/17

Mikroservisy a jejich monitoring

Petr Hájek

Idea architektury systému založeném na mikroservisách (mikroslužbách) není nikterak nová (najdeme ji už v návrhu operačního systému Unix a v obecném slova smyslu je na ní postavena architektura celého internetu). V posledních letech se však masivně vrátila jako návrhový vzor pro moderní distribuované systémy (první implementace v podobě případových studií se objevily v roce 2012) a za tento krátký čas si stačila najít mnoho…

zkušenosti se Salesforce_crm konference
17 05/17

Zkušenosti společnosti Brave Multimedia se Salesforce

Monika Vavrikova

Jak si vybírá CRM malá firma s globálními ambicemi? Co je důležité a co může počkat? O tom všem mluvil Roman Smělý ze společnosti Brave Multimedia na CRM konferenci, která se za spolupráce s Vyber CRM konala 11.4. v Praze. Webové stránky proběhlé akce najdete zde  Více o konferencích, školeních a seminářích AspectWorks se dovíte zde

ASPECT WORKS_stáž
15 05/17

Videopozvánka na Studentskou stáž

Monika Vavrikova

Každý rok otevíráme pro studenty letní stáž. Přidáš se i ty? Nastartuješ svou dráhu IT konzultanta nebo se naučíš Vývoj software v Praxi právě u nás? Více o otevřených pozicích se dovíš v sekci Kariéra.     

GDPR konference
12 05/17

GDPR Konference

Monika Vavrikova

AspectWorsk se stala CRM expertem největší GDPR Konference. BĚHEM JEDINÉHO DNE JSTE MOHLI ZJISTIT, JAK SE NA GDPR PŘIPRAVIT – LIDSKY, PROCESNĚ, TECHNOLOGICKY A LEGISLATIVNĚ Záznam z prezentace AspectWorks Webové stránky GDPR Konference  

Spring a MongoDB
04 04/17

Spring a MongoDB

David Passler

Pokoušeli jste se napojit Spring[1] aplikaci na MongoDB[2] databázi a nepodařilo se Vám to? Přišel Vám tutoriál od Springu nepřehledný nebo jste nechtěli trávit čas dlouhým pročítáním návodu? Ani pro nás to nebyla procházka růžovou zahradou. Nicméně strasti jsme překonali a v tomto článku si prozradíme celý postup. Anotace: Have you ever tried to connect MongoDB to Spring application…

thymeleaf
02 02/17

ThymeLeaf – Jak na něj?

Aleš Woska

Thymeleaf je javovský server- side templatovací engine. V příspěvku si ukážeme, jak jej připojit do projektu, na příkladech si ukážeme jeho možnosti použití a jak jednoduše implementovat typické problémy. Ukážeme si také pár složitějších problémů a jejich řešení. Nakonec si shrneme jeho klady a zápory. Anotace: This contribution concerns Thymeleaf which is a Java server-site template engine. In this contribution we demonstrate…

20 10/16

6. ročník studentské stáže a Salesforce

Tomáš Knopp

Studentské stáže a Salesforce Moderní trendy, technologie, potřeby trhu – o tom všem jsme při přípravách již 6. ročníku studentské stáže diskutovali a došli k závěru, že to bude letos jinak. Letos studenti pracují na platformě Salesforce, která splňuje vše: moderní a agilní nastroj pro řešení CRM. Výhody jsou zřejmé: jejich práce je téměř ihned vidět v průběhu realizace mají za sebou…

19 09/16

Vývoj webových aplikací: React a Angular 2

Aleš Dostál

Článek je založen na základních zkušenostech Reactu a Angularu 2, ve kterých jsem napsal jednoduchou CRUD aplikaci s reportingem a autorizací. U obou aplikací byl použit stejný backend (Spring REST, JPA repository). K napsání tohoto příspěvku mě donutila skutečnost, že jsem se v poslední době zaměřil na frontendové technologie a chtěl si vyzkoušet několik cest, které mohou vést k úspěšnému cíli. V současné…

12 05/16

Trendy moderního obchodování, tentokrát 9. 6. v Brně!

Jan Novák

  Srdečně Vás zveme na náš půldenní seminář TRENDY MODERNÍHO OBCHODOVÁNÍ INFORMACE – KNOW HOW – NÁSTROJE Proč se akce zůčastnit? Poznejte nové trendy obchodování a odpovězte si na otázku, proč jsou některé firmy v obchodování úspěšnější než jiné? Zjistěte, jak efektivně pracovat s leady a jak je efektivně zobchodovat. Na semináři se budeme dále zabývat způsoby praktického obchodování, seznámíte…

05 05/16

Jak vybrat CRM pro růst vašeho byznysu

Jan Novák

Konference INSIDE na téma: Jak vybrat CRM pro růst vašeho byznysu. Cílem této konference je uspořádat setkání osob zodpovědných za strategii řízení vztahů se zákazníky, marketingových a obchodních ředitelů. Proč se konference zúčastnit? Získáte: Nezávislý úhel pohledu na lokální řešení CRM. Lokálně relevantní informace zasazené do globálního kontextu – osvedčenou praxi a trendy v řízení vztahů se zákazníky. Účast v otevřené diskuzi…

24 11/15

SalesForce Silver Partner

Jaroslav Dobiáš

Nedávné vyhodnocení Salesforce partnerského programu, které zahrnuje mimo jiné roční objem zakázek, počet certifikovaných SF specialistů a spokojenost zákazníků, přineslo Aspectworks jmenování Silver partnerem. Aspectworks tímto potvrzuje uroveň svých kompetencí napříč cloudovým SalesForce ekosystémem a zároveň otevírá možnosti dále intenzivněji rozvíjet své partnerství se SalesForce.  

04 03/15

JSR 303 Validation Messages Fairytale

Stanislav Zorjan

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 can…

20 01/15

Jetty – konfigurace HTTPS

Aliaksandr Aniska

Jetty je oblíbený webový kontejner, který používáme na mnoha projektech především jako vývojový nebo testovací nástroj. Jetty jde jednoduše integrovat do projektu pomocí maven pluginu, dá se snadno startovat, embeddovat, atd. Když už ale potřebujete připravit reálnější testovací prostředí nebo dokonce produkční, je konfigurace HTTPS samozřejmostí. Postup si pochopitelně skoro nikdo nepamatuje z hlavy, takže ho shrnu v krátkém…

08 01/15

Tvorba formulářů pomocí Apache Wicket

Aleš Woska

Poslední dobou působí AspectWorks na čím dál více projektech, které využívají framework Wicket. Tento příspěvek pokrývá úplné základy možností tvorby webových formulářů ve Wicketu. To vše pomocí ukázek kódu a formou blízkou tutorialu. 1. Zakomponování frameworku do projektu Projekt musí obsahovat třídu poděděnou od Wicket třídy WebApplication – té se říká Application object. Tato třída musí přepsat metodu…

03 12/14

How to Connect Tableau with ServiceNow

Pavel Müller

ServiceNow is a great cloud service. Although it offers some reporting capabilities, many ServiceNow customers have complicated requirements on reporting or business analytics. Either the ServiceNow reporting is not sufficient for them, or their corporate standard is a different BI or reporting solution. Many of our customers use Tableau. It is a leading BI tool, powerful and…

02 09/14

SnowMirror 2.1 Released – New REST API

Pavel Müller

SnowMirror team announces a new release version 2.1. We continuously collect feedback from our customers and users so all the new features are based on their real-world project needs. We have introduced a new REST API to enable to control, monitor and configure SnowMirror from external scripts or systems. A second new feature is a…

08 08/14

Žurnálování Hibernate entit pomocí DB triggerů

Jan Pacek

V dřívějším příspěvku DB žurnál pomocí Hibernate interceptorů jsem nastínil možnost žurnálování pomocí hibernate interceptorů. Další a asi nejjednodušší možností je použití Hibernate envers, které jsou od hibernate verze 3.5 jeho součástí, které ve své implementaci využívají interceptory a lze je kombinovat dohromady (tzn. pomocí interceptorů řešit to, co envers nenabízí)  Ale jak tomu na reálných projektech bývá, člověk narazí…

14 07/14

SnowMirror 2.0 Released – Eureka and Views Support

Pavel Müller

Today we proudly announce the general availability of SnowMirror 2.0. The major new features include ServiceNow Eureka release compatibility and database views synchronization support. Learn more about SnowMirror 2.0 on snow-mirror.com.

09 07/14

Maven repozitář v projektu – proč a jak

Roman Valina

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 objashují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.  Tuším, co si teď asi říkáte. Každá, i menší firma,…

23 06/14

Spring Security Impersonation

Tomáš Holý

Pojem Impersonation (počeštěně Impersonifikace), který v doslovném překladu znamená imitování nebo zosobnění, se dá vysvětlit touto poučkou: Přihlášený uživatel předstírá, že je někdo jiný, aby získal práva a data cizího uživatele.

31 03/14

Termíny kurzů pro Q2 2014

Martin Korbel

Vypsali jsme termíny otevřených kurzů pro druhý kvartál roku 2014. Mezi nimi je například novinka letošního roku, JPA2 – Hibernate. Pokud tedy plánujete rozvoj svých hard skills, je ten správný čas pro jejich rozvoj! Podívejte se na termíny a přihlašte se! Pokud vás budou zajímat kurzy, které aktuálně vypsané nejsou, nebojte se nám poslat dotaz.

21 03/14

Čtvrtý běh letní stáže

Dominik Moštěk

Letní stáž je skvělá příležitost jak se naučit spoustu nového a posunout své znalosti zase o kousek dál. Pokud máš chuť se učit a chceš poznat práci na reálných softwarových projektech  je to příležitost právě pro tebe. Budeš se učit od zkušených vývojářů, analytiků, testerů a dalších odborníků v oboru.

26 02/14

Flyway

Tomáš Holý

Pravděpodobně jste již někdy řešili otázku verzování datového modelu na některém z vašich projektů. Možná jste použili nejjednodušší řešení, a to psaní alter skriptů, které pak ručně spouští při nasazováním nového releasu. Možná jste tak, jako my, udělali chybu. Zapomněli jeden z alter skriptů spustit, případně jej nevyzkoušeli na testovací instanci. A problém byl na světě.   V takové chvíli jste si třeba…

04 02/14

Druhá obtížná věc

Richard Šerý

„There are only two hard things in computer science: cache invalidation and naming things.“ Phil Karlton Také máte občas pocit, že vám kód přerůstá přes hlavu? Snažíte se dlouhé hodiny najít chybu a pak zjistíte, že ji máte celou dobu před očima? Nevím, jestli se těmto situacím dá vyhnout, ale hodně mi pomohlo, když jsem přestal…

09 12/13

Proč psát unit test dříve než implementaci

Dominik Moštěk

Vždy, když mě napadlo napsat článek na toto téma během chvíle jsem si to rozmyslel. Reakce mého podvědomí na otázku v nadpisu byla totiž “vždyť to je jasné”, “to každý ví”, “o tom už bylo napsáno dost”. Ale nakonec tento článek vyšel, takže něco mě muselo přesvědčit. To něco bylo zjištění, že množství lidí v mém okolí tuto myšlenku…

04 12/13

Oracle Java Developer Workshop

Dominik Moštěk

Ve středu 27. listopadu jsme společně s Lubošem Tomiskou navštívili workshop pořádaný firmou Oracle. Tématem byly novinky ve světě platformy Java.Na akci vystoupili lidé z pražské pobočky firmy Oracle. Co nás tedy čeká nového v oblasti Java 8, Java EE 7 nebo Primefaces 4?  

08 11/13

Radar č.5: stroj času

Richard Šerý

Páté technologické setkání RADAR se konalo 24. 10. 2013 v restauraci Zapomenutý Čas. A kolem času se tak či onak točily i jednotlivé přednášky. Zvlášť technologie Chronon by neměla uniknout vaší pozornosti.

24 10/13

Testování Spring MVC controlleruTestování Spring MVC controllerů

Pavel Müller

Až dosud byly v zásadě dvě možnosti, jak automatizovaně testovat webovou vrstvu aplikace postavené na Springu: Selenium testy nebo klasické unit testy. Obojí má svoje nevýhody. Od verze Spring Frameworku 3.2 lze testovat Spring MVC controllery novým způsobem a myslím, že stojí za to.

18 10/13

Testování v Groovy

Dominik Moštěk

Na našem prvním Radaru jsme se rozhodli nasadit Groovy jakožto jazyk pro psaní unit testů. Jaké s tím máme zkušenosti po roce používání jsem shrnul v tomto článku. Proč Groovy? Protože je kompatibilní s Javou a průměrný Java programátor s ním během chvilky umí. I když všechna zákoutí Groovy objevujeme ještě dnes, naučení je opravdu rychlé. Groovy šetří. Testy místo Java boilerplate obsahují skutečný…

27 09/13

Postřehy z AgilePrague 2013

Tomáš Beneda

Po roce jsem zavítal na již třetí ročník konference věnované agilním metodikám a souvisejícím  oblastem softwarového vývoje – Agile Prague 2013. V tomto článku vás rád seznámím s několika osobními postřehy, které jsem si z této akce odnesl.

26 09/13

WebExpo 2013: english & discomfort zone

Richard Šerý

WebExpo jen v angličtině a za dvojnásobné vstupné. Když tohle Vašek Stoupa loni oznámil, připadalo mi to jako slušná ruská ruleta.

06 08/13

RADAR č.4: Gradle a fantom Německé burzy

Richard Šerý

Čtvrtý RADAR AspectWorks se konal 25. 7. 2013 v pizzerii Fresco Vento. Na programu byla Německá burza, kde náš kolega Honza pracuje na aplikaci pro správu cenných papírů, a Dominikova přednáška o nástroji Gradle.

10 06/13

Load balancer – co vás možná nenapadlo

Luboš Račanský

Spíš dříve než později se při vývoji webových aplikací dostanete k tomu, že z nich budete potřebovat vyždímat větší výkon, vystavit je větší zátěži. Jedním ze způsobů je horizontální škálování, kdy přidáte paralelně další servery, před které postavíte load balancer. Nejčastěji budete chtít, aby uživatel byl odbavován pokud možno v rámci jednoho nodu, od toho je známě řešení sticky session. Chtěl…

13 05/13

Třetí RADAR: HitHit a lightning talks

Richard Šerý

25. dubna 2013 proběhl další RADAR AspectWorks, v pořadí už třetí, tentokrát zaměřený hlavně na frontendové technologie. Úvod ale patřil projektu HitHit, který jsme nedávno spustili a který se slibně rozjíždí.

19 04/13

Proč na stáž do softwarové společnosti?

Petra Bielčíková

Budujete kariéru? Potřebujete stáž v IT firmě jako „zářez“ do svého životopisu? Pak naše stáž není nic pro vás. Na stáži v AspectWorks tým studentů, vedený zkušeným vývojářem, tvrdě pracuje na reálných projektech. Chcete se zúčastnit?

17 04/13

Joelův test a AspectWorks

Pavel Müller

Přijímám vývojáře do AspectWorks už celých osm let. Ale teprve až teď se někdo odvážil předložit známý Joelův test,  aby si zjistil, jak na tom naše firma je. Je opravdu zajímavé, že se vývojáři obecně velmi málo ptají, co že je vlastně v nové práci čeká. Nabízím proto všem odpovědi o AspectWorks, aby nebylo potřeba sbírat odvahu a ptát…

15 04/13

Tři časté chyby v testech použitelnosti

Richard Šerý

Chyba první: Nejasné priority Byl jsem svědkem testu eshopu, který začínal scénářem „vyhledejte produkt“. Ačkoli tento e-shop většině lidí nedělá potíže, měl velmi slabé fulltextové vyhledávání. Uživatelka příkaz pochopila jako „použijte fulltext k vyhledání produktu“ a výsledek byl dost tragický. Jistě, odhalila několik problémů s použitelností, ale „zabila“ tím více než polovinu času testu.  Problém takového scénáře…

13 03/13

Jak jsem (ne)upgradoval jBPM3 na jBPM5

Jakub Ferschmann

Na projektu Orinoco používáme procesní systém jBPM ve verzi 3. Pro další vývoj jsme potřebovali mít možnost vytvářet proces programově bez použití xml definice. Ve vyšších verzích jBPM je tato funkčnost dostupná pomocí tzv. „fluent API“. Rozhodl jsem se tedy pro upgrade jBPM na nejnovější verzi, která je aktuálně 5.4 (verze ke dni vydání článku). Obvykle při přechodu knihovny na vyšší verzi,…

05 02/13

AspectWorks RADAR – leden 2013

Martin Štrunc

Ve čtvrtek 24.1.2012 se konalo druhé setkání vývojářů z naší firmy s názvem AspectWorks RADAR tentokrát v čistě programátorském prostředí pizzerie Donna na Karlově náměstí v Praze. Tématem RADARu byla Datová úložiště. Chtěli jsme si prodiskutovat alternativní technologie k relačním databázím a také probrat alternativu k MySQL v podobě jiné relační databáze, která by byla volně použitelná pro komerční účely.

15 01/13

Last minute – školení Spring Framework se slevou

Petra Bielčíková

V termínu 21. – 23. ledna 2013 pořádáme školení Spring Framework. Jde o nejúspěšnější kurz z dílny AspectWorks, který Vám tentokráte nabízíme s last minute slevou 25%.

07 01/13

Agilní metodiky a vývoj software

Pavel Šimek

Mnoho firem dnes zavádí Scrum. Jejich cíle jsou jasné: vyhodit projekťáka a vyvíjet lepší software, aniž by vývojáři vylezli ze sklepa a někoho obtěžovali. To ale nefunguje.

21 12/12

Fulltextové vyhledávání – výběr frameworku

Tomáš Holý

Pokud řešíte v aplikaci vyhledávání textů, určitě časem narazíte na potřebu implementovat fulltextové vyhledávání a to především z důvodu rychlosti získávání výsledků.

26 11/12

AspectWorks RADAR – říjen 2012

Pavel Müller

U nás v AspectWorks pravidelně sledujeme Technology Radar firmy ThoughtWorks. Uvědomili jsme si, že přestože publikujeme příspěvky na blogu a občas i někde přednášíme, žádný z prezentovaných názorů nelze považovat za oficiální názor celé firmy. Rozhodli jsme se proto, že budeme vydávat vlastní AspectWorks RADAR, vždy jednou za tři měsíce, a v něm se zaměříme na nějakou konkrétní technologickou oblast.  RADAR v našem podání…

18 10/12

Eclipse efektivně (5.)

Luboš Račanský

Podle trefné kompetenční matice programátoři na úrovni nula (v asymptotické složitosti vyjádřeno 2n) používají svoje IDE jako textový editor. Mírně pokročilý (n2) již dokáží najít něco v menu. Pokročilý (n), znají většinu zkratek a profíci (log n) zvládnou do svého IDE napsat i plugin. I když jsem si poslední dobou oblíbil především IDE IntelliJ IDEA, tak občas nezbývá…

25 09/12

Jak vypadá stáž ve vývojářské firmě

Josef Vermach

Stáž = delší studijní pobyt, praktická výuka (www.ABZ.cz, 2012). Od chvíle, co jsem poznal Javu jsem v ní psal raději než v jiných programovacích jazycích. Taky jsem se vždy spíše věnoval Java SE. Ale současnost je jiná, dnešní doba si žádá J2EE programátory. Poté, co jsem si všiml nabídky „stáže“ ve firmě Aspectworks.com, se to celé událo velice rychle. Poměrně…

24 07/12

Doporučená četba

Luboš Račanský

Na twitteru vám pravidelně přinášíme doporučení na technické články. Pro ty, kteří nás nesledují, ale i pro ty, kterým například nějaký odkaz utekl, přinášíme seznam toho nejzajímavějšího. Doporučená četba, která by neměla zapadnout ve štěbetání twitteru. Nakonec pro odlehčení jeden Dilbert strip. Firma ThoughtWorks, kde pracuje Martin Fowler, vydává zprávu Technology Radar, která vyhodnocuje technologické novinky a trendy. Slouží jim…

24 05/12

Trainee 2012 – Letní stáž v AspectWorks

Richard Šerý

Umíš Javu? Chceš poznat práci na reálném projektu? Jsi studentem 3-5 ročníku vysoké školy?   Pošli nám svoje CV a zapoj se do pokračování studentského programu AspectWorks! Vydělávej při studiu a nauč se věci, které ti ve škole neřeknou! „Stáž v AspectWorks můžu rozhodně doporučit. Dala mi příležitost podívat se, jak to ve vývoji SW skutečně chodí. Dostal jsem…

17 05/12

Odesíláte formulář? Nezapomeňte na redirect!

Richard Šerý

Pokaždé, když odešlete formulář metodou POST, musíte na serveru udělat redirect. Možná je to pro vás samozřejmost, ale stále se setkávám se spoustou lidí, kteří to buď neznají nebo v tom dělají chyby. Proč? Poté co prohlížeč přijme data z formuláře, vygeneruje novou stránku. Pokud by na ní uživatel stisknul v prohlížeči tlačítko „refresh“, pokusil by se prohlížeč znovu odeslat jednou…

06 05/12

AspectWorks sponzorem světového poháru MTBO

Pavel Müller

AspectWorks sponzoruje první závod světového poháru MTBO konaného o tomto víkendu v Řitce. MTBO (Mountain Bike Orienteering) jsou orientační závody na kole podobně jako orientační běh. Více o tomto sportu a dalších obdobných závodech najdete na stránkách mtbo.cz.

24 04/12

Unit testy a jazyk PL/SQL

Tomáš Holý

Možná jste se již také na vašem projektu setkali s nutností vytvořit unit testy pro části kódu, které při načítání dat z databáze využívají uložené procedury nebo funkce. Toto na první pohled jednoduché zadání s sebou může ovšem nést jeden problém, a tím je použití java embedded databáze pro testování. Obecně mají embedded databáze slabou nebo dokonce žádnou podporu pro psaní uložených procedur a…

10 04/12

DB žurnál pomocí Hibernate interceptoru

Jan Pacek

Na mnoha projektech je třeba řešit databázový žurnál aplikace, který zaznamenává události v systému včetně dat, která při těchto událostech byla změněna či jen čtena. Zákazníci často požadují u událostí, které mění data, žurnálovat jak staré tak i nové hodnoty záznamu. Implementace takového mechanismu přímo na DAO vrstvě by byla pracná a hlavně složitě konfigurovatelná. Řešení žurnálování na úrovni databázových procedur…

27 03/12

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

Jan Bumbala

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 serveru. Protože jsme již na projektu využívali Quartz Scheduler pro spouštění pravidelných…

14 03/12

Doporučená četba

Luboš Račanský

Na twitteru vám pravidelně přinášíme doporučení nejen na technické články. Pro ty, kteří nás nesledují, ale i pro ty, kterým například nějaký odkaz utekl, přinášíme seznam toho nejzajímavějšího. Doporučená četba, která by neměla zapadnout ve štěbetání twitteru. Nakonec pro odlehčení jeden Dilbert strip. Agilní manifest je dostupný v češtině. Slyšeli jste už termín death-by-Powerpoint? Garr Reynolds píše o Slideuments, anti-pattern míchání slajdů…

06 03/12

Pořádáme školení Spring Framework

Marta Křížová

V termínu 11. – 13. dubna 2012 pořádáme školení Spring Framework v Praze a máme ještě několik volných míst. Jde o nejúspěšnější kurz z dílny AspectWorks, který je tentokrát otevřený všem zájemcům, kteří chtějí získat přehled o vývoji nad Spring Frameworkem. Cílem školení je představit Spring Framework pro všechny oblasti vývoje webových aplikací.  Tento kurz se zaměřuje na praktický vývoj a není (jako…

05 03/12

Implementační fiasko ve čtyřech dějstvích

Richard Šerý

Zažili jste při vývoji softwaru nějaký ten „epic fail“? To se jistě rádi pobavíte na cizí účet. Následující řádky budou o tom, jak se posloupností logických kroků a racionálních rozhodnutí dopracovat k neúspěchu. Podotýkám že osoby vystupující v tomto příspěvku jsou čistě smyšlené 🙂  Dějství první: Plánujeme User story byla prostá: Umělec nabízí svým fanouškům odměny za to, že přispějí na realizaci jeho…

24 02/12

Eclipse efektivně (4.)

Luboš Račanský

K psaní seriálu Eclipse efektivně nás motivuje pozorování, že někteří (i zkušení) vývojáři nejsou dostatečně efektivní při práci s Eclipse IDE. Možná, že některé tipy, které našim stážistům vtloukáme do hlavy, se budou hodit i vám. Tentokrát se zaměřím na to, jak získat přehledný výpis chyb. Dále nastavení generování metod equals a hashCode. Nechybí vám, že content assist nenabízí statické importy?…

07 02/12

Od Sysdeo v Eclipse k tc Serveru v STS

Luboš Račanský

Při vývoji webových aplikací používáme Eclipse IDE. Z workspace dostáváme Maven závislosti na Tomcat pomocí pluginu Sysdeo. Toto řešení funguje, ale není ideální. Nastavení aplikace lze ovšem jednoduše upravit tak, aby šla spouštět na tc Serveru přímo z STS (SpringSource Tool Suite).  Proč měnit Sysdeo za tc Server v STS? Kromě toho, že se Sysdeo musíte myslet na ruční spouštění buildu (sysdeo-tomcat:generate), tak…

26 01/12

Synchronizace scheduleru v clusteru

Tomáš Holý

Na našem projektu Starthead jsme potřebovali implementovat automatické provádění úkolu určeného ke zpracovávání dat v databázi. Ve frameworku Spring, který je pro vývoj použit, je tato úloha jednoduše řešitelná například pomocí TaskScheduler. Zajímavější situace nastává, pokud má aplikace bežet v clusterovém řešení. To znamená, že je potřeba řešit synchronizaci, aby nedocházelo k vícenásobnému spouštění jobů ve stejný čas. Snažili jsme…

05 01/12

XPath a Selenium testy

Luboš Račanský

XPath je dotazovací jazyk (query language) pro XML dokument. Nečekejte náhradu w3schools tutorialu, ale dozvíte se jak najít element v DOMu pomocí funkcí a atributů. Na názorném příkladu si ukážeme, jak lze XPath využít při psaní Selenium testů webových aplikací. Selenium používá jako lokátory například id, name, css selektor, text odkazu nebo právě XPath. Mějme následující HTML stránku. <html>…

14 12/11

IntelliJ Idea pro vývoj v Javě

Jaroslav Kavalec

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. IntelliJ Idea (dále jen Idea), je vyvíjena firmou Jet Brains, která se zaměřuje na vývoj špičkových vývojových nástrojů pro různé programovací jazyky,…

27 10/11

Získávání dat z HTML stránek

Milan Čečrdle

Na jednom projektu jsme potřebovali získávat informace z HTML stránek a využili jsme knihovnu jSoup. Její jednoduché použití si ukážeme na příkladu získání jednotlivých popisů volných pozic ze stránek Aspectworks. Pomocí metody connect a get() získáme načtenou stránkou Document doc = Jsoup.connect(„/volne-pozice“).get(); Stránka obsahuje „ul“ element s class = „subPages“, ve které jsou pod elementy „li“ uloženy jednotlivé pozice. Pomocí metody…

12 10/11

JTA v integračních testech bez aplikačního serveru

Milan Čečrdle

JTA tedy distribuované transakce se dost často použivájí v enterprise systémech, kde je potřeba přistupovat jak k více databázím, tak třeba v kombinaci databáze a messaging systém (např. Websphere MQ). Mezi vývojáři obecně panuje představa, že pro jeho využítí potřebuji aplikační server ala Jboss či Websphere, případně také, že bez EJB JTA nelze použít. Toto není samozřejmě pravda a např. pokud…

05 09/11

Jak na mock HTTP serveru

Roman Valina

Pro jednoho z naších zákazníků dodáváme C2DM – zasílání notifikací na mobilní telefon s operačním systémem Android. Tato služba je implementována jako HTTP request, ve kterém pošlete zprávu, registrační identifikátor instance zařízení s androidem a C2DM server se postará o doručení. Narazil jsem ale na problém jak vytvořit unit test, který ověří správný formát odesílané notifikace. Problém je právě v tom, jak namockovat…

29 08/11

AspectWorks nasazuje Liferay v Hypoteční bance

Josef Jelínek

Společnost AspectWorks zvítězila ve výběrovém řízení na projekt Proof of Concept portálového řešení pro Hypoteční banku.

12 08/11

Pokročilé integrační buildy

Luboš Račanský

Pevně věří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. SOA je buzzword, ale principy, které oprášil Roman Pichlík v článku Aplikace kontra Služba kontra Knihovna, stále…

22 07/11

Spring Integration + WebSphere MQ

Jan Bumbala

Na projektu u zákazníka jsme řešili připojení k externímu systému na Websphere MQ. Bohužel na MQ nebylo z nějakého důvodu zpřístupněno JMS, takže bylo potřeba používat nativní API. Pokud by bylo možné použít JMS rozhraní, integrace do aplikace by byla triviální. Protože jsme používali Spring Integration, stačilo by nakonfigurovat springový JMS inbound channel adapter. Takto bylo potřeba vytvořit vlastní adapter a použít…

30 05/11

Custom Spring Namespace + Embedded Groovy pre Business DSL

Martin Tibenský

Spring umožňuje pre svoju xml konfiguráciu okrem hromady dodávaných namespacov (jdbc, context, tx…) zaregistrovať aj vlastný namespace handler a tým používať custom xml tagy pre vytváranie bean, prípadne iné zasahovanie do contextu. V AspectWorks to používame napríklad pre konfiguráciu validátorov atp. Sila tohoto prístupu je však omnoho väčšia, v dnešnom článku si ukážeme malý príklad z praxe. Boilerplate kód…

17 05/11

Jaké problémy vyřeší Scrum

Luboš Račanský

Jako konzultant mám tu výhodu, že se můžu poučit nejen z chyb svých ale i cizích. Na následujících řádcích bych chtěl ukázat problémy a chyby, se kterými jsem se setkal a které by vyřešil Scrum a agilní metodiky obecně. Co je Scrum se dočtete na wiki, ale pro pochopení tohoto článku o Scrumu vlastně nepotřebujete téměř nic vědět.

14 04/11

Konečně profily ve Springu 3.1

Pavel Müller

Před časem vyšel nový Spring 3.1 M1 a krom jiného zavádí novinku v podobě profilů pro Spring beany. Na něco takového čekáme už od prvních verzí a dosud jsme to obcházeli neelegantními způsoby. Ale je to konečně tady! Podívejme se na to, jak to funguje. Základní problém je, když potřebujete různé konfigurace pro různá prostředí (vývojové vs. produkční), nebo když potřebujete svůj…

22 03/11

Proč psát javovské testy v Groovy II

Tomáš Piňos

Druhá část blogu o psaní javovských testů v Groovy přinese méně slov a více kódu.  Témata:Deklarace testovacích metod s JUnit Implementace rozhranní “mapou” Capture Libovolné řetězce jako názvy metod shouldFail? Testování XML výstupů A další… Konfigurace Mavenu Zkusili jste už psát testy v Groovy? K čemu dalšímu Groovy používáte? Podělte se o své zkušenosti v diskuzi pod článkem. Deklarace testovacích metod s JUnit Testovací…

22 02/11

Proč psát javovské testy v Groovy I

Tomáš Piňos

Chcete začít programovat v Groovy? Máte načtenou dokumentaci a tutoriály, ale stále čekáte, až se objeví příležitost, kde Groovy použít? Chtěli byste Groovy použít na aktuálním projektu, ale kvůli různým omezením to nejde? Začněte Groovy používat už teď pro psaní testů produkčního Java kódu. Proč se možností Groovy testů vůbec zabývat? Pokud ještě Groovy neznáte, asi váháte, co…

24 01/11

SOA, EAI, ESB – Mule nebo Spring Integration

Luboš Račanský

Tohle IA VHJ dělá kromě DKW BMW a NSU, KDF i MG. Za dvě LP KTO DKW mám na GO, když dostanu na ČVUT syna Kelblové. Zřejmě poznáváte úryvek z píseně Zkratky od Ivana Mládka. Význam několika z těchto vyjmenovaných zkratek mi není jasný. Občas mám podobný pocit i při čtení textů z IT oboru. Do zkratek SOA (service-oriented architecture), EAI (Enterprise Application Integration)…

03 12/10

3 důležitá nastavení Photoshopu

Richard Šerý

Děláte-li grafický návrh webu v Photoshopu, měli byste dodržet několik základních pravidel. Proč? Pokud je dodržíte, bude kodér schopen větší část Vašeho návrhu převést na web s přesností na pixel. A to se vyplatí.

01 12/10

Konfigurace Selenium testů ve Springu

Pavel Müller

obr.: Greg Robson V minulém článku „Selenium a návrhový vzor Page Objects“ jsem popisoval, jak strukturovat Selenium testy. Už tam ale nebylo rozebráno, jak je možné, že to celé dohromady funguje. Pokusím se tedy ukázat konfiguraci Selenium komponent ve Springu 3.0 a jak si připravit pohodlné předky pro testy a stránky. Na unit testy používáme JUnit 4 a…

23 11/10

GUI Design: Vzhled

Richard Šerý

Vzhled prodává. O tom žádná. Na druhou stranu, neexistuje žádná triviální rovnice typu „krásný produkt = obchodní úspěch“. Celá věc je složitější a k tomu, abyste mohli vzhled použít jako nástroj, potřebujete o něm určité věci vědět.

03 11/10

Jak pořád nepsat labely

Tomáš Piňos

Formulářová pole, validační hlášky, hlavičky seznamů, historie změn entity, … je mnoho míst, kde je potřeba pracovat s popisy polí, která odpovídají vlastnostem nějaké třídy. Tento blog představí tip, jak si rutinní činnost zjednodušit. Typická webová aplikace pracuje s množstvím formulářů, formulářových polí a jejich labelů, které se používají i při zobrazování výsledků validací, v hlavičkách seznamů nebo v různých…

18 10/10

Eclipse efektivně (3.) – Team Synchronizing

Luboš Račanský

Někde jsem se kdysi dočetl, že programátor musí umět skákat po kódu jako opice po větvích. K tomu musí znát dobře své IDE. Dnes si ukážeme dva tipy pro perspektivu Team Synchronizing a jeden pro vyhledávání. Uvidíte, že pokud je ještě neznáte, tak si je rychle oblíbíte.

23 09/10

Spring – MyBatis integrace a něco navíc

Tomáš Piňos

Článek popíše možnosti integrace Spring a MyBatis frameworků a představí užitečné rozšíření – factory na automatickou registraci Mapper rozhranní implementovaných XML definicí.   autor: mybatis.org   Pokud chceme na projektu integrovat Spring a MyBatis frameworky, nemáme zatím k dispozici oficiální Springem podporované řešení. Spring označoval MyBatis za “moving target”, ale oznámil, že ho bude podporovat ve Spring Data projektu….

09 09/10

Automatický update knihoven Ehcache a Quartz

Tomáš Piňos

Kolegové na projektu odhalili, že automatický update se stává populárním i mezi Java knihovnami. Po startu JBoss serveru se v logu objevil tento překvapující záznam: 19:29:49,544 INFO [main:][Server:504] JBoss (MX MicroKernel) … Started in 21s:130ms 19:29:51,763 INFO [net.sf.ehcache.CacheManager@14a4067:][UpdateChecker:98] New update(s) found: 2.2.0 [http://ehcache.org/news.html]. Please check http://ehcache.org for the latest version.  Záhy jsme přišli na to, že kontrolu aktuálnosti verze provádí…

20 07/10

JUnit result interceptor

Luboš Račanský

Před nějakou dobou jsme psali o vlastní anotaci @AfterFailure v JUnit testech. Naší motivací byly screenshoty neúspěšných selenium testů. JUnit od verze 4.7 má svoje řešení jménem TestWatchman. TestWatchman je v podstatě interceptor, který můžete zavěsit na události failed, finished, starting a succeeded. Ukažme si na následujícím příkladě, jak zareagovat na neúspěšný test a zjistit jméno třídy a název testu. Tento string používáme…

30 06/10

Selenium a návrhový vzor Page Objects

Pavel Müller

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 použít několikrát a že…

13 05/10

Generátor rodných čísel

Pavel Müller

V poslední době se věnuji automatizovaným Selenium testům jednoho obchodního systému. Při vkládání osob do systému je nutné zadat rodné číslo a systém provádí jeho validaci a sleduje, jestli je v systému unikátní. Abych mohl automatizovat funkčnost zakládání osob, tak jsem se rozhodl, že vytvořím generátor rodných čísel. Není vše ale tak jednoduché, jak by se mohlo zdát. Obvykle…

26 04/10

JUnit anotace @AfterFailure

Luboš Račanský

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é ukládat. Naopak jsme chtěli snímek jen v případě, když Selenium…

21 03/10

Unit testy nad in-memory databází

Richard Šerý

Použití in-memory databází pro testování je poněkud kontroverzní téma, ale nedělejte rychlé soudy – Tomáš Piňos na svém blogu naznačuje, za jakých okolností má testování za pomoci in-memory databáze svoje opodstatnění. Nenechte si ujít zajímavý článek „Unit testy nad in-memory databází„.

02 03/10

Rozbiješ build, seřve tě Tux!

Pavel Müller

V AspectWorks jsme fanoušky kontinuální integrace. Píšeme unit testy, snažíme se o dobré pokrytí kódu a s každým commitem do SVN spouštíme integrační build. Aktuálně používáme TeamCity jako server na kontinuální integraci. O selhaných buildech nás doteď informovaly emaily, Jabber, vyskakovací okýnka v Eclipse, atd. Nuda! Teď jsme si ale pořídili tu správnou vychytávku na notifikaci o buildech: Tux plugin do TeamCity.  Jak to funguje?…

09 02/10

Spring: podmíněná konfigurace

Luboš Račanský

Při vývoji aplikací ve Springu jste jistě narazili na problém nasazení do různých prostředí. Pravděpodobně jste to řešili vytvořením samostatných buildů. Ovšem ne vždy je to potřeba. Proč nenechat konfiguraci na adminovi? Existuje jednoduché a elegantní řešení jménem BeanReferenceFactoryBean.  BeanReferenceFactoryBean využijete zejména, nastavujete-li specifická prostředí, jako je TaskExecutor pro Scheduling, transakční manažer, autentizaci atd. Představte si například situaci, kdy v properties…

02 11/09

Testujeme s rozumem (2.) – Jak z UC získat TC

Zdeněk Jonáš

Při přípravě na testování projektu je zapotřebí vytvořit scénáře (postupy), které budou testeři procházet při testování. Scénáře by v optimálním případě měly pokrývat případy užití, pro které je aplikace vyvíjena. Máme-li rozumně zpracovanou analýzu, může být získání těchto scénářů relativně snadné.  Tyto scénáře testů nazýváme „testovanými scénáři“, anglicky test case, zkratkou TC. Co je to TC? Co by měl obsahovat?…

26 10/09

Hledání země nezemě

Tomáš Piňos

Kódy zemí, měn, bank, názvy měst a vesnic, poštovní směrovací čísla… Většina aplikací pracuje s nějakými číselníky. Kde ale vzít jejich hodnoty a nekrást? V tomto blogu chci projít a stručně charakterizovat zdroje, které jsem pro potřeby nedávného projektu našel a které se mi osvědčily.  Zkusme napřed pojmenovat možné způsoby, jak získat data pro číselníky na novém projektu. Přebírání číselníků…

19 10/09

GUI Design: Použitelnost

Richard Šerý

Není to tak dávno, co vývojáři webových aplikací zápasili s problémem, jak vůbec vytvořit GUI které by fungovalo. Díky postupující standardizaci se začátkem 21. století podařilo tyto potíže překonat a do ohniska zájmu se dostal druhý stupeň „pyramidy potřeb“ – použitelnost. Móda použitelnosti má ale i svoje stinné stránky – pro mnoho lidí jde víceméně o buzzword aniž by…

06 10/09

Eclipse efektivně (2.) – Quick Fix

Pavel Müller

V dnešním díle seriálu pro líné vývojáře (lenost je totiž motorem lidstva), se zaměříme na to, co nám Eclipse nabízí pod pojmy Quick Fix a Quick Assist. Sám nemám o rodílu mezi dvěma pojmy jasno a zdá se mi, že ani samotný Eclipse ne. Je možné, že původně měl Quick Fix sloužit jako rychlá nabídka možností, ale já to používám úplně…

01 10/09

Jak přesvědčit zákazníka, že potřebuje QA?

Zdeněk Jonáš

Dost často jsem v minulosti slyšel od obchodníků: „QA nikdo nechce platit. Jste drazí, nepotřebujeme vás“. Po zkoumání tohoto problému jsem přišel na následující dvě věci: Obchodník neví jak nabízet QA Zákazník netuší, proč by QA měl platit, chtít a vyžadovat. Hledal jsem přirovnání, které by pomohlo odstranit tuto neznalost a vysvětlit člověku neznalému softwarového vývoje, proč je QA…

30 09/09

JBoss Enterprise Platforms

Pavel Müller

Ve světě Javy jsou stovky frameworků a knihoven. Jak zajistit, aby komponenty Vašeho projektu bezchybně spolupracovaly? Jak instalovat nové verze či bezpečnostní záplaty těchto komponent, aniž by to mělo negativní dopad na zbytek systému? JBoss nabízí různé platformy pro vývoj enterprise aplikací s podporou aplikačního serveru JBoss, Apache Tomcat a několika známých frameworků (Spring, Hibernate). Flexibilita JEE Vývoj…

17 09/09

GUI Design: Funkcionalita

Richard Šerý

Tak jako stavba pyramidy, i stavba GUI musí mít solidní základy. A základem je tady funkcionalita. Pokud GUI nezajišťuje potřebnou funkcionalitu, není k ničemu. Dokud nemáme jasno ve funkcionalitě, je zbytečné se zabývat vyššími stupni, jako je použitelnost, design či estetika.   Analýza funkcionality Analýza funkcionality GUI je celkem jednoduchá věc – v zásadě na to stačí analýza…

09 09/09

Eclipse efektivně (1.) – Content Assist

Pavel Müller

Už delší dobu pozoruju, zejména na školeních, která vedu, že velká část vývojářů není dostatečně efektivní při práci s Eclipse IDE. K vytvoření samostatného kurzu na téma Eclipse efektivně jsem se zatím nedostal, proto jsem se rozhodl, že na toto téma alespoň napíšu sérii článků. Vůbec se necítím se být odborníkem na Eclipse. V podstatě už jsem jenom běžný uživatel a to, co…

26 08/09

Testujme s rozumem: Seriál

Zdeněk Jonáš

Jak rozumně začít testovat malý nebo středně velký softwarový projekt? Jako specialista na oblast testování a kvality se čas od času dostanu do rozjetého projektu, kde mám pomoci při testování aplikací. Povětšinou se nejedná bohužel o výpomoc, ale o záchranu projektu. Proč k tomu dochází?  Málokdy jsem se setkal s rozumnou přípravou práce pro testery. Povětšinou neexistovaly ani definované cíle testování, natož popsané jednotlivé…

10 08/09

LogDigger – server logy v browseru

Pavel Müller

Dnes jsem narazil na jeden plugin do Firefoxe, který umožňuje sledovat Log4J logy přímo v browseru, resp. ve FireBugu. Jmenuje se LogDigger. Přijde mi to jako skvělá věc, hlavně pro testování, kdy není aplikační server na localhostu. Nakonfiguroval jsem tedy LogDigger pro jeden náš aktuální projekt. Na serveru je konfigurace jednoduchá – přidá se jeden servlet filter: <!– Define LogDigger filter –>…

05 08/09

GUI Design: Seriál

Richard Šerý

Zjistil jsem že většina lidí, a dokonce i zkušených IT odborníků, nemá vůbec jasnou představu, co je to vlastně GUI design. Rozhodl jsem se tedy napsat krátký seriál o GUI designu, který by populárně naučnou formou přiblížil co to je, k čemu je to dobré a jak se to dělá.