Edito March 2014
We are initiating a new set of articles in order to give you our opinion concerning what's happening in the Tech world.
Javascript, ma muse ?
#WebFront In this beginning of year 2014, Javascript MVC frameworks are everywhere. Gaining momentum in 2012 and 2013, they are now well established. According to our customers' demands, these technologies must be under control in 2014. If one of your New Year's resolution is to learn a Javascript MVC framework, the first step is to choose one. Beware : this choice must not be definitive. Go for it but regularly keep in touch with what's happening, evolution is very fast. This month we have chosen an article from Craig McKeachie providing a map of Javascript MVC frameworks as of September 2013 : Choosing a JavaScript MVC framework. Instead of doing a simple comparison based on features, Craig is opposing different aspects : community, leadership, philosophy, dependencies, ... As of date, we, Octo, have chosen AngularJS and Backbone.js. Tip : if you choose AngularJS, here is a link which could help you : Ultimate guide to learning AngularJS in one day.
Refactoring, always forever !
#SoftwareCraftmanship 2014 : it's not only about disruptive technologies. Martin Fowler reminds us what are the different refactoring use cases (or workflows) which we may met one day of our developper's life : Worflows of Refactoring. If you, readers, are not yet refactorers, take a look at these slides and you will understand how refactoring is a base element in a developper's life (who said Software Craftmanship ?). Because we are not fundamentalists but pragmatics, let's remind these 2 sentences from Martin : "Remember the economic justification" et "Balance refactoring with feature delivery".
Fest Assert is dead, long live AssertJ
#SoftwareCraftmanship Refactoring means Unit Tests. We would like to use the new design of AssertJ's website to remind you that this project is an active fork of the very popular library Fest Assert. As an old contributor of Fest Assert, Joël Costigliola has wanted to come back to a community driven library, with many assertions. We advise you to try this library if you still have not yet. If you don't use such a framework to write readable or customized assertions, or if you are still sing the old Fest Assert, go for it : AssertJ !
NoSQL challenging
#NoSQL If you are interested in NoSQL databases, you should take a look at these articles from Kyle Kingsbury (named Call me maybe : Riak, NuoDb, Cassandra, Kafka, MongoDB, Redis). He is shaking them to find their limits in terms of durability, consistency, performance : he is looking for promises and then verifies them (!). It's a must read for both content and approach, or even if you want to quickly challenge a NoSQL database according to your needs.
#NeverEndingDebate #AdaptAndProgress
#SoftwareCraftmanship We would like to point an interesting article concerning Software Craftmanship movement : Pairing vs Code Review : Comparing Developer Cultures. You can find dozens of articles following the classical schema "[Advantages|Drawbacks] of [Pair Programming|Code Reviews]", but Paul Hinze wants to do a Developer's Culture approach. His conclusion : admit your weaknesses and get better. If you still don't have one, find a team for which code and best pratices are important and solve problems together. According to us, regardless you are doing Pair Programming, Code Reviews or a mix of them : do your own cooking to improve yourself (Continuous Improvement).
Advanced Optimizations
#Performances A new JDBC pool made the buzz : HikariCP. This JDBC pool has been announced as the fastest of the moment with "zero overhead". We advice you to read the very instructive explanations of their optimisations : Down the Rabbit Hole. The author did a benchmark which happened to be too optimist. Fortunately, he completely rewrited it and now the results are more realistic but still promising. We recommend you to use Tomcat JDBC Pool or HikariCP (be careful, it is still young), which seems to be the fastest on the market and to avoid using DBCP and C3P0.