Posted by: Ivko | November 22, 2009

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

В последните минути на тази седмица, ето какво се случи в нея. Голямата новина дойде от Антверпен, където се провежда най-голямата европейска Java конференция Devoxx. С две думи – Closures in Java. За повече подробности, четете следващите редове…

Новина на седмицата

Безспорно новината на седмицата е обявеното в сряда на Devoxx намерение на Sun да вкара simple closures в JDK 7!

Първо малко предистория. Closures са познати от функционалните програмни езици. Те представляват езикови конструкции, които най-общо казано позволяват не само променливи или literal-и да се подават като параметри на методи, но и цели блокове код. Най-близки до closure-ите в Java езиците са anonymous inner class-овете.

Още от самото начало на дискусиите какво трябва да има в JDK 7 и в Java езика, closure-ите бяха поставени на масата. В крайна сметка от многото предложения оцеляха три. Sun обаче категорично отказаха да добавят тази конструкция в езика и нещата останаха да се пекат за JDK 8.

Тази седмица обаче всичко беше разбито на пух и прах. От Sun обявиха, че JDK 7 ще излезе през септември 2010 и че все пак ще има closures. От показаното изглежда, че поне като синтаксис нещата ще приличат на FCM предложението на Stephen Colbourne. Самият той не пропусна да се похвали за това. Това естествено не е базирано на нищо конкретно като предлжение, а само на няколко примерни слайда от Devoxx презентацията на Mark Reinhold. Все още няма и официален JSR.

Междувременно Java champion-ът Cay Horstmann написа доста полезен blog, в който накратко описва приложението на closure-ите. Има и интересна (особено за българските голф-играчи) закачка с едно от предложенията🙂

За край, бих се приземил малко и бих намалил еуфорията си с мнението на главния редактор на java.net: наистина ли искаме да правим кода си по-лесен за писане, но по-труден за четене?

Internalize the iteration of a collection

Излезе 178-ият брой на Java Specialists newsletter-а. В него е представен един метод за обхождане на колекции чрез итератор, като контрола е в самата колекция, а не в клиентския код. Клиентът само трябва да предостави един Processor interface, който да бъде викан при итерирането на колекцията. Едно от големите предимства на този подход е, че самата колекция, а не клиентският код, се грижи за thread safety-то на тази итерация. Отделено е специално внимание на lock-ването (read и write) при различните операции за достъп и промяна на колекцията.

Във втората част е показано как с помощта на сравнително сложни Generic декларации се опростява клиентския интерфейс на нашата колекция.

Както всяко издание на newsletter-а и това разглежда в дълбочина някои не-тривиални проблеми. На мен ми трябваха два прочита, за да вляза в час с това, което ни преподава Heinz M. Kabutz.

Get started with TDD

Един от най-големите привърженици на писане на testable code Misko Hevery има доста интересен подход да прокламира Test Driver Development-а (TDD). В последния му post ни показва един много прост калкулатор направен като Swing приложение следвайки Model View Controller (MVC) pattern-а. Това приложение в този му вид обаче има един единствен feature – при първоначалното си зареждане да показва “0.” на дисплея. Естествено за този feature си има и подобаващ unit test.

Предложението на автора е самите читатели постепенно да разширят feature-ите на controller класа с помощта на TDD практиките, като даже е предложил за начало четири unit test метода. За да свалите програмата обаче ви трябва инсталиран Mercurial клиент. Mercurial е Version Control System, подобна на CBS и SVN. Аз опитах с eclipse plugin-а, но не можах да инсталирам самия plugin поради проблеми с dependency-тата (може би защото го пробвах на Eclipse 3.5). След това обаче си инсталирах TortoiseHg и с него стана.

Приятно кодене!🙂

When to choose Spring

Препоръчвам ви това интервю с Willie Wheeler – съавтор на предстоящата да излезе книга Spring in Practice. То е за всички, които все още не са сигурни искат ли да ползват Spring или не. То е и за всички, коите все още не са сигурни трябва ли да учат Spring и вобще какво включва този така коментиран framework. То е и за тези, които се интересуват какво ни чака във версия 3.0.

За финал, очаквайте тази седмица първата по-обширна статия в този блог.


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: