@jvmchat

Страница 1998 из 2890
Alexander
04.12.2017
14:31:26
достаешь функтор, показываешь монаде, обмазываешь миксинами и стреляешь себе в копию ноги из деревянного немутабильного пистолета. Просыпаешься

подходишь к монаде и говоришь: У вас такие больше ЛЯМБДЫ

дальше должна быть штука про функтор, но ладно)

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

Google
Денис
04.12.2017
14:33:44
И как бы Егора можно за многое критиковать, но посыл верный. Его обьекты по крайней мере далеко не так связаны
Мне кажется, низкая связность объектов - просто хороший тон в ООП, который, как раз, не является каким-то специальным достижением сам по себе. А в остальном мсье Бугаенко гонит столько сомнительного буллшита, что воспринимать его всерьёз я не готов от слова "совсем".

Митко Соловец?
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
твоё лицо, когда опять задали вопрос про хэш-мапы на собеседовании
А ты обкурился эндофункторов и пытаешься не заржать.

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

:D

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
Вебсферки накатим

Денис
04.12.2017
14:39:54
И нет - это не просто хороший тон. Это один из важнейших аспектов code maintainability, про который как правило аутсорсинг компании любят забывать)
В данном случае под "хороший тон" имелось в виду то, что, на мой взгляд, это такое правило уровня "мой руки перед едой", за соблюдение которого в пример ставить малость странно.

Sergey
04.12.2017
14:41:21
В данном случае под "хороший тон" имелось в виду то, что, на мой взгляд, это такое правило уровня "мой руки перед едой", за соблюдение которого в пример ставить малость странно.
Я бы сказал за несоблюдение оного к стенке бы надо ставить. Но мир неидеален, поэтому вместо этого мы здесь сидим и ноем как ООП плох лол

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

Больше интерфейсов

Нужно больше интерфейсов

Alexander
04.12.2017
14:41:48
В данном случае под "хороший тон" имелось в виду то, что, на мой взгляд, это такое правило уровня "мой руки перед едой", за соблюдение которого в пример ставить малость странно.
да нет. "мойте руки перед и зад" ? это маст хев) если принеберчь все очень быстро в ад погрузится и любое маломальское измнение не будет обходиться без shortgun surgery

Один из столпов ОО это наследование... А оно часто в такую кашу превращается
его нужно уметь деать. Например не наследоваться от реализации)

Sergey
04.12.2017
14:42:42
Один из столпов ОО это наследование... А оно часто в такую кашу превращается
Кстати из той же серии. Наследование ведет как раз к высокому coupling.

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
Именно. Надо. А тут вместо этого хвалили Бугаенко за соблюдение. Что и показалось мне, среди прочего, довольно странной аргументацией.
Опять же - Бугаенко можно за многое критиковать, я этого не отрицал. Но с точки зрения cohesion-coupling его концепция уруливает нахрен весь мейнстрим.

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
Угу, мэйнтэйнить код из 15000 классов - тоже, гм, специфичное удовольствие выйдет.
Отличное удовольствие. Отвечаю. То что в джаве для этого надо много бойлерплейт кода писать, проблемы джавы.

И да, new new new new new new new - великие цепочки
Цепочки можно легко устранить если немного подумать.

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
"Очень много очень маленьких сущностей" и "Очень мало очень больших сущностей" - две примерно одинаково, на мой вкус, плохие вещи, которые вылезают просто чуть разным геморроем. Я предпочитаю постоять посерединке.

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 было , это не от Бугаенко

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

Денис
04.12.2017
14:53:18
4 -5 параметров в методе это давное еще в Effective Java было , это не от Бугаенко
Вот да, половина вышенаписанного - такие же оригинальные идеи Бугаенко, как колесо - моё изобретение

Sergey
04.12.2017
14:53:31
4 -5 параметров в методе это давное еще в Effective Java было , это не от Бугаенко
Если исключить литературу, то это тоже из серии coupling. Каждый новый аргумент пагубно влияет на cohesion и coupling

Равно как и каждый новый метод

Alexander
04.12.2017
14:54:00
Денис
04.12.2017
14:54:27
да какая разница чьи они - они клевые и это самое главное
Разницы, чьи - никакой, разница, кого за них хвалить - большая.

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
Так то есть escape analysis и скаляризация. Где то у меня спич на эту тему был заложен...
ну я имею ввиду наверное то, что зачем просить gc выделять память если можно этого не делать? или там как-то очень хитро оптимизировано оно?

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

Vitalii
04.12.2017
14:57:12
вопрос изначально то какой был?))
Так это, Ctrl+F -> new по спеке

Ну блин, праст 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
Подаешь в метод Лонг булеан и джсон как это влияет на cohesion и coupling ?
Этого недостаточно для ответа на вопрос. cohesion обычно считается как количество независимых друг от друга частей в модуле (классе). Чем больше, тем хреновей. Соответственно чем больше методов, свойств или аргументов, тем больше вероятность что они не cohesive enough

Денис
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
Да но при чем здесь количество аргументов в методе

Страница 1998 из 2890