Yegor Bugayenko's Blog, page 22

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

November 20, 2016

Encapsulation Covers Up Naked Data

Encapsulation is the core principle of object-oriented programming that makes objects solid, cohesive, trustworthy, etc. But what exactly is encapsulation? Does it only protect against access to private attributes from outside an object? I think it's much more. Encapsulation leads to the absence of naked data on all levels and in all forms.

Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan (2006) by Larry CharlesBorat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan (2006) by Larry Charles

This is what naked data is (C code):

int...
 •  0 comments  •  flag
Share on Twitter
Published on November 20, 2016 16:00

November 17, 2016

Software Conferences to Attend

This is my list of software conferences that are worth attending, as a speaker and a listener; with a focus on Java and project management. I will try to update this list regularly, mostly not to forget where I have to submit my talks. Hopefully the list will help you too, to make the right choice and never miss their CFP deadlines.

Name Place When CFP JEEConf Kiev May Jan AgileEE Kiev Apr Jan GeekOUT Tallinn Jun Feb JavaOne San Francisco Sep Mar Devoxx Antwerp Nov Apr JavaZone...
 •  0 comments  •  flag
Share on Twitter
Published on November 17, 2016 16:00

November 8, 2016

Why I Don���t Publish E-Books

Very often readers of my books ask me why I don't publish them in digital format as e-books for Amazon Kindle, EPUB, FB2, or simply PDF. There are a few reasons. It's time to summarize them all and explain why dead trees are the only way to go if you want to read my content.

The Addams Family (1991) by Barry SonnenfeldThe Addams Family (1991) by Barry Sonnenfeld

First of all, there is a simple technical reason:

badge

I don't know how to format them. I type all my books in LaTeX. To my knowledge, it's the best and most power...

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

Why I Don���t Publish E-Books

Very often readers of my books ask me why I don't publish them in digital format as e-books for Amazon Kindle, EPUB, FB2, or simply PDF. There are a few reasons. It's time to summarize them all and explain why dead trees are the only way to go if you want to read my content.

The Addams Family (1991) by Barry SonnenfeldThe Addams Family (1991) by Barry Sonnenfeld

First of all, there is a simple technical reason:

badge

I don't know how to format them. I type all my books in LaTeX. To my knowledge, it's the best and most power...

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

October 22, 2016

Software Quality Award, 2017

This is the third year of the Software Quality Award. The prize is still the same—$4,096. The rules are still the same. Read on. Previous years are here: 2015, 2016.

Registration is open! Fill this form to submit.

Rules:

One person can submit only one project.

Submissions are accepted until the September 1, 2017.

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

I reserve the right to reject any submission without explanation.

All submissions...

 •  0 comments  •  flag
Share on Twitter
Published on October 22, 2016 17:00