Elegant Objects


"Elegant Objects" is my first book. It is about object-oriented programming, from an idealistic and, maybe, a bit futuristic point of view. There are 23 independent recommendations for a practical OOP designer on how to make code cleaner, classes more solid and architecture more visible. It is available for sale on Amazon (please, don't forget to review it there!), ISBN: 1519166915. Changelog is here.

Mar 7, 2017: I started to write the third volume, which will consist entirely of "OOP puzzles." Just like in math or chess books there will be questions, which you will have to think about and answers at the end of the book. Want to be its reviewer? Please, fill this form.

Feb 24, 2017: The list of reviewers of the second volume is ready (alphabetic order). I'm very sorry if you're not in the list, but wanted to be. There will be more books in the future, you will still have a chance. Aside from that, you are always welcome to read the book and send me your corrections, they will get you to the "acknowledgment" list. See how others do that. Here you are:

If you see yourself in the list, please email me and we'll discuss practical details. I'm ready to mail you the manuscript in a few days.


Feb 23, 2017: Русская версия первого тома опубликована при поддержке подкаста "Разбор Полетов" и ограниченным тиражом в 128 экземпляров. Это не книга на русском языке, а английский оригинальный текст, дополненный вступлениями на русском. Объем книги 330 страниц (оригинальный английский вариант содержит только 229 страниц). Также, это издание начинается с ревью, сделанного пятью участниками подкаста (в порядке получения ревью): Барух Садогурский, Антон Архипов, Антон Черноусов, Алексей Абашев и Виктор Гамов. Купить ее можно, написав письмо на shop@yegor256.com. Повторного тиража на русском языке не будет! Тексты ревью всех пяти участников подкаста я выложу онлайн сразу после продажи последнего экземпляра этого тиража. Цена: $40. Для участников конференций, где я выступаю: $20 (бывают еще скидки).

Feb 7, 2017: This is the full list of everybody who expressed the desire to become a reviewer of the 2nd volume of Elegant Objects. I have to select up to 12 people, please help me with your vote. What does it mean to be a reviewer? It's easy:

  • I will mail you the draft of the book (paper copy, not PDF);
  • You criticize it as much as you can;
  • You scan it and send me back in PDF;
  • I take your suggestions and corrections into account;
  • Your name will be in the list of acknowledgements in the book;
  • You get a free signed copy of the book.

Pay attention, I need your negative comments, not positive ones. I don't really need you to say how much you like the content—it's pointless. I need you to tell me where it's missing, or unclear, or wrong. People in the list are sorted by the date I've got their applications. I excluded some really blank applications. If you feel I did that by mistake to your application, please email me.

Show the list

Marcos Douglas B. Santos Marcos Douglas B. Santos I try to make all my code object-oriented. I have a blog about OOP and I have over 15 years of systems development experience. I was a reviewer of Bloghacks too — last Yegor's book published. 20 votes
John Page John Page I have an annoying habit of finding even the tiniest mistakes (typos, grammar, consistency etc.) in other people's work. ;) English is my native language and I have read and reread most of Yegor's OO publications and have some knowledge and strong opinions in that area. (Though I certainly don't have all the answers I'm irritatingly good at raising the questions.) 1 vote
Kiryl Karatsetski Kiryl Karatsetski I always look for the best solution of engineering tasks. Software Engineer in Fitbit. 1 vote
Bartosz Bilicki Bartosz Bilicki Software developer with 13 years of expertise. I adore best clean code, automation and devops practices, but I am not object fanatic. When there are simpler tools that do the job, I happily use them (Spring, Hibernate, Jackson, I am looking at you!). Having read >60 IT books, I know how to distinguish useful concepts from theorycrafting and marketing bull****. You will receive honest and straight review.
Silas Reinagel Silas Reinagel I am a passionate Object-Oriented Programmer, with excellent writing/communication skills.
Abhishek Manocha Abhishek Manocha First time for me for reviewing. But two simple reasons, I am in the OOPs for last 12 years, hold a Technical Architect position, want to share my knowledge in tangible. Second, I resonate with Yegor on many points. I am follower of his blog since long. 3 votes
Miroslav Genov Miroslav Genov Java Developer for most then 10 years of experience that values Good Design and clean codebases.
Carlos Miranda Carlos Miranda I have been working for Teamed.io projects for two years. Having worked with his projects, I am very familiar with Yegor's methods.
Yvgen Troshchiy Yvgen Troshchiy I am enthusiastic specialist with big experience in different projects and companies.
Francesco Bianchi Francesco Bianchi I already reviewed the Volume 1 of this book and was (maybe?) the first one to encourage Yegor to write it after having some interesting fights with him over his brilliant posts. I've already reviewed 10+ technical books published by Manning and currently collaborate with them as Senior Technical Development Editor. 1 vote
Shawn Fuller Shawn Fuller Years ago I wrote multi-tier web and batch apps in Perl, Java, etc.. (Currently a Business Analyst) Recently I created a web donation and contact tracker in PHP (MAMP). Reading your book, blog, and David West's book I realize I did not understand OOP (except for using small class sizes). Like the Mulla Nasrudin, who having taken a memory course said: "I’m improving. Now I can sometimes remember that I have forgotten something." So it is with my OOP abilities. I would bring a combination enthusiasm and naïveté to reading your manuscript.
Bakkiaraj Bakkiaraj I mostly write code in Perl with Moose Object Oriented concepts. It might be crazy for you but it does really works. I am long lover for OOPs programming, Making SW Build and Test automation tools with Perl + Moose.
Semenkova Oksana Nikolaevna Semenkova Oksana Nikolaevna I'm very passionate about software architecture and want to help you do your book the best. The themes from it are very interesting and useful for future development and evolution of Java language and its infrastructure 1 vote
Andrey Valyaev Andrey Valyaev I want to use right OOP. I want to learn other for right OOP. I want to understand some moments in right OOP and help to make you book better.
Rakshith Kunchum Rakshith Kunchum I am a graduate student and I want master Java in the way the book 'Elegant Objects' narrate and not the way the academia teaches me.
Diego Mariani Diego Mariani Because I read all of your articles and I can't agree more. I'm obsessed with true object oriented programming and software architecture
Victor Bugaenko Victor Bugaenko Because I really believe in EO conception and want to make it popular in Russia. http://www.eolang.ru/
Patrizio Colomba Patrizio Colomba OP Passionate and Coder!
Raul Estrada Aparicio Raul Estrada Aparicio I reviewed 256 Bloghacks. I'm the author of books about S.M.A.C.K. stack with Apress and Packt Publishing.
Jonathan Blakes Jonathan Blakes I have no fixed opinion about Yegor's approach to OOP. I have read and re-read the first edition, blog posts, and your comments, taking them all with a pinch of NaCl. My review will be based on the attempted application of these ideas to a large 10+ year old Java (6+) and Jython/Python codebase for a scientific data acquisition client-server application used by 100+ staff and 1000+ users 24/7.
Leonid Rozenblyum Leonid Rozenblyum interesting in reviewing and improving a cool book
Ilya Vassilevsky Ilya Vassilevsky My superpower is spotting errors. I reported 5 errors in (published) Volume 1.
Piotr Chmielowski Piotr Chmielowski IMO this is true also in case of code: “Beauty is the first test; there is no permanent place in the world for ugly mathematics.” (Godfrey Harold Hardy). Therefore we HAVE TO learn how to write a beautiful code. 1 vote
Richard Flood Richard Flood Like a lot of others I am a professional Software Developer. I have been working professionally for about 5 years and the work I produce has been heavily influenced by Yegor's teachings. I would be honored to have the opportunity to help polish his material, ready to be viewed by the public.
Nikita Salnikov-Tarnovski Nikita Salnikov-Tarnovski I hope to raise many objections so you can polish your arguments
Paul Rohorzka Paul Rohorzka I bought (at a horrendous price) and read Vol1 and liked it for some thoughts and totally dismiss others. Want to contribute a critical voice.
Sebastian Schwarz Sebastian Schwarz I am Clean Code and EO addicted! My co-workers hate me for only accepting immutable classes in code reviews! Not to mention naming for void and non-void methods. What people call "Grammar nazis" in Language, applies to me for Elegant Objects. I am a young developer and grew up with Clean Code, so for me, all these rules are basics and standard. I would love to be part of the Vol2 review team, to contribute my passion to the community, thanks for your vote!
Andriy Kryvtsun Andriy Kryvtsun I like to write efficient and elegant code
Ricardo de Sousa Job Ricardo de Sousa Job I live in Brazil and I have your first book. I work with development about nine years, I'm enthusiast for OO. 2 votes
Alonso Ayala Ortega Alonso Ayala Ortega I pay attention to details. I'm an excellent reviewer.
Igor Dmitriev Igor Dmitriev I pay attention to details. I'm an excellent reviewer.
Paul Holser Paul Holser OO expertise, clean code, fastidious proofreading
Michał Kordas Michał Kordas My speciality is code quality. On daily basis I need to challenge corporate, procedural "clean code" approach with real object oriented solutions.
Anton Rybochkin Anton Rybochkin I sleep with an editor
Fabrício Barros Cabral Fabrício Barros Cabral I'm passionate for Object-Oriented Programming and details. I've 10 years experience as researcher and developer and as lecturer, I'm always looking for the best way to explain knowledge for all people. 81 votes
James Kirk James Kirk I am a steadfast supporter of software engineering best practices (TDD, SOLID, DRY) and think that violations of them should be punishable by extended Nickelback listening sessions.

Feb 6, 2017: Good news, the second volume is ready (208 pages). Now it's time to select the team of reviewers, ship the draft to them, collect their opinions and publish the book. Hopefully, it will be available on Amazon before March 10. Here is my offer to all new readers of this new book. If you write a decent review about the book (not necessarily positive, but long enough for a detailed review) and post it on your blog, Amazon, and GoodReads I will refund you $32 (read more about available discounts).

Nov 20, 2016: I've got over 50 emails from those who are interested in reviewing the second volume of the book. With the first volume, I believe, I made a mistake in selecting reviewers. Not all of them were as effective as I was expecting. This time I will make it different. I will put all all of them in a list and let you vote. The best 12, elected by you, will get the early draft of the second volume and will help me review it. To get into the list, please fill this simple form.

Aug 22, 2016: I will collect all reviews of the book written by its readers on their blogs, to help you better understand what the book is about, why it's good and how it could be better:

Jun 17, 2016: I started a Gitter chat room, where we will discuss object-oriented programming and find out what would be appropriate to write about, on this blog and in the next volume of the book. Join the chat and stay up to date.

Apr 14, 2016: Книгу можно купить в России, Украине, и Беларуссии по цене $35 плюс доставка. Оплатить через PayPal, WebMoney или напрямую на мою карту MasterCard. Пишите на shop@yegor256.com. Вам предложат возможные варианты доставки и вообще помогут.

Apr 10, 2016: I'm starting to work on the second volume of this book. If you are interested to be a reviewer, please send me an email with a short description of yourself and your LinkedIn profile. If you were reviewing the first volume, please don't bother. I want a new group of reviewers.

Mar 17, 2016: The book just made it into the top 100 Amazon Best Sellers in Object-Oriented Design category! There are three reviews already. Many thanks to their authors! Would be great if you publish yours—this will greatly help in promoting the manuscript. Besides that, I will be presenting the book at the following conferences in the next few months: JPoint in Moscow, April 22; JETConf in Minsk, April 25; GeeCON in Krakow, May 11; DEVit in Thessaloniki, May 20; JEEConf in Kiev, May 21. I will give away a few copies at each event, to those who ask the most interesting questions after my presentations. Don't miss your chance to say hello and get a free book.

Feb 28, 2016: Over a 100 books sold already, in just one week! I'm glad to see that you're interested in reading it. I haven't got a single review yet, but I'm sure there will be some. I would like to ask you to post your reviews, either negative or positive, directly to Amazon. I'm getting many requests about an electronic version of the book. I'm not planning to turn this into an e-book, at least until the end of 2018. Mostly because I'm greedy. I realize that the moment I publish a Kindle version, it will be available for a free download somewhere. Although, some of you are saying that the "dead tree" format is not convenient, since it takes too much space, etc. Here is the the offer. You buy a paper book now, read it, make a picture of it, and throw it away, so that it doesn't take space. When an e-book is available, send me that picture and I will send you a Kindle/epub/PDF/whatever file for free. How does this sound?


Feb 22, 2016: The book is published! It is for sale, on Amazon. The price is $40.96. The size is 229 pages. The paper is creamy. The cover is mate. I took into account recommendations and corrections of 9 reviewers. Two of them were missed, for technical reasons. I will definitely include them in the next edition. If you decide to buy it, please leave your feedback on Amazon. It will help me attract more readers. After reading, please shoot me an email to book@yegor256.com. I'm very interested to know what you think. Thanks!


Jan 27, 2016: This cute cactus, created by Andreea Mironiuc, will be on the cover of the book. For a number of reasons. First, because it's elegant. Isn't it? Second, it's alive, just like all our objects in Java. Right? Third, it's pretty hard to offend by breaking its skin and treating it as a bag for other objects. And forth, I just like it.


Jan 19, 2016: Almost all reviewers have finished already. I'm waiting for the last two to send me their results and will start making final changes. Fortunately, the overall feedback is positive so far. All reviewers said that the book was worth reading. Here is its contents, by the way.


Jan 13, 2016: You can pre-order the book on Amazon.com. The price is $40.96. As promised, the book will be published on Feb 22.


Dec 24, 2015: Here is a small Christmas gift for those who are interested in the book—seven pages from chapter 2.4, which covers the subject I haven't discussed on the blog yet. This is not exactly the text you will see in the book. This is the text my selected 11 reviewers received this week from me by mail. By the way, their names are (in alphabetic order): Andrei Istomin, Aneesh Dogra, Francesco Bianchi, Ion Bordian, Kanstantsin Kamkou, Michal Švec, Nicos Kekchidis, Philip Buuck, Simon Tsai, Thanasis Papapanagiotou, and Xiasong Pan. I hope to receive their reviews by the end of January. Then, will spend another 2-3 weeks to take their recommendations into account and the book will go out at the end of February.

Dec 6, 2015: I've received 63 emails so far and it's time to choose the best candidates. I will do it in the next few days and will email them. I will announce the names of selected reviewers here, soon. Thanks a lot to all of you, for your readiness to help!


Nov 22, 2015: The book is ready in its first draft, version 0.1. I invite you to become its first reviewer. Send me an email with a short description about yourself. I will select a few reviewers (8 is the number I have in mind now). Then, I will send you a book. It's free and I will pay for shipping. You will read it (200 pages), and make your corrections right inside the book. Then, ship it back to me using UPS collect on delivery. Your name will be in the book, on the 9th page, in the list of acknowledgments! I'm interested in your negative feedback mostly. Tell me what is not clear, what is missing, what needs a more detailed explanation. But, please, don't argue with my ideas. I won't change them, based on your review. For example, if I'm saying that a static method is a bad thing and you disagree, don't try to convince me, it won't help :) This is my opinion and this is what the book is about. However, I'm sure that my explanations and arguments have many flaws. As an early reviewer, you will help me find them. Again, don't argue with what I'm preaching, but complain about how I do it.

Sep 1, 2015: The manuscript is finished, in its first draft. Took about 200 hours. Most of the ideas were taken from the articles previously published on the blog.

Jul 5, 2015: I started to write it.