

Если там ООП, то 2 строки никак не будет
Может будет и одна...
Я, конечно, не любитель таких извращений, но вот
<code>class Test; def hello = puts "Hello, World!" end; Test.new.hello</code>
https://onecompiler.com/ruby/43yk99y6y
https://onecompiler.com/ruby/43yk99y6y
type("Child", (type("Parent", (object,), {"print": lambda self: print(self.x)}),), {"__init__": lambda self: (self.__setattr__('x', 10))})().print()
Даже наследование в одну строчку поместилось!
Даже наследование в одну строчку поместилось!
Понятное дело, я говорю о нормальном читабельном коде, а не то, за что тебя отпиздят на работе
Процедура сорвать фрукт имеет 300 ссылок и есть несколько перегрузок и наследников.
Нее, надо было там везде вручную написать 2 строчки, чтобы исправления делать не в одном месте, а в трёхсот
Нее, надо было там везде вручную написать 2 строчки, чтобы исправления делать не в одном месте, а в трёхсот
Неее, там надо было написать 2 строчки, но мы сделали 50, каждая из которых состоит из 5 ссылок на 5 разных файлов и 8 разных классов.
Вместо того чтобы написать 1+1, мы ссылаемся на объект summuerizer где объявлена функция add, которая возвращает a+b.
Вместо того чтобы написать 1+1, мы ссылаемся на объект summuerizer где объявлена функция add, которая возвращает a+b.
* и нигде и никогда больше не используется
Стиль программирования "Галера в океане Срама".
Ага.
Только внезапно, поменять тебе надо для одного фрукта, а для остальных - нет. Потому ты тащишь через всю эту проеботию значение, по которому определитяется тип операции, а внутри if..else.
И через 10 лет универсальная функция и вся иерархия до неё содержит примерно 30 параметров. Очень удобно. Универсально. Внутри - уже свитч-кейс.
И по всей иерархии вызовов то тут, то там, костыли в количестве 50+.
Только внезапно, поменять тебе надо для одного фрукта, а для остальных - нет. Потому ты тащишь через всю эту проеботию значение, по которому определитяется тип операции, а внутри if..else.
И через 10 лет универсальная функция и вся иерархия до неё содержит примерно 30 параметров. Очень удобно. Универсально. Внутри - уже свитч-кейс.
И по всей иерархии вызовов то тут, то там, костыли в количестве 50+.
Полиморфизм в помощь. Делаешь перегрузку с доп параметром
Я доебался ради доёба, конечно. Тем не менее, проблема оверижиниринга в проектах, особенно в энтерпрайзе, имеется. Иногда лучше делить по флоу, а не по сущностям, особенно если эти сущности синтетические(нужные только коду, не имеющие отношения к бизнес объектам), иногда выделять отдельный флоу от более общего. Если он достаточно сильно другой.
Это еще без геттеров и сеттеров.
Чтобы написать коммент, необходимо залогиниться