Что делать с клятвой?

  • 285 words
  • 1 minutes to read
  • comments

В 1985-м году, когда мне было девять лет, меня торжественно приняли в пионеры и я дал клятву “жить, учиться и бороться, как завещал великий Ленин”. Прошло 30 лет и Верховная Рада приняла закон “Об осуждении коммунистического и национал-социалистического (нацистского) тоталитарных режимов в Украине и запрете пропаганды их символики”. Что мне делать с моей клятвой?

A Remote Slave Is Still a Slave

  • 948 words
  • 5 minutes to read
  • comments

Working remotely is definitely a trend, according to the BLS and my personal observations. “Let them work from home” seems to be the silver bullet for every second startup and even some big companies like Buffer, Automattic, Groove, and many others. However, in most cases, the replacement of a brick-and-mortar office with a virtual one doesn’t help companies and their slaves employees become more productive.

SixNines.io, Your Website Availability Monitor

  • 419 words
  • 2 minutes to read
  • comments
badge

Availability is a metric that demonstrates how often your website is available to its users. Technically, it’s a ratio between the number of successful attempts to open the website and the number of failed ones. If one out of a hundred attempts failed, we can say the availability is 99 percent. High-quality websites aim for so-called “six nines” high availability, so named by the number of 9s in the ratio: 99.9999 percent. We created a service that helps you measure this metric and demonstrate its value to your users: SixNines.

Мы не рабы, рабы не мы

  • 514 words
  • 2 minutes to read
  • comments

“Чтобы быть свободными, нужно быть рабами закона” — смысл этого известного высказывания Марка Туллия Цицерона предлагается раскрыть не одному поколению выпускников средних школ на экзаменах по литературе. Ожидается, что школьники к своему совершеннолетию должны понимать, что только то общество выживет и будет процветать, где следуют правилам и уважают общепринятые законы. Единственной и безусловной альтернативой “диктатуры закона” по версии школьной программы, является хаос, в котором общество неминуемо деградирует и разрушается.

Why I Won't Help You Via Email

  • 262 words
  • 1 minutes to read
  • comments

I’ve been blogging and writing for almost three years now, and a few times a week I get emails or Facebook and Telegram messages from people I don’t really know. They ask questions about Java, management, object-oriented programming, and other things they believe I understand and can help them with. Well, my contact details are published right in the header on my blog—what else would I expect, right? True, but even though I always reply to them, I never answer their questions.

Почему я не выступлю на ITEM

  • 721 words
  • 4 minutes to read
  • comments

Я расскажу историю целиком, а вы сами решайте, на чьей вы стороне. Я выступаю на IT конференциях часто и много. Обычно мне неважно, кто их организует, за чьи деньги и сколько на них зарабатывают. Мне важно, кто меня приходит послушать, и довольны ли они тем, что я могу им рассказать. Но в этот раз все оказалось сложнее, и я отказался выступать на двух конференциях в моем родном городе.

Flexibility Equates to Lower Quality

  • 846 words
  • 4 minutes to read
  • comments

There are two opposing mindsets: “If it works, it’s good” vs. “If it’s good, it works;” or “Make it work” vs. “Make it right.” I’m talking about the software source code. I’ve been hearing this almost every day in blog comments: Why do we need all those new OOP principles if our code works just fine without them? What is the point of introducing a new way, which is supposed to be “better,” if the existing, traditional, semi-object, semi-procedural, not-so-perfect approach just works?

PDD in Action

  • 428 words
  • 2 minutes to read
  • comments
badge

Puzzle Driven development (PDD) is a methodology we’ve been practicing on our teams for more than seven years. Using PDD, we delegate the responsibility of task decomposition to its performers, eliminating the role of a project manager. We’ve been using our proprietary software for that. A month ago, we made it public, open source, and free. It is available as 0pdd—a GitHub-based chat bot.

SOLID Is OOP for Dummies

  • 789 words
  • 4 minutes to read
  • comments

You definitely know the SOLID acronym. It stands for five principles of object-oriented programming that, if followed, are supposed to make your code both legible and extensible. They were introduced almost 30 years ago, but have they really made us better programmers in the time since? Do we really understand OOP better thanks to them? Do we write more “legible and extensible” code? I don’t think so.

The TDD That Works for Me

  • 1290 words
  • 7 minutes to read
  • comments

Test-driven development (a.k.a. TDD) was rediscovered by Kent Beck and explained in his famous book in 2002. In 2014, David Heinemeier Hansson (the creator of Ruby on Rails) said that TDD is dead and only harms architecture. Robert Martin (the inventor of the SOLID principles) disagreed and explained that TDD may not work only in certain cases. A few days later, he even compared the importance of TDD with the importance of hand-washing for medicine, and added that “it would not surprise me if, one day, TDD had the force of law behind it.” Two years later, now just a few months ago, he wrote more about it, and more, and more. This subject seems to be hot. Of course, I have my own take on it; let me share.

