Yegor Bugayenko's Blog, page 12

April 1, 2019

Software Project Review Checklist

A few years ago I wrote about the independent technical reviews any software project must regularly go through in order to make sure everything is under control. I even said recently that there is no excuse for not doing them. Moreover, the more we trust programmers, the higher the necessity to review their projects regularly. Here is a short summary of what a report from a reviewer must include.

[image error]The People vs. Larry Flynt (1996) by Milos Forman

I tried to touch on this subject in a few rece...

 •  0 comments  •  flag
Share on Twitter
Published on April 01, 2019 17:00

March 25, 2019

How to Create a Java Web Framework from Scratch, the Right Object-Oriented Way

How do you design a web application in Java? You install Spring, read the manual, create controllers, create some views, add some annotations, and it works. What would you do if there were no Spring (and no Ruby on Rails in Ruby, and no Symphony in PHP, and no ��� etc.)? Let���s try to create a web application from scratch, starting from a pure Java SDK and ending with a fully functional web app, covered by unit tests. I recorded a webinar no.42 about it just a few weeks ago, but this article...

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on March 25, 2019 17:00

March 18, 2019

Logging Without a Static Logger

How do you organize logging in your applications? I mean web applications or command line apps, or even mobile apps. I bet you have some global variable or a singleton, known as Logger, which has a few methods like info(), error(), and debug(). You configure it when the app starts, or it configures itself via something like log4j.properties, and logs everything to the console or a file, or even a database. I was doing exactly that, or something very similar, for many years, until I finally re...

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on March 18, 2019 17:00

March 11, 2019

How Data Visibility Hurts Maintainability

I���ve been writing so much about object-oriented programming and its pitfalls, claiming that most of the design patterns and ���good practices��� which we are accustomed to are actually wrong and hurtful, that I totally forgot to explain the bigger picture problem. Someone asked me some time ago in the blog post about ���naked��� data: What is the problem we are solving and why exactly does maintainability suffer if we don���t encapsulate our data enough? Here is the answer.

[image error]Taboo (2017) by...
 •  0 comments  •  flag
Share on Twitter
Published on March 11, 2019 17:00

February 11, 2019

Why I Want to Live in Silicon Valley

You remember my blog post about Why I Don���t Want to Live in Silicon Valley, don���t you? Read it first if you haven���t already. The gist of it is that Silicon Valley is a place with a lot of troubles. No one should want to live there, according to that previous post, right? That is what many of my readers concluded, but they were wrong. Despite the problems, the place is definitely unique and there are a lot of reasons why you may want to consider it as a great place to live, for a few yea...

 •  0 comments  •  flag
Share on Twitter
Published on February 11, 2019 16:00

February 4, 2019

Zache: A Simple Ruby In-Memory Cache

A month ago I stumbled upon a problem: I wasn���t able to find a Ruby gem which would do in-memory caching with the capability to expire on timeout. After some quick research I decided to implement my own and called it Zache (as in ���zero cache,��� since there is no back end). Here is how it works:

First, you create the cache:

require 'zache' zache = Zache.new

Then you fetch the value by the key, also providing the block which will be executed if the key is absent or expired:

x = za...
 •  0 comments  •  flag
Share on Twitter
Published on February 04, 2019 16:00

February 2, 2019

How to Deploy Maven Artifacts to CloudRepo via Rultor

[image error]

In my previous article, I described how to set up a private Maven repository in Amazon S3 and deploy there via Rultor. This is a great solution if you���re familiar with managing Amazon Web Services (AWS), S3, and AWS Identity and Access Management (IAM). However, if you���re not comfortable administering an AWS account and all the related permissions, you may want to store your Apache Maven Artifacts in some cloud based repository manager instead. Here is how you make Rultor deploy your Mav...

 •  0 comments  •  flag
Share on Twitter
Published on February 02, 2019 16:00

January 28, 2019

My Recipe Against Dependency Hell

Do you specify exact versions of your dependencies? I mean, when your software package depends on another one, do you write down, in your pom.xml, Gruntfile, Gemfile, or what have you, its version as 1.13.5 or just 1.+? I always thought that it was better to use exact version numbers, to avoid the so called dependency hell, and I was not alone. However, very soon I realized that dynamic versions, like 1.+, give more flexibility. Just a few weeks ago I realized that neither approach is right a...

 •  0 comments  •  flag
Share on Twitter
Published on January 28, 2019 16:00

January 21, 2019

10x Paychecks for 10x Programmers

You most definitely have heard about 10x programmers. The gist of this folklore is that some of us coders are very effective (10 or even 100 times more so than others), while the rest are just ���normal.��� It is definitely not a myth though.

[image error]Fargo (TV Series, Season 3) by Noah Hawley

Robert Glass in his Frequently Forgotten Fundamental Facts About Software Engineering (2001) essay said that ���good programmers are up to 30 times better than mediocre programmers, according to ���individual d...

 •  0 comments  •  flag
Share on Twitter
Published on January 21, 2019 16:00

January 14, 2019

What if the Architect is Wrong?

You most probably know what I think about the architect role on a software project���it���s that of a dictator who makes all technical decisions and who bears the entire responsibility for the final result. I wrote about it and even gave a task Who is a Software Architect? at BuildStuff in 2016. However, the obvious question you may ask is: What happens if the architect is wrong? Does it mean the entire project is at risk of failure? And isn���t it better to make the whole team responsible fo...

 •  0 comments  •  flag
Share on Twitter
Published on January 14, 2019 16:00