Bogdan Gusiev's blog

How to make good software for people

"Naming Things" Solution
23 Nov 2017

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.

principles software naming code

Guiding Software Development Principles
07 Jul 2017

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.

principles software it imperfection

Something is wrong with Single Reponsibility Principle
12 Jan 2016

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?

srp criticism tools

Choosing a Templating Language
06 Feb 2015

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.

templates frontend ruby javascript

My Talk from RubyC conference
25 Jul 2014

Here is a video from the excellent Rubyc conference. Hope you will find this video funny as well: All about parsers in ruby

slides video conference parsers

Took part in a podcast with Alexey Vasiliev
27 May 2014

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:

podcast opensource contribution datagrid ajaxsubmit

Minimalistic State Machine: Less is More
01 Apr 2014

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…

rails validation statemachine criticism

Datagrid slides from Ruby Meditation 3
04 Nov 2013

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.

slides datagrid gem rails activerecord report

Support validation through ajax in Rails 4.x
24 May 2013

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.

rails contribution javascript ajax validation

Attach git commits to pivotal stories
08 Apr 2013

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.

git commit gem pivotaltracker