Traits and Mixins Are Not OOP

  • 1001 words
  • 5 minutes to read
  • comments

Let me say right off the bat that the features we will discuss here are pure poison brought to object-oriented programming by those who desperately needed a lobotomy, just like David West suggested in his Object Thinking book. These features have different names, but the most common ones are traits and mixins. I seriously can’t understand how we can still call programming object-oriented when it has these features.

245 лет сепаратизма, от Вашингтона до Захарченко

  • 571 words
  • 3 minutes to read
  • comments

В июне 1772-м году в заливе Наррагансетт (ныне штат Род-Айленд, США) небольшая группа контрабандистов напала на правительственный военный корабль, ранила капитана, разоружила команду, ограбила судно и сожгло его. Так началась война Американских колоний за независимость от Британии, героем которой стал полковник Джордж Вашингтон, ставший несколько лет спустя их первым президентом. Почти два с половиной века спустя, в марте 2014 года несколько тысяч человек штурмовали здание Донецкой администрации и подняли над ней российский флаг, что положило начало войне на Донбассе, известной нам сейчас как война с Россией (по версии Порошенко) или борьба за независимость (по версии Захарченко). Что общего между этими двумя событиями?

How to Handle the Problem of Too Many Classes

  • 823 words
  • 4 minutes to read
  • comments

During nearly every presentation in which I explain my view of object-oriented programming, there is someone who shares a comment like this: “If we follow your advice, we will have so many small classes.” And my answer is always the same: “Of course we will, and that’s great!” I honestly believe that even if you can’t consider having “a lot of classes” a virtue, you can’t call it a drawback of any truly object-oriented code either. However, there may come a point when classes become a problem; let’s see when, how, and what to do about that.

Why I Don't Talk to Google Recruiters

  • 878 words
  • 4 minutes to read
  • comments

This is a real story, and it’s not only about Google. I’m getting emails from recruiters at Amazon, Facebook, and smaller Silicon Valley startups. They find me somehow, most likely through this blog, my books, or my GitHub account. They always start with “We’re so impressed by your profile” and finish with “Let’s schedule an interview.” I always reply with the same text, and they always disappear, only to come back in a few months under a different name. Let me explain my reasons; maybe you will do the same and we can change this situation in the industry.

Национализм будущего

  • 912 words
  • 5 minutes to read
  • comments

Народ, нация, народность, этнос. Этими и похожими терминами обозначают группы людей, идентифицирующих себя по тем или иным признакам общности, таким, например, как язык, обычаи, идеология или религия. В любом случае, как отмечал Лев Гумилев, неизменным объединяющим посылом для них является: “мы — такие-то, а все прочие — другие”.

Stack Overflow Is Your Mandatory Tool

  • 878 words
  • 4 minutes to read
  • comments

I’ve said before that your Stack Overflow reputation is very important to us when we make a decision on how much we should pay a software developer. However, there were many complaints about this metric. Take, for example, the ones here and here. In a nutshell, so many of you disagreed and said that the number of Stack Overflow up-votes was nothing more than a measurement of the amount of time someone spent answering stupid questions asked by clueless programmers. Let me disagree and explain why your activity on this platform is so important to your career.

Each Private Static Method Is a Candidate for a New Class

  • 590 words
  • 3 minutes to read
  • comments

Do you have private static methods that help you break your algorithms down into smaller parts? I do. Every time I write a new method, I realize that it can be a new class instead. Of course, I don’t make classes out of all of them, but that has to be the goal. Private static methods are not reusable, while classes are—that is the main difference between them, and it is crucial.

Как нам победить коррупцию?

  • 670 words
  • 3 minutes to read
  • comments

Украина по-прежнему одна из стран с самым высоким уровнем коррупции на планете. С одной стороны, это неплохо, когда можно украсть и откупиться. С другой стороны, грустно понимать, что украинцы по-прежнему остаются одним из самых глупых народов на планете, не умеющим так организовать работу обслуживающих их чиновников и полицейских, чтобы те не воровали. Как же нам поумнеть? Есть ли какие-то проверенные способы?

Decorating Envelopes

  • 665 words
  • 3 minutes to read
  • comments

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.

Почему за сепаратизм дают пожизненное?

  • 444 words
  • 2 minutes to read
  • comments

Одним из самых серьезных преступлений в Украине является сепаратизм, статья 110 УК Украины. Наказание за это преступление было два года назад ужесточено Верховной Радой, вплоть до пожизненного лишения свободы. Давайте разберемся, что же это за преступление такое, за которое государство в лице 231-го депутата решило карать нас так строго.

