Yegor Bugayenko's Blog, page 8

November 14, 2020

Software Quality Award, 2021

[image error]

This is the seventh year of the
Software Quality Award. The maximum prize
is still the same���$4,096.
The rules are still the same. Read on.
Previous years are here:
2015,
2016,
2017,
2018,
2019,
2019.





Here is the form
to fill out.



Rules:





One person can submit only one project.




Submissions are accepted until September 1, 2021.




I will check the commit history to make sure you���re the main contributor to the project.




I reserve the right to reject any s...

 •  0 comments  •  flag
Share on Twitter
Published on November 14, 2020 16:00

November 9, 2020

Strong Typing without Types

In 1974, Liskov and Zilles defined
a strongly-typed
language as one in which ���whenever an object is passed from
a calling function to a called function, its type must be
compatible with the type declared in the called function.���
Strong type checking,
without doubt, decreases the amount of
type errors,
which leads to higher quality. However, the question is:
do we really need types in order to strongly enforce typing?





[image error]Redirected (2014) by Emilis Velyvis

For example, this is a place where ...

 •  0 comments  •  flag
Share on Twitter
Published on November 09, 2020 16:00

November 2, 2020

The Pain of Daily Reports

A few days ago I asked

followers to vote in a
simple poll.
They did, screaming in comments that only a stupid
incompetent manager would ask programmers to send daily reports,
while everything they do can easily be tracked in tickets, Git history, and so on.
Indeed, why on earth would a sane manager ask software engineers, already very busy with coding,
to spend time on writing these ridiculous reporting emails?
Let me try to give you a good reason.





[image error]Norsemen (2017) by Jon Iver Helga...
 •  0 comments  •  flag
Share on Twitter
Published on November 02, 2020 16:00

October 26, 2020

New Metric: the Distance of Coupling

Encapsulation,
as you know, is one of the
four key principles
in object-oriented programming.
Encapsulation, according to Grady Booch et al.,
is ���the process of hiding all the secrets of an object
that do not contribute to its essential characteristics.���
Practically speaking, it���s about those private
attributes that we use in Java and C++: they are not visible to the users of
our objects, that���s why they can���t be modified or even read.
Booch et al. believe that the purpose of encapsula...

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on October 26, 2020 17:00

October 12, 2020

Lack of Problem Is the Problem

Do you know the most typical mistake startup founders make
when they pitch their ideas to investors? According to
Jake Mendel
from Silicon Valley Bank, they often focus on the solution they propose
instead of the problem they are trying to solve. Inability to identify
the problem is the common cause of startup failures. However, it���s not only them.
Look at your project and try to answer
���What���s wrong with the world now?��� and then ���How is this product fixing it?���





[image error]Le retour du h��ro...
1 like ·   •  0 comments  •  flag
Share on Twitter
Published on October 12, 2020 17:00

October 5, 2020

Spell Check Your LaTeX Writings Using GNU Aspell

Do you use LaTeX
for your academic and technical writings? You don���t?
Well you should! It���s the most only professional instrument for
making properly formatted PDF documents.
MS Word and Apple Pages are for secretaries non-tech people,
while LaTeX is serious. It���s perfect in so many ways, thanks to
Donald Knuth
(the creator of TeX) and
Leslie Lamport
(the author of LaTeX),
but it lacks one very convenient feature:
spell checking.
The only solution I���ve found so far, which works perfectly...

 •  0 comments  •  flag
Share on Twitter
Published on October 05, 2020 17:00

July 28, 2020

Open Source Etiquette

Here is a short list of common courtesy rules for open source
software development. Actually, they apply elsewhere also, but they are most
visible when you do GitHub-based coding. I strongly believe that
sooner or later all programming will be open source and these rules
will apply to everybody. Consequently, it makes sense to start following them now,
whether you are an active Apache contributor or a happy owner
of the ���Java for Dummies��� book.





[image error]Hong Kil-dong (1986) by Kil-in Kim

In no pa...

 •  0 comments  •  flag
Share on Twitter
Published on July 28, 2020 17:00

June 22, 2020

To Measure or Not to Measure

The question was asked
on StackExchange nine years ago (just around
the time the site was launched): ���If not
lines of code, then what is
a good metric by which to measure the effectiveness of remote programmers.���
The answers,
not surprisingly,
were all along this line: programmers are not supposed to be measured!
I bet those who answered were programmers themselves.
Indeed, why
would a programmer be interested in being measured and being
reduced to a mere number?





[image error]Better Call Saul, Season ...
1 like ·   •  0 comments  •  flag
Share on Twitter
Published on June 22, 2020 17:00

May 18, 2020

Veil Objects to Replace DTOs

Here is a new idea I discovered just a few days ago while working with Codexia, a Ruby web app. I had to fetch data rows from PostgreSQL and return objects to the client. It���s always been a problem for me, how to do that without turning objects into DTOs. Here is the solution I found and gave a name: Veil Objects.

[image error]Constantine (2005) by Francis Lawrence

Let���s say I fetch the list of projects from PostgreSQL:

class Projects def fetch @pgsql.exec('SELECT * FROM project') end end

The...

 •  0 comments  •  flag
Share on Twitter
Published on May 18, 2020 17:00

May 12, 2020

EO the Career Killer

It���s time to answer one of the most popular questions I hear from junior programmers when they meet me at a software conference or online: What is the point of studying Elegant Objects (the new object-oriented paradigm I���ve been preaching for the last five years) if almost nobody is using it on real projects? Why swim against the current and learn something that may only harm my career, even if it does seem like a sound technical concept? Where is the profit in making myself an outsider?...

 •  0 comments  •  flag
Share on Twitter
Published on May 12, 2020 17:00