Posted by: Ivko | November 29, 2009

Избор на седмицата (48/2009)

Тази седмица представям на вашето внимание няколко статии за алтернативни езици върху JVM-а – JavaFX и Groovy. Има и две много интересни препратки към един от определените от Цецо за мои идоли (ама верно John Ferguson Smart е много як ;-)).

TDD with legacy code – introduction

Таааа, често цитираният от мен John Ferguson Smart започва една серия на тема Test Driven Development with legacy code. Всички ние сме изпадали в ситуация да ни се налага да поддържаме стар код, който по една или друга причина не е пригоден за unit testing. И ако има някакъв bug, който сме оправили, се чудим как да го изтестваме. В крайна сметка или пускаме ужасно сложен интеграционен тест, който в повечето случаи отнема неколкократно повече време от самия fix, или (по-лошо) публикуваме промяната си без да сме я тествали.

В първата част от тази интересна серия авторът ни показва как с много малък re-factoring можем да си улесним живота при тестването на проблеми открити в статични методи на collaborator обектите на клиентския ни код.

JavaFX howto

JavaFX е отговорът на Sun на съществуващите до момента Rich Internet Application (RIA) платформи като Flash и Silverlight. JavaFX обаче не е само платформа за интернет приложения, но и за всякакви Rich клиенти. Да си призная, не съм много навътре с технологията (даже хич), така че бих се въздържал от повече изречения по темата, за да не стана смешен. За мен, а и за тези от вас, които се чудят от къде да започнат и как да продължат своето обучение по темата JavaFX е горния сайт. Той е разделен на скеции, които следват разработването на стандартна JavaFX програма. Някои от статиите съдържат и пълния source код на примерната програма. Мисля, че това е доста полезно за един quick start. А иначе преди броени седмици излезе тази книга по темата (още я няма на Amazon обаче).

Groovy example

В този обширен blog post авторът се опитва да ни убеди колко е добро Groovy и с какво превъзхожда Java. Като въведение набързо са изброени предимствата на динамичния език (който въпреки всичко си се компилира до java byte code и е изцяло съвместим с Java).

За да демонстрира само част от тези предимства, авторът разработва един Морски шах, при който компютърът се самообучава с течение на времето. За това се ползва вече доказан алгоритъм, но основната цел на автора е да демонстрира колко по-бързо и лесно се правят обикновени операции като работа със stream-ове или map-ове да речем в Groovy. Показана е и силата на closure-ите (и то в много малка част). А както вече знаем от миналата седмица – в Java 7 ще има closures.

За всички, които искат да учат Groovy, препоръчвам тази книга.

Data-driven tests with JUnit 4 and Excel

Преди седмица ви разказах за новостите в JUnit 4. Една от тях беше писането на параметризирани тестове. Другото наименование на този тип тестове между другото е data-driven tests. При тях всъщност имаме един тест, който се пуска много пъти, но с различни входни данни. Тези входни данни идват от един специален метод, анотиран с @Parameters, който връща колекция. С нея се инициализира теста при всяко негово пускане (JUnit взъщност вика конструктора му).

В тази статия авторът ни показва как много лесно може нашите данни да идват от Excel spreadsheet вместо да са навряни вътре в кода на теста или в някакъв текстов/XML файл. Самият тест е леко променен вследствие на това – използва Apache POI, за да прочете xls файла, да зареди данните от там и да ги върне в инициализационната колекция.

Поредната полезна статия от автора на Java Power Tools John Ferguson Smart.🙂


Responses

  1. Ама Ибрахимович хубав гол вкара, а?

  2. с Flush да не би да намекваш че технологията на Adobe е за кенефа🙂

    не можах да намеря RSS линка за твоите словоизлияния

  3. Цецо, ти като един футболен помощник треньор, треа да оцениш работата на Дани Алвеш. Както за гола, така и за пропуска на Меси!

    Пешо, напълно си прав! Вече за втори път пиша флаш като Flush. Не е нарочно, много се кефя на флаш паметите. Оправих го. Ще го видим това с RSS линка след малко😉


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: