Yegor Bugayenko's Blog, page 22

January 30, 2017

Decorating Envelopes

Sometimes Very often I need a class that implements an interface by making an instance of another class. Sound weird? Let me show you an example. There are many classes of that kind in the Takes Framework, and they all are named like *Wrap. It's a convenient design concept that, unfortunately, looks rather verbose in Java. It would be great to have something shorter, like in EO for example.

[image error]North by Northwest (1959) by Alfred Hitchcock

Take a look at RsHtml from Takes Framework. Its desi...

 •  0 comments  •  flag
Share on Twitter
Published on January 30, 2017 16:00

January 23, 2017

16 Don���ts of Career Growth

I get questions like this all the time: How does one become a senior software developer or an architect? How does one grow from a junior just starting to write Java code to the leader of a software team that is driving a BMW and making $150K+ per year? What are the exact steps that won't waste time and will get you there faster? Let me share what I think might be helpful.

front imageThe Grand Budapest Hotel (2014) by Wes Anderson

Before writing this, I Googled a bit and found a lot of interesting s...

 •  0 comments  •  flag
Share on Twitter
Published on January 23, 2017 16:00

16 Don���ts of Career Growth

I get questions like this all the time: How does one become a senior software developer or an architect? How do I grow from a junior just starting to write Java code to the leader of a software team that is driving a BMW and making $150K+ per year? What are the exact steps that won't waste time and will get you there faster? Let me share what I think might be helpful.

[image error]The Grand Budapest Hotel (2014) by Wes Anderson

Before writing this, I Googled a bit and found a lot of interesting sugge...

 •  0 comments  •  flag
Share on Twitter
Published on January 23, 2017 16:00

January 16, 2017

Synchronized Decorators to Replace Thread-Safe Classes

You know what thread safety is, right? If not, there is a simple example below. All classes must be thread-safe, right? Not really. Some of them have to be thread-safe? Wrong again. I think none of them have to be thread-safe, while all of them have to provide synchronized decorators.

[image error]Aladdin (1992) by Ron Clements and John Musker

Let's start with an example (it's mutable, by the way):

class Position { private int number = 0; @Override public void increment() { int before = this.numb...
 •  0 comments  •  flag
Share on Twitter
Published on January 16, 2017 16:00

January 9, 2017

How to Teach a Customer

In outsourcing, very often a customer is an idiot doesn't really know what he needs — not only in terms of functionality, but also on a technical level. What makes the situation even worse is that the customer very often always thinks he knows and understands enough. The question is how do you teach a customer? How do you train, educate, and help him? You don't!

[image error]The Firm (1993) by Sydney Pollack

The temptation will be huge, though. You will think that the customer is your frien...

 •  0 comments  •  flag
Share on Twitter
Published on January 09, 2017 16:00

January 2, 2017

How Much Do You Love Conflict?

Conflict is what progress is made of. A professional and well-managed team loves conflicts and creates them on a daily basis. A professional project manager provokes conflicts and makes sure none of them end in a consensus. Does that sound strange? It's not sarcasm. Read on.

[image error]Being Flynn (2012) by Paul Weitz

Have you ever heard the term "win-win?" Do you know what it means? My guess is that most of my readers aren't exactly sure what this is about, even though it's used...

 •  0 comments  •  flag
Share on Twitter
Published on January 02, 2017 16:00

December 19, 2016

Can Objects Be Friends?

As discussed before, proper encapsulation leads to a complete absence of "naked data." However, the question remains: How can objects interact if they can't exchange data? Eventually we have to expose some data in order to let other objects use it, right? Yes, that's true. However, I guess I have a solution that keeps encapsulation in place while allowing objects to interact.

Raging Bull (1980) by Martin ScorseseRaging Bull (1980) by Martin Scorsese

Say that this is our object:

class Temperature { private int...
 •  0 comments  •  flag
Share on Twitter
Published on December 19, 2016 16:00

December 12, 2016

MVC vs. OOP

Model-View-Controller (MVC) is an architectural pattern we all are well aware of. It's a de-facto standard for almost all UI and Web frameworks. It is convenient and easy to use. It is simple and effective. It is a great concept ... for a procedural programmer. If your software is object-oriented, you should dislike MVC as much as I do. Here is why.

Hot Shots! (1991) by Jim AbrahamsHot Shots! (1991) by Jim Abrahams

This is how MVC architecture looks:

[image error]

Controller is in charge, taking care of the data received from Model...

 •  0 comments  •  flag
Share on Twitter
Published on December 12, 2016 16:00

December 5, 2016

How to Pay Programmers Less

To create software, you need programmers. Unfortunately. They are expensive, lazy, and almost impossible to control. The software they create either works or doesn't, but you still have to pay them, every month. Of course, it's always better to pay less. However, sometimes they may figure out they are being underpaid and quit. How do you prevent that? Unfortunately, we can't use violence any more, but there are some other mechanisms. Let me share.

Ben-Hur (1959) by William WylerBen-Hur (1959) by William Wyler...
 •  0 comments  •  flag
Share on Twitter
Published on December 05, 2016 16:00

November 28, 2016

EO

It's time to do it! We've started work on a new programming language. Its name is EO (as in Elegant Objects or in Esperanto): eolang.org. It's open source and community driven: yegor256/eo GitHub repo. It's still in very early draft form, but the direction is more or less clear: It has to be truly object-oriented, with no compromises. You're welcome to join us.

Vicky Cristina Barcelona (2008) by Woody AllenVicky Cristina Barcelona (2008) by Woody Allen

Why yet another language? Because there are no object-oriented la...

 •  0 comments  •  flag
Share on Twitter
Published on November 28, 2016 16:00