Yegor Bugayenko's Blog, page 2

April 11, 2025

Four Builds: A Balance Between Quality and Joy

How long should it take to know if your code is safe?Martin Fowler once said: 10 minutes.Ten years later, five hundred developers agreed.I disagree���with all of them.First, ten minutes is not enough for a proper build, even for a small software system.Second, ten minutes is too much for a build that we run from the IDE after every one-line edit.We need a finer-grained classification of builds: from bullet-fast to thorough and dead slow.

[image error]Trainspotting (1996) by Danny Boyle

How long sho...

 •  0 comments  •  flag
Share on Twitter
Published on April 11, 2025 17:00

December 14, 2024

Advice for First-Time Open Source Contributors

My first attempt to contribute to an open source repository was amiserable failure. I picked a Java repository I was already using(Glassfish Jersey), created a unit test for an existing class, submitted apatch (there were no pull requests at that time), and��� it was merged. I gotexcited and submitted another unit test in a new patch. No surprise, therepository owners asked me to stop fooling around: apparently, they didn���t needunit tests just for the sake of it. I quickly lost interest ...

 •  0 comments  •  flag
Share on Twitter
Published on December 14, 2024 16:00

September 20, 2024

���������������������� ����������

���������� �������������������� ���������������� ���� ������ ��������: ������ ���������� ����������, ������ ���������� �������� �� ������������������������������ �������������� �������������� �������� ���������� �� �������������� Telegram-��������������. ���������������������������������� ���������������� ������������. ������������ ������, �� �������������� ���� ������������������������ ���������������������������������������� ��������������, �� ���������������������������� ���������� �������...

 •  1 comment  •  flag
Share on Twitter
Published on September 20, 2024 17:00

July 6, 2024

Files.fileExists or file.exists?

How would you design a class that abstracts, say, a file on a disk with certainproperties? Let���s say you need to be able to check whether the file exists onthe disk or has already been deleted. Would you create an object first and thencall the exists() method on it, or would you call Disk.fileExists() firstand only then, if TRUE is returned, make an instance of the File class andcontinue working with it? This may sound like a matter of taste, but it���s notthat simple.

[image error]Capote (2005) b...
 •  0 comments  •  flag
Share on Twitter
Published on July 06, 2024 17:00

File.exists or Files.fileExists?

How would you design a class that abstracts, say, a file on a disk with certainproperties? Let���s say you need to be able to check whether the file exists onthe disk or has already been deleted. Would you create an object first and thencall the exists() method on it, or would you call Disk.fileExists() firstand only then, if TRUE is returned, make an instance of the File class andcontinue working with it? This may sound like a matter of taste, but it���s notthat simple.

[image error]Capote (2005) b...
 •  0 comments  •  flag
Share on Twitter
Published on July 06, 2024 17:00

June 22, 2024

Win the Medals While Young

One of the most frequently asked questions I hear from junior programmers(no matter their age) is: What should I focus on now to build the best career Ican? There are multiple options, including creating a startup, getting a PhD,contributing to open source, working for Google, and many others. In myopinion, the most common mistake is trying to get rich fast. Obviously,money matters and is the ultimate metric of career success, but trying to get it tooearly is nothing more than gambling wit...

 •  0 comments  •  flag
Share on Twitter
Published on June 22, 2024 17:00

June 8, 2024

Patents and Their Claims

If you, like me, are not a patent attorney and don���t understand patent law,but your boss asks you to turn your recently written piece of code intoa patent, read on. The boss most probably won���t ask you to write the entirepatent. Instead, he will ask you to prepare a quick summary of the invention(usually, a few slides) and then a hired lawyer will turn it intoa full-scale patent application. If you understand the purpose of patents,the mechanics of patent offices, and the format of a p...

 •  0 comments  •  flag
Share on Twitter
Published on June 08, 2024 17:00

May 26, 2024

������������ ����������������

�� ������������, ���������� ���������� �������������������� ���� ���������� �������������������� ���������� ���� YouTube?������ ������.14 �������������������� �������������������� ���� ���������� ������ �������� ������. �� ���������� ��������������������. ������������������������������, �� ������ ������ ����������? �������� ������ ��������? ���������� ������������ �� ������ ����������? �� ������������������ ������������, ���������������������������� ����������-���� ���������� ��������������...

 •  0 comments  •  flag
Share on Twitter
Published on May 26, 2024 17:00

April 1, 2024

���������������� ��������

�� ���� �������������� �� �������� �� ���������� �������������� ���� ����������. ���� ����������, ���� ����������,������ ������ ������ �� ��������: �� ���������������������� ������������������, �� ������������������ ����������������,�� ���������� ������������ �� ����������, �� ���������� ���� ���������������� �� ������������������������ ������������������������������ ������������ �������������� ����������. ������ ������ �������� ������������ ������, ������ ������������������������������ ����...

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

March 31, 2024

Ping Me, Please!

There is a big difference between distributed and collocated teams: thecommunication in distributed teams is asynchronous, which essentiallymeans that when you ask something, a response doesn���t arriveimmediately. Moreover, it may never arrive. This can be veryuncomfortable for those who are used to the office work setup, wheremost communications are synchronous: any question is answeredimmediately, one way or another. In open-source repositories,everything is asynchronous. Here is a sim...

 •  0 comments  •  flag
Share on Twitter
Published on March 31, 2024 17:00