Your comments

Спасибо за тёплые слова!

Здравствуйте, Рустам!

Спасибо за вопрос! Вы получите больше информации об этом (включая примеры кода), когда дойдёте до раздела рефакторинга, там будет отдельная тема посвящённая избавлению от кодирования типов.

Вкратце, кодирование типов, это когда у вас в коде есть россыпи условий вроде:

switch (user.type) {
  "USER": // do something
  "CUSTOMER": // do something else
  "ADMIN": // do something else
  ...
}


Получается, что в типе пользователя "закодированы" разные ветвления логики. Часто это можно встретить для сущностей, подгружаемых из базы данных (в одной таблице может храниться сложная сущность, поведение и данные которой могут раздяляться в зависимости от значения колонок "тип", "статус" и прочее).

Thanks! I'll fix this with the next update.

Hi!

I'm sorry for answering in English, my Chinese skills are very basic, besides I don't want to ridicule this great language with Google Translate (feel free to answer in Chinese, though, I'm able to understand your reply).

Thanks for your question! I excluded the Interpreter because I think it has lost its "pattern" status. The fraction of developers that deal with Interpreter scenarios is tiny. It's really hard to come up with a reasonable example for the Interpreter application as well. Here's the link I like to present when people ask me about the absence of the Interpreter in the book: http://blogs.perl.org/users/jeffrey_kegler/2013/03/the-interpreter-design-pattern.html

Hi!

I plan to add the Python version to the second edition of the refactoring course. This new edition will be available as a free upgrade to all existing customers. The release date is currently unknown as there is still plenty of work to be done.

Still, please note that the course is language-agnostic, and so you can apply all the gained knowledge to any OOP-focused programming language. Thus if you can read Java, C#, or PHP, you don't have to wait for the second edition.

Please let me know if you have any further questions.

Здравствуйте, Иван! Я всячески за добавить сет примеров на котлине и рад любой помощи, но по опыту знаю, что написание сета примеров — довольно затратное по времени время и не все готовы довести это дело до конца (раньше с другими языками на это уходило порядка 40+ часов). К тому же, я теперь сильно "задротствую" над качеством примеров после неудачного опыта принятия слабых примеров (текущие примеры Java). Если это вас не пугает, можем обсудить детали (напишите мне, пожалуйста, на support@refactoring.guru и я вышлю с ответом то как я вижу процесс написания примеров, по крайней мере то как оно работало в прошлом). Спасибо!

Hi!

Thanks a lot for taking the time to report this issue. I'll address it soon and upload the fix with the next update. And thanks for the compliment, I'm glad that you like my work.

Спасибо, Екатерина! Рад, что вам всё нравится.