16 Don'ts of Career Growth

  • 1934 words
  • 10 minutes to read
  • comments

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.

Совесть в балаклавах

  • 603 words
  • 3 minutes to read
  • comments

Во время инагурации 45-го президента США Дональда Трампа протестующие вышли на улицы Вашингтона, 217 из них были задержаны. Они вышли с плакатами, а в итоге стали переворачивать мусорные баки, бить витрины и поджигать автомобили. Многие из них были одеты в черное и действовали более менее организованно. Согласитесь, как бы мы ни относились к Трампу и его политике, нас пугают взрывы и пожары, люди в масках и вой полицейских сирен. Мы уповаем на надежность полиции. Однако, есть и обратная сторона этого явления.

Synchronized Decorators to Replace Thread-Safe Classes

  • 774 words
  • 4 minutes to read
  • comments

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.

Кто ты, украинский стартапер?

  • 740 words
  • 4 minutes to read
  • comments

Прочитал недавно о том, что украинские стартапы приглашаются для участия в StartupGrind, выставке в Калифорнии. И задумался, а как же будут разбираться организаторы этой украинской секции, кто украинский стартап, а кто нет? У меня есть ряд интересных идей, хочу с вами поделиться.

Пойду ли я воевать?

  • 308 words
  • 1 minutes to read
  • comments

Недавно стало известно, что Генштаб Украины собирается призвать на военную службу выпускников военных кафедр в возрасте до 43-х лет. Я как раз попадаю в эту категорию и вполне могу получить повестку в ближайшее время. Сам себя спрашиваю — пойду ли я воевать?

How to Teach a Customer

  • 462 words
  • 2 minutes to read
  • comments

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!

Прав был Глеб Жеглов?

  • 393 words
  • 2 minutes to read
  • comments

Вчера Печерский суд Киева избрал для Курченко меру пресечения в виде ареста. С третьей попытки. Дело не в нем, мне интересно другое. Подобных громких дел за последние несколько пост-революционных лет было несколько, например Корбан или Кернес: всегда не только взятки, но и буква закона так или иначе оказывалась на стороне этих ребят. Хорошо ли это?

How Much Do You Love Conflict?

  • 1426 words
  • 7 minutes to read
  • comments

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.

Честный бюджет от продажных депутатов

  • 378 words
  • 2 minutes to read
  • comments

На прошлой неделе Верховная Рада приняла предложенный Кабинетом министров бюджет на 2017-й год. Несколькими днями позднее в эфире NewsOne, Мустафа Наем анализировал это событие и похвалил Кабмин за своевременность, однако назвал последнюю стадию фарсом, потому, что, по его мнению, оппозиционные силы получили взятки, за поддержку правительства. Я, в свою очередь, считаю выступление Наема фарсом.

ТУ-154 под Сочи, трагедия или праздник?

  • 444 words
  • 2 minutes to read
  • comments

Несколько дней назад у берегов Сочи разбился самолет Минобороны РФ, летевший из Москвы в Сирию. На нем, среди прочих пассажиров, были 64 артиста Академического ансамбля песни и пляски имени Александрова, которые должны были дать концерт российским военным в Алеппо. То ли самолет упал сам, то ли ему помогли, мы вряд ли узнаем. Интересно другое—наша реакция на это событие “в стане врага”.

Кому помогают наши пожертвования

  • 514 words
  • 2 minutes to read
  • comments

Вчера я выступал на небольшой конференции по программированию и увидел, как организаторы собирают по 50 гривен для помощи онкобольным детям. Дело хорошее, я дал 100 гривен. А потом спросил, почему мы вынуждены собирать деньги? Почему лечение детей не оплачивает государство, которому мы платим налоги именно с этой целью. Ответ был очевиден—там все воруют, и детям ничего не достается, одна надежда на добрых людей. Давайте разберемся, много ли в наших действиях настоящей доброты.

Что бы я спросил у Путина

  • 621 words
  • 3 minutes to read
  • comments

Позавчера Владимир Путин, 4-й президент России, провел ежегодную пресс-конференцию, на которой ответил на вопросы журналистов. Всего их, журналистов, там было 1437. Немногим менее тридцати вопросов были заданы об экономике, Улюкаеве, Немцове, Крыме, Трампе, Brexit, убийстве посла, бездомных животных, допинге и квасе. А что бы вы спросили у Путина, оказавшись у микрофона?

А не террористы ли мы с вами?

  • 682 words
  • 3 minutes to read
  • comments

Позавчера в Турции убили посла России, а вчера в Берлине грузовик въехал в толпу людей. Неприятно и больно видеть, как ни в чем не повинные люди гибнут от рук террористов по всему миру: Ницца, Багдад, аэропорт Ататюрка, Йемен, Брюссель, Париж. Терроризм, по словам Шойгу,—это “главная угроза для человечества”, которая, по словам Обамы, “останется в мире еще долго”. У меня другое мнение. Я не считаю посла России в Турции, прохожих в Берлине и туристов в Париже ни в чем не повинными людьми.

Can Objects Be Friends?

  • 569 words
  • 3 minutes to read
  • comments

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.

Отжали, Игорь Валерьевич?

  • 385 words
  • 2 minutes to read
  • comments

Вчера стало известно о национализации ПриватБанка. Что именно означает это слово в данном контексте, мне сложно судить. Одно ясно, не владеет им больше Игорь Коломойский с друзьями. Я думаю, мы стали свидетелями, наверное, самого крупного в истории Украины рейдерского захвата.

А вам не стыдно голосовать?

  • 230 words
  • 1 minutes to read
  • comments

Наш бывший премьер министр Яценюк еще в апреле этого года сбежал почти и вот недавно сбежал совсем. До этого у нас был Азаров, который поступил похожим образом. Какие чувства у вас, граждан этой страны, вызывает этот факт? И как думаете, куда именно и когда сбежит Гройсман?

MVC vs. OOP

  • 541 words
  • 3 minutes to read
  • comments

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.

Путин пришел, порядок навел

  • 411 words
  • 2 minutes to read
  • comments

Недавно Владимир Путин провел встречу с Советом по развитию гражданского общества и правам человека, на котором “подверг резкой критике некоторые, все еще существующие в России, грубые нарушения законности и прав человека”. В частности, президент привел в пример абсурдное судебное решение: “В постановлении судьи написано, что человек совершил преступление путем написания заявления в липецкую облпрокуратуру. От таких вещей у меня волосы на голове дыбом встают. Что это такое? Совсем с ума сошли, что ли?” А ведь действительно, куда это годится?

Волки и овцы украинской люстрации

  • 450 words
  • 2 minutes to read
  • comments

Люстрация — это когда тех, кто был раньше у власти, больше к этой власти не допускают. Потому что они нас предали, тогда, когда были у руля. Потому что мы им больше не верим. Потому что они преступники, скорее всего. Доказать мы этого, конечно, не можем, но и дел с ними иметь больше не хотим. Мы их уволим навсегда и возьмем новых. Честных, порядочных, достойных, грамотных и искренне болеющих за Украину. Я с этим не согласен.

How to Pay Programmers Less

  • 1253 words
  • 6 minutes to read
  • comments

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.

Кому нужна война

  • 526 words
  • 2 minutes to read
  • comments

Внешне все войны одинаковы: флаги, логунги, герои, калеки и победные марши. Во всех войнах гибнут люди и раздаются призывы к сплочению ради победы над врагом, ради защиты отечества. Каждый раз врагом называются солдаты на противоположной стороне поля, города, или окопа, а отечеством то место, откуда ведется координация огня. Но действительно ли эти солдаты наши настоящие враги, а отечество именно там?

Кому мешает мой пистолет?

  • 530 words
  • 2 minutes to read
  • comments

Многие страны пока разрешают своим гражданам владеть огнестрельным оружием, все остальные запрещают. Общеизвестно, что наличие оружия у населения снижает число преступлений с его применением. В основном, видимо, потому, что велик риск получить отпор при нападении, и преступники решаются на грабеж, разбой и убийство значительно реже. Однако, и Обама и Порошенко считают оружие злом, стараются ужесточить правила его приобретения или вовсе запретить. Почему? Где логика?

EO

  • 209 words
  • 1 minutes to read
  • comments

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.

Зачем Саакашвили говорит по украински?

  • 362 words
  • 2 minutes to read
  • comments

Я испытываю большую симпатию к Михаилу Саакашвили, как к сильной личности и, на мой взгляд, единственному украинскому политику с большим будущим. Однако, мне совершенно непонятен этот популизм с украинским языком. Зачем Вы это делаете, Михаил?

Януковича в президенты!

  • 291 words
  • 1 minutes to read
  • comments

Виктор Янукович, четвертый президент Украины, был избран нами в 2010-м году. Через четыре года, за год до законного завершения своего пятилетнего срока, он сбежал в Россию. Через несколько месяцев на его место мы выбрали Петра Порошенко. Прошло два года и вчера на пресс-конференции Янукович, отвечая на вопрос корреспондента РИА Новости, предложил “задать вопрос украинскому народу—как он оценивает нынешнюю украинскую власть”, явно намекая на высокое доверие народа к нему самому. Народ, а именно мы с вами,—его главная надежда. И он не ошибается.

Encapsulation Covers Up Naked Data

  • 736 words
  • 4 minutes to read
  • comments

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.

sixnines availability badge  GitHub stars