Posts tagged with "development"

All posts related to development

Practice of Reliable Software Design

In his article Practice of Reliable Software Design, kqr offers compelling perspectives on software design principles.

His thoughts on building reliable software carry significant implications for both developers and stakeholders alike:

It is much easier to add features to reliable software, than it is to add reliability to featureful software.

This quote illustrates a common misconception in software development cycles. Many organizations misinterpret the principle of shipping early, viewing it as permission to rush out buggy features quickly. However, the value lies in delivering small, reliable components first, then iteratively building upon that stable foundation. This approach gives us practical insight into our design decisions and their real-world effectiveness. Another important but frequently neglected aspect kqr highlights is the importance of establishing clear boundaries and limits in our systems.

I’ve learned through experience that seemingly functional code often breaks down precisely because it lacks defined constraints, eventually depleting critical resources. When these issues emerge, implementing fixes becomes increasingly difficult and expensive. That’s why designing a system, should includes deliberate consideration of it’s intended capacity, imposing appropriate limitations rather than allowing unchecked growth.

The article also explores other significant aspects of reliable software design, such as the importance of testing, simplicity, and working with existing solutions. A thoroughly enjoyable and insightful read!

Read more

rails-diff - compare rails generated files

rails-diff via Ruby Weekly #740 is a tool which allows comparing the files generated by Rails during the installation or upgrade process with their current version in the local repository.

When dealing with Rails upgrades, or with generator *:install commands, I often find that figuring out the diffs and what needs to get updated or removed is the least enjoyable part of the process.

I have yet to try this tool, but lately I’ve been thinking of a few ways to improve this process:

  1. Make the diff easier to deal with by adding your own edits at the end of the generated files, unless changing a generated option value.
  2. Move your own changes to dedicated files which, by limiting the changes to the generated files to a minimum, would make dealing with diffs easier.

Either way, I’ll try these approaches on our applications at work and hopefully make upgrading Rails an enjoyable experience.

Read more