Posts

Code != Clothing, or How to neatly structure your code

Having been worked with countless technologies , frameworks  and 3rd party libraries, I can say that I have seen almost every possible way of organising the code for a project. From the approach of putting every file in a single folder “just for now” (where “now” becomes “forever”, because moving things around is just too complicated), to the one of creating humongous, monolithic do-everything libraries (which I nicknamed “walls of code”), to have everything is in one place, to the theoretically more rational modular system, where files are organized in sub-folders.

The reason why I stress the word “theoretically” is that, while the idea is certainly good, it can still lead to a messy, hard to maintain mass of files. The key of everything, in this case, is finding what logic should be used to structure the code. It may seem a simple question to answer, but the way one answers to it can lead to nasty surprises. Read more

The first rule you need to observe to become a Professional Developer

The inspiration for this post came to me while reading a few invitations I received from some of the “modern contracting” websites. I’d like to thank them for giving me a chance of some good bashing, but I won’t write their names here as they don’t deserve free advertisement.

A bit of background

I registered on some of these websites some time ago, because I needed to outsource some work I could not do myself. Despite being the Client and, thus, looking for someone to hire, I also completed my professional profile in the Contractors section. I did it  because I like to know the background of people with whom I collaborate, and I think it’s only fair that they get to know about me as well.

The drawback of this is that now I also appear as a Contractor, which allows other Clients to invite me to submit proposals to their projects. I was aware of this, and I thought it would not have been a big deal to reject an invitation, from time to time. Also, I saw it as an opportunity to get in touch with new prospective Clients and establish a relationship outside these platforms. Things went as expected for a while, until I started receiving invitations so disgustingly arrogant that ticked me off. Read more

Golden Rule: a Developer is not a Priest

One may ask what do the two figures can have in common. It’s better explained with a preamble.

Today I was reviewing a website (link no longer available, sorry) created by my protégé, when I spotted something that inspired me to write this post. As I usually do, I visited it using several browsers, to check if pages render correctly in all of them. When I opened it with Internet Explorer, all I got was the following message:

We don’t like Internet Explorer.

I’ve seen many websites declaring a browser preference, usually in the form of “this website is optimized for browser X, version Y”, but this is the first one that clearly rejects one so “harshly”. I know the author of the website and I’m aware of the reason why he decided to do it, but, personally, I don’t recommend taking such position.

The message reminded me of an (unfortunately) common issue in the world of Software Development: technological religion. This term can can be described as an almost-fanatic preference of a tool over another, and it explains the title.  Read more