Naming things in software is really a big deal. It gets harder and harder over time when a code base gets larger.
I’ve never encountered an article that would try to address the issue. So here, I will try to define good name criteria as well as naming strategies that appeared to be useful in my experience.
It is becoming popular to talk about software development principles from time to time. The new major concepts appear and die due to the fact that most of them are designed to be perfect but they are not. If you would stay in IT long enough, you encounter articles and talks where people discovered an amazing concept “X” that solved all their development problems and brought their team to inevitable success. Unfortunately that “permanent success” is usually temporary or even a self-deception. The truth is: there is no silver bullets in software development just like in any other engineering process. Engineering of world class products requires precise resources control, trade offs and balance between easy and complex, fast and slow, and beautiful and ugly. Here, I will try to explain my guiding software development principles as well as the why-s.
I’ve never been a fan of Single Responsibility Principle aka SRP
If any physical thing I used has multiple responsibilities, why would software be built from SRP things?
Whenever you are serious about choosing the frontend template engine to generate HTML, here is some advice how you can make your choice easier and
more effective. There are too many template languages right now, but there are only a few main criteria how you can limit your selection to 2-3 of them before
getting into details.
Here is a video from the excellent Rubyc conference. Hope you will find this video funny as well:
All about parsers in ruby
Last weekend I took part in the a podcast with Alexey Vasiliev. We talked about my path in Open Source, Rails and IT industry in ukraine.
It is all in Russian.
You can listen it here:
http://www.rwpod.com/posts/2014/05/24/cafe-002.html
I have tried a bunch of ActiveRecord’s state machine gems.
Their functionality is very close to each other. It allows to validate a state transition
and reinvent ruby programming language to define transition methods.
The fact that all of them produces custom API to define a ruby method doesn’t look right…
Here are my slides about Datagrid gem from Ruby Meditation Conference last weekend.
Datagrid is a gem I’ve released almost 3 years ago. It is focused on table data representation and now allowes a full power flexibility to be called a Framework.
http://github.com/bogdan/datagrid
I have a constant feeling that in a modern web every web form should be submitted with AJAX not the old retro way with POST request. This is better for numerous reasons.
At first, it gives better user experience
At second, AJAX is faster than regular request.
At the end, it doesn’t require a work to redraw the page with it’s previous state if validation fails.
Currently I am trying to make rails app support this out of the box.
And here is first small step to this goal:
This patch allows a complete validation though ajax using active model validators.
This is a live demo of what it allows to do.
If you feel especially interested in this feature, say your +1 here or on github.
I heard about 10 different ways to organize work flow around pivotaltracker and git and about 5 gems to support that process.
All of them seems abusing for me: the outcome of pivotal/git integration is a git commit attached to pivotal story and the rest of conventions like naming branches or merge policy doesn’t make any sense in long time perspective and is just a waste of time in fact.
That’s why I’ve decided to make the most trivial integration that covers this idea and don’t provide additional complexity:
Meet git-storyid gem - the only one git/pivotaltracker integration that saves your time.