Good names should consider their context

With good names for packages, classes, methods, variables,… code should be self-explanatory.  Long method names are not a problem if they really make code read better and don’t reveal too much implementation details. Names are more powerful than most...

PDF manipulation…. oh my god!

I am using LeanPub to create some manuals and it’s a very nice service.  You just have to use Markdown to write your document and it generates a good looking pdf document from it. Well, as far as I’ve read today it’s actually kramdown a superset...

My experience at the IronHack

  I am one of the lecturers/mentors of the first IronHack edition, a training program for people who want to become professional developers. My part takes only three days and it’s been this week. Three full-day hands-on sessions on JavaScript, TDD and...

Isolation with jMockit: Stub out System from Java JRE

In general I prefer to wrap up system functions so that I can inject test doubles and test drive my designs easily. In general is not a good idea to mock objects you don’t own. But this time I was doing some research, preparing one edition of my Online Training...

Do not create unnecessary methods

Methods should be short, from 1 to 7 lines of code, maximum 10 in some cases (with the exception of some algorithms). Because a method does just one thing its name should describe it precisely. But it should not contain implementation details (like data types). The...

Return: get out as soon as possible

I believe the idea of a single exit point for functions comes from the 70’s. A function used to have only one exit point, a single return statement. I still see some developers doing this but it’s not a good idea. As soon as you have found what you were...

WebSockets and Android

I didn’t know that the default browser installed on Android is called Webview. I haven’t created any native Android app ever. But I wanted my web app to run on Android using Websockets. Unfortunately, websockets are not implemented in Android Webview. In...