Wednesday, July 23, 2014

Review: Programming Groovy 2: Dynamic Productivity for the Java Developer

Programming Groovy 2: Dynamic Productivity for the Java Developer
Programming Groovy 2: Dynamic Productivity for the Java Developer
This book is well balanced around Groovy language. I would say there is minimal required knowledge regarding the language. The author (Venkat Subramaniam) fluently covered every important aspect of Groovy. But this book is for experienced developer. The accents were made only in scope of Groovy language and totally avoided any "intro" programming talks, which is actually cool.

Here is the book's structure:

  • Beginning Groovy - this part is dedicated to Groovy language features, especially from Java perspective. Reading this part I was building the parallel to Ruby trying to compare these languages. The main difference which I found it's only syntax "sugar". I.e. conceptually these two language are very similar. 
  • Using Groovy - this is a pragmatic part where were highlighted the next topics: Groovy GDK, XML Processing, working with DB,  working with Java.
  • Dynamic features (MOPing Groovy) - here were highlighted two main metaprogramming approaches: run-time and compile-time metaprogramming. Very interesting part. For me Groovy metaprogramming facilities are much clear comparison to Ruby metaprogramming.
  • Using Metaprogramming - it's pragmatic part where were highlighted the applications for Groovy metaprogramming features. It's very important to note that Groovy contains many pre-bundled classes/modules which are really nice samples of metaprogramming Groovy's features.
I highly recommend this book to everybody who is interested in Groovy language. This book highlights Groovy dynamic features.


References:

Monday, May 26, 2014

JEEConf - Kiev, 2014 - Report

I attended the forth JEEConf, May 23-24, 2014. The situation in my country (Ukraine) is difficult that's why I was amazed to see so many foreign speakers. The organizers did really tremendous work.

This year I divided topics by the next directions:
  • Spring
    • Spring 4, Java EE 7 or Both? by Ivar Grimstad
    • The main idea of the talk was to show similar and different parts of Spring 4 and Java EE 7. And have an ability easily identify when to use one or another. There are trade-offs and we should be aware of them.
    • Spring configuration: how to do it right (experience report), Mikalai Alimenkou
    • Mikalai shared his experience related to Spring configs. Nice talk. I'm going to borrow some ideas ;-)
    • Spring the Ripper, by Evgeny Borisov
    • It was the most dynamic talk at this conference. The presenter shown Spring life-cycle internals in action. Well done. It should be seen by every Spring dev :-)
  • Frameworks
    • Apache Lucene/Solr Internals, by Anatoliy Sokolenko
    • I had no experience with these technologies. And it was really nice intro. Now I have some clue how it works.
    • Streamline your processes with jBPM 6, by Jiri Svitak
    • It was an into talk into jBPM 6. I had small experience with competitor framework Activiti. It's always interesting to see the similar framework's features.
  • Java/JVM/Compiler
    • Java8: Stream Style, by Sergey Kuksenko
    • It was Java 8 Stream introduction. There were shown different stream features and approaches.
    • What Heap Dumps Are Lying To You About, by Aleksey Shipilёv
    • It's a very special talk related to Java "internals". Actually, this talk was about Java object size calculation and what happens under the hood.
    • Reflection Madness, by Heinz Kabutz
    • The presenter told us about Java reflection magic, when to use it and why it's dangerous.
  • Miscellaneous
    • Tooling of a Test-Driven Developer, by Paweł Lipiński
    • There were highlighted two very interesting libraries for TDD on top of JUnit: AssertJ and JUnitParams.Very interesting libraries
    • Web Apps in LISP!? EWW!, by Anatoly Polinsky
    • Here was shown different aspects of web development in Clojure for beginners. It's was real intro, but very interesting, especially when you'd like to spread your mind into alternative JVM-related communities.
It was very productive conference for me. I've got new portion of inspiration, new knowledge and passion to ordinary things.

See: