
Alexander
04.12.2017
14:31:26
достаешь функтор, показываешь монаде, обмазываешь миксинами и стреляешь себе в копию ноги из деревянного немутабильного пистолета. Просыпаешься
подходишь к монаде и говоришь: У вас такие больше ЛЯМБДЫ
дальше должна быть штука про функтор, но ладно)

Sergey
04.12.2017
14:33:19
Шутки шутками а в четырехмерном пространстве обьекты и состояния врядли мутабельны)

Google

Денис
04.12.2017
14:33:44

Arsen
04.12.2017
14:34:49

Митко Соловец?
04.12.2017
14:34:57
твоё лицо, когда опять задали вопрос про хэш-мапы на собеседовании

Денис
04.12.2017
14:35:28

Arsen
04.12.2017
14:35:49
ну да. про буллшит егора

Vitalii
04.12.2017
14:36:12

Sergey
04.12.2017
14:36:15

Alexander
04.12.2017
14:36:19
мне на собеседовании в вокальную школу задали вопрос как-то: Покажи где здесь "кики" а где "буба" и показали вот такие вот пикторграмки: . \ : * O ! _
:D

Митко Соловец?
04.12.2017
14:36:41
надеюсь ты им бубу не показал?

Alexander
04.12.2017
14:36:56
показал) еще как)
кароче кики это *

Google

Alexander
04.12.2017
14:37:18
а буба O
:D
не спрашивайте почему)))

Vitalii
04.12.2017
14:37:34
JVM образовательный.

Arsen
04.12.2017
14:37:40
лучше бы спросили про пупу и лупу

Митко Соловец?
04.12.2017
14:37:50
боку но пико\

Arsen
04.12.2017
14:37:56

Alexander
04.12.2017
14:37:58
или как отличить пупсиня от вупсеня)

Митко Соловец?
04.12.2017
14:38:02
че пацаны ЭНТЕРПРАЙЗ

Artjom
04.12.2017
14:38:20
Вебсферки накатим

Sergey
04.12.2017
14:38:21

Alexander
04.12.2017
14:38:44

Денис
04.12.2017
14:39:54

Sergey
04.12.2017
14:41:21

Artjom
04.12.2017
14:41:22
Один из столпов ОО это наследование... А оно часто в такую кашу превращается
Больше интерфейсов
Нужно больше интерфейсов

Alexander
04.12.2017
14:41:48

Sergey
04.12.2017
14:42:42

Google

Alexander
04.12.2017
14:42:46
только расширять, но не переопрделть и все хорошо будет у тебя с наследованием

Денис
04.12.2017
14:43:43
а можно более конкретно
http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html - вот в этой великолепной статье, например, у него благодаря переписыванию "процедурного кода в типа-ООП" мистическим образом меняется сложность по времени. "Besides that, it is obvious that the second script runs in O(1) space, while the first one executes in O(n). This is the consequence of our procedural approach to data in the first script."
Хинт - от того, что он потенциально тот же самый код выпихнул из метода в конструктор промежуточно сооружаемого класса, фактическая сложность по времени не изменится, если не меняется используемая алгоритмика.

Ivan
04.12.2017
14:43:50
тогда наследование классов не нужно, бери интерфейсы и делегируй

Alexander
04.12.2017
14:43:52
опять же Бугаенко хорошо описал правила наследования имхо

Ivan
04.12.2017
14:44:18
ну вот они не нужны
если не переопределять
функциональность а только расширять

Денис
04.12.2017
14:44:29

Sergey
04.12.2017
14:45:47

Alexander
04.12.2017
14:46:20
функциональность а только расширять
абстрактный класс содержит базовую логику в виде final методов которые нельзя переопределить а например 1 абстрактный метод. т.е наследник всегда должен реализацию предосавить такого метода и не может изменить поведение базового метода. все логично и хорошо поддерживается, я так работаю - доволен как слон

Sergey
04.12.2017
14:47:12
Нельзя в одну кашу смешивать быстродействие, быстроту разработки и maintainability. Это разные термины
У Егора - про последнее. Причем написано как для самых маленьких, а все равно не догоняют)

Денис
04.12.2017
14:48:53
Угу, мэйнтэйнить код из 15000 классов - тоже, гм, специфичное удовольствие выйдет.

Artjom
04.12.2017
14:48:57
Не вижу в примерах кода Бугаенко maintainability ужасно читаемые лесенки декораторов

Денис
04.12.2017
14:49:17
И да, new new new new new new new - великие цепочки

Sergey
04.12.2017
14:49:33

Artjom
04.12.2017
14:50:15
Пример проекта дайте где отличный ооп

Google

Alexander
04.12.2017
14:50:16
у него много годных идей, мне лично очень нравятся: immutability, no utility classes, no accessors, no deep inheritance, no blanks lines, no more than 4-5 method params, no shadowing, no "instance of" :D

Денис
04.12.2017
14:50:27
"Очень много очень маленьких сущностей" и "Очень мало очень больших сущностей" - две примерно одинаково, на мой вкус, плохие вещи, которые вылезают просто чуть разным геморроем. Я предпочитаю постоять посерединке.

Vitalii
04.12.2017
14:50:56

Artjom
04.12.2017
14:51:10
DI не ооп и зло

Денис
04.12.2017
14:51:27
Какой DI, когда у тебя получение потримленных строк из файла - новый объект?

Sergey
04.12.2017
14:52:13
DI
Ну я не DI имел ввиду. А вообще интересный вопрос - если иньекция через сеттеры - так се подход, и иньекция через конструктор рулит - зачем вообще DI? неужели так сложно породить обьект блеать)

Admin
ERROR: S client not available

Artjom
04.12.2017
14:52:51
4 -5 параметров в методе это давное еще в Effective Java было , это не от Бугаенко

Vitalii
04.12.2017
14:53:08

Alexander
04.12.2017
14:53:17
а кстати кто нить модет ткнуть меня в спеку джавы, где конкретно написано что new гарантирует инстанциирование в куче? звучит просто не очень логично, зачем т.е лезть в динамическую память если мы в скопе автоматической памяти (на стеке)? например в крестах T t; создает объект прям на стеке что оч круто, и не надо его потмо удалть руками (даже в крестах)

Денис
04.12.2017
14:53:18

Sergey
04.12.2017
14:53:31
Равно как и каждый новый метод

Alexander
04.12.2017
14:54:00

Денис
04.12.2017
14:54:27

Sergey
04.12.2017
14:54:39

Alexander
04.12.2017
14:54:48

Artjom
04.12.2017
14:55:19
Подаешь в метод Лонг булеан и джсон как это влияет на cohesion и coupling ?

Денис
04.12.2017
14:55:32
Окей, что из перечисленного внёс именно Бугаенко как сколько-нибудь оригинальное новшество, касающееся структуры и организации кода?

Artjom
04.12.2017
14:55:36
Это на читабельность влияет

Google

Alexander
04.12.2017
14:56:01

Sergey
04.12.2017
14:56:28

Vitalii
04.12.2017
14:56:31

Alexander
04.12.2017
14:56:45
вопрос изначально то какой был?))

Vitalii
04.12.2017
14:57:12
Ну блин, праст new T(); в Java — это ж некий аналог T t; в плюсах скорее, если сравнивать. Насколько я понимаю.

Alexander
04.12.2017
14:58:22
не думаю что это корреткное сравнение

Денис
04.12.2017
14:58:41

Vitalii
04.12.2017
14:58:42
Некорректное, но если и пытаться проводить аналогии, то скорее так, чем сравнивание двух new.

Alexander
04.12.2017
14:58:58
запусти цикл for(;;) {new Object()} и прицепись jvisualvm увидишь как gc сборки делает периодчески

Sergey
04.12.2017
14:58:59

Денис
04.12.2017
14:59:24
скорее too cohesive, не?
Хотя тут может туплю уже я

Sergey
04.12.2017
14:59:48
Таки как раз нет)

Денис
04.12.2017
15:00:05
Окей-окей

Sergey
04.12.2017
15:00:29
Cohesion это метрика которая показывает насколько модуль неделим. Если он cohesive, значит он single responsible с очень большой вероятностью.

Artjom
04.12.2017
15:01:21
Да но при чем здесь количество аргументов в методе