powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение spring beans в классе, неуправляемом spring
25 сообщений из 113, страница 3 из 5
Получение spring beans в классе, неуправляемом spring
    #39955823
bob1970
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Идея овер-инжинернига описана в статье на хабре https://habr.com/en/post/113128/

К сожалению в Spring заходят новички которых сразу учат длинным реализациям.
Думаю что через лет 5 такого учения они будут уже не в состоянии написать простой
код. Такая проф-деформация специфичная именно для Spring-сегмента .

По-сути в этом и был мой вопрос. Излишняя привязанность к spring, ктр. накладывает определенные ограничения (одиночка, stateless,.... ). В результате появляется связАнность компонентов, т.к. очень просто воткнуть бин спринга, тем самым опять привязаться к спрингу. Вижу конструкторы с 5-ю и более аргументов. Максимальное размещение логики в в бинах спринга, отсюда процедурщина в полный рост. Всякие там паттерны и прочие SOLID идут лесом.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956070
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bob1970

По-сути в этом и был мой вопрос. Излишняя привязанность к spring, ктр. накладывает определенные ограничения (одиночка, stateless,.... ). В результате появляется связАнность компонентов, т.к. очень просто воткнуть бин спринга, тем самым опять привязаться к спрингу. Вижу конструкторы с 5-ю и более аргументов. Максимальное размещение логики в в бинах спринга, отсюда процедурщина в полный рост. Всякие там паттерны и прочие SOLID идут лесом.


Тут вчера был
YouTube Video
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956071
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bob1970
Максимальное размещение логики в в бинах спринга, отсюда процедурщина в полный рост. Всякие там паттерны и прочие SOLID идут лесом.


На самом деле область применения ООП достаточно узкая. Объекты хороши когда есть один "изолированный" объект с состоянием и своим поведением. Обычно ООП хорош для описание объектов операционной системы: окно, принтер, кнопка и пр.

Для многих бизнес-приложений больше характерна модель с множеством взаимодействующих объектов, где сложно выделить главный.
В этом случае более подходящей моделью является Multiple Dispatch , которая, правда, очень плохо реализована в языках программирования. Обычно диспетчеризация идёт по одному типу, что и является ООП (правда, ООП ещё подразумевает инкапсуляцию).

Так что "процедурщина" в бизнес-приложениях это не маргинальщина, а вполне естественное отображение предметной области.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956099
bob1970
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
unregestered


На самом деле область применения ООП достаточно узкая. Объекты хороши когда есть один "изолированный" объект с состоянием и своим поведением. Обычно ООП хорош для описание объектов операционной системы: окно, принтер, кнопка и пр.
Для многих бизнес-приложений больше характерна модель с множеством взаимодействующих объектов, где сложно выделить главный.

Спорное место. Но главное ниже.
unregestered

В этом случае более подходящей моделью является Multiple Dispatch , которая, правда, очень плохо реализована в языках программирования. Обычно диспетчеризация идёт по одному типу , что и является ООП (правда, ООП ещё подразумевает инкапсуляцию).

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

Как-то революционно выглядит. Можешь подробнее раскрыть мысль.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956146
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered

На самом деле область применения ООП достаточно узкая. Объекты хороши когда есть один "изолированный" объект с состоянием и своим поведением. Обычно ООП хорош для описание объектов операционной системы: окно, принтер, кнопка и пр.


С чего вы взяли, что ООП подходит для описание объектов GUI? ;-)
Вы писали свой GUI?

unregestered

Для многих бизнес-приложений больше характерна модель с множеством взаимодействующих объектов, где сложно выделить главный.
В этом случае более подходящей моделью является Multiple Dispatch , которая, правда, очень плохо реализована в языках программирования. Обычно диспетчеризация идёт по одному типу, что и является ООП (правда, ООП ещё подразумевает инкапсуляцию).


Как минимум видел реализацию, где взаимодействие между объектами реализовано через "сообщения" (не используя очереди сообщений)
Т.е. "главным объектом" был инфраструктурный объект, который перенаправлял сообщения.

unregestered

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


Именно, что маргинальщина, по принципу сделать быстро сейчас. Потом долго и мучительно переделывать потом.
Ну и обычно для бакендеров формулируют задачу по реалиазции бизнес-процессов в процедурном стиле, ещё в виде веселых картинок.
Вот они как настоящие акыны делают "что вижу, то пою".
:-)
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956239
chpasha

ну например ты переписываешь легаси на спринг, но частями, т.е. есть уже новые вещи и есть еще куча старья и вот надо в старье уже заюзать нечто из нового, что уже мигрировали. по-крайней мере я подобной фигней тоже разродился лет 10 назад.

Бгг, когда коту делать нечего он яйца лижет. А современный программист переписывает проект с одного фреймворка на другой точно такой же но модный в этом сезоне. А когда придет новый сезон и новый фреймворк - примется переписывать то же самое, но уже на него. Ну ничего, главное что денежка капает. А то, что занят абсолютно бессмысленной работой - ну так смысл на хлеб не намажешь.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956262
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
Бгг, когда коту делать нечего он яйца лижет

[конспектирует, высунув язык]

Ржавый гвоздь
переписывает проект с одного фреймворка на другой точно такой же но модный в этом сезоне. А когда придет новый сезон и новый фреймворк - примется переписывать то же самое, но уже на него. Ну ничего, главное что денежка капает. А то, что занят абсолютно бессмысленной работой - ну так смысл на хлеб не намажешь.
тебе, конечно, из погреба всяко виднее
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956264
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь

Бгг, когда коту делать нечего он яйца лижет. А современный программист переписывает проект с одного фреймворка на другой точно такой же но модный в этом сезоне. А когда придет новый сезон и новый фреймворк - примется переписывать то же самое, но уже на него. Ну ничего, главное что денежка капает. А то, что занят абсолютно бессмысленной работой - ну так смысл на хлеб не намажешь.


Ну бывает надо переписывать на стильномодномолодежный фреймворк.
Вот например щас у меня проект на jBoss seam, который лет пять как "сдох".
Переводить его на JSF - ну такое.
Так что сейчас переписывают на React + SpringBoot.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956300
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

С чего вы взяли, что ООП подходит для описание объектов GUI? ;-)
Вы писали свой GUI?
:-)


Конечно писал лол

mad_nazgul

Как минимум видел реализацию, где взаимодействие между объектами реализовано через "сообщения" (не используя очереди сообщений)
Т.е. "главным объектом" был инфраструктурный объект, который перенаправлял сообщения.
:-)


"Сообщение" (например в Object C) это всего лишь навсего вызов метода.

mad_nazgul

Именно, что маргинальщина, по принципу сделать быстро сейчас. Потом долго и мучительно переделывать потом.
Ну и обычно для бакендеров формулируют задачу по реалиазции бизнес-процессов в процедурном стиле, ещё в виде веселых картинок.
Вот они как настоящие акыны делают "что вижу, то пою".
:-)


"Переделывание", как вы выражаетесь, это неотъемлемая часть процесса разработки в принципе, и никак не связана со стилем программирования.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956303
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bob1970

Как-то революционно выглядит. Можешь подробнее раскрыть мысль.


Коротко: ООП это частный случай Dynamic dispatch, когда выбор метода идёт только на основе одного типа. Однако в бизнес-приложениях (и многих других) обычно взаимодействуют 2-3 объекта и невозможно выделить главный.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956321
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered
bob1970

Как-то революционно выглядит. Можешь подробнее раскрыть мысль.


Коротко: ООП это частный случай Dynamic dispatch, когда выбор метода идёт только на основе одного типа. Однако в бизнес-приложениях (и многих других) обычно взаимодействуют 2-3 объекта и невозможно выделить главный.

Есть мнение что все немного наоборот, что multimethods это разновидность ООП, как и prototype-based languages, а не наоборот. Хотя и то и то мнение мне кажется немного натянутым. Ну и в любом случае мне кажется что ФП уделывает все эти парадигмы на раз-два
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956617
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
Ну и в любом случае мне кажется что ФП уделывает все эти парадигмы на раз-два


Программер должен знать разные парадигмы и архитектурные паттерны и понимать где что применимо.

Я уже давно оцениваю языки с сугубо практической точки зрения: поддержка IDE, билд тулов, стат-анализаторов, библиотек, фреймворков, дебагеров, мониторинговых тулов, удобство рефакторинга, быстрота компиляции и работы итд итп
Всё остальное это свистелки и перделки, как выражался товарищ Дейкстра.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956631
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered

Конечно писал лол


Вот прям API для рисования окошек, менюшечек и прочего?


unregestered

"Сообщение" (например в Object C) это всего лишь навсего вызов метода.


Не только, там еще определенная иерархия классов.

unregestered

"Переделывание", как вы выражаетесь, это неотъемлемая часть процесса разработки в принципе, и никак не связана со стилем программирования.


Ещё как связана.
Переделать можно всё, вопрос в цене.
Стоимость каждого последующего изменения процедурно написанной программы стремиться к бесконечности. ;-)
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956739
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Вот прям API для рисования окошек, менюшечек и прочего?


API - это не GUI.

mad_nazgul

Не только, там еще определенная иерархия классов.


Я не понимаю, про что вы. При чём тут иерархия. Речь шла про то что [receiver message] в Objective-C эквивалентно receiver.message() в других языках программирования

mad_nazgul

Ещё как связана.
Переделать можно всё, вопрос в цене.
Стоимость каждого последующего изменения процедурно написанной программы стремиться к бесконечности. ;-)


Сколько вы программ переделали? Я - миллион, включая свои собственные (хотя казалось бы уж тут-то качество должно быть на высоте).
И я вас уверяю, что это: 1) неизбежно, 2) не является чем-то запредельным для нормального разработчика в большинстве случаев.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered
bob1970

Как-то революционно выглядит. Можешь подробнее раскрыть мысль.


Коротко: ООП это частный случай Dynamic dispatch, когда выбор метода идёт только на основе одного типа. Однако в бизнес-приложениях (и многих других) обычно взаимодействуют 2-3 объекта и невозможно выделить главный.

В одном из семинаров по Haskell (кажется Виталия Брагилевского)
докладчик сказал интересную вещь. Вобщем по его мнению ООП и ФП
подход похожи примерно как разворот на 90 градусов всех абстракций.
В одном случае ты вкладываешся в базовые классы. Реализуешь их.
А в другом - в функции и типы. Стоимость поддержки и внесения изменений
- примерно одинакова.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956780
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered

API - это не GUI.


Ок. Значит не делали.

unregestered

Я не понимаю, про что вы. При чём тут иерархия. Речь шла про то что [receiver message] в Objective-C эквивалентно receiver.message() в других языках программирования


Не совсем. Т.к. обычно

Код: java
1.
2.
3.
4.
5.
@Override
public void execute(Event event) {
    super.execute(event)
    ...
}



unregestered

Сколько вы программ переделали? Я - миллион, включая свои собственные (хотя казалось бы уж тут-то качество должно быть на высоте).
И я вас уверяю, что это: 1) неизбежно, 2) не является чем-то запредельным для нормального разработчика в большинстве случаев.


Судя по вашим тезисам вы не работали с "кровавым Ынытрпрайзом" и дремучим легаси кодом.
Который переписывать очень дорого, а нужно "тут немножко поправить".
И как бы мне приходилось "немного править" в dBase-подобных ЯП.
Где кроме процедурного программирования ничего в принципе нет.
Скажем так, это было познавательно.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956890
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

докладчик сказал интересную вещь. Вобщем по его мнению ООП и ФП
подход похожи примерно как разворот на 90 градусов всех абстракций.

В целом мысль правильная,но в том то и дело что не всех, он немного лукавит.

mayton

В одном случае ты вкладываешся в базовые классы. Реализуешь их.
А в другом - в функции и типы.

Суть ты уловил, но неправильно формулируешь. Имеется ввиду решение так называемой expression problem(она заключается в том, что надо найти способ добавить новые функции и новые типы максимально используя уже дотупные и так, чтобы не сломать уже реализованный функционал)
И тут действительно, ФП и ООП перпендикулярны. Так как в ФП данные и поведение разделены, то в нем легко добавить новую функцию, но невозможно добавить новый тип, не сломав уже реализованные функции.
В ООп наоборот - легко добавить еще одну реализацию, но невозможно добавить метод в интерфейс не сломав все предыдущие реализации.
В принципе это все решаемо,в ФП через typeclass, в ООП - object algebras.

Разница же между ФП и ООП всего лишь в том что под ФП подведена математическая основа, а ООП - это скорее сбор эмпирических практик, которые все вольны трактовать по своему. По факту immutability, отсутсвие side-effects. pure функции, lambdas, streams etc - это все совершенно легко можно использовать и в ООП(на математической основе, а не следуя всяким высосаным SOLID). И мир к этому и идет. По сути, если убрать из ООП subtype polymorphism и наследование - то мы и придем к ФП. Все беды ООП именно из-за них. Наследование нарушает инкапсуляцию. точка.

mayton

Стоимость поддержки и внесения изменений
- примерно одинакова.

Поэтому это не правда
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39956925
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник

mayton

Стоимость поддержки и внесения изменений
- примерно одинакова.

Поэтому это не правда

Да. Она неодинакова хотя-бы потому что мы никогда не найдем двух специалистов
одинакового левла ФП и ООП чтоб задать им одну и ту-же задачу и сравнить
перформанс.

Не сможем зайти в одну и туже воду дважды.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957012
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы назвал столпами ФП: иммутабельность, ленивость и хвостовая рекурсия. Всякие операции с коллекциями, а-ля стримы, мапперы, редусеры ни в коем мере не является функциональной спецификой, ни с теоретической, ни с практической точки зрения. Операции с коллекциями есть чуть ли не во всех языках.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957016
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера рассеянно просматривал лекции Юрия Жлобы по Эрланг. Меня не столько язык итересовал
сколько брокер Rabbit-Mq и архитектура его устойчивости к сбоям. Поскольку он написан на Erlang
то я искал некоторые ответы на вопросы в самом языке. И вот что я заметил. Есть семейство языков
Erlang/Lisp/Prolog у которых очень много похожих свойств. Причем настолько похожих что кажется
что они концепции просто копировали. И похожести в них больше чем в С++/Java/C#. От пролога
- предикаты и нотация записи процедур запятая-запятая-точка. От Лиспа - списки.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957017
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered
Я бы назвал столпами ФП: иммутабельность, ленивость и хвостовая рекурсия. Всякие операции с коллекциями, а-ля стримы, мапперы, редусеры ни в коем мере не является функциональной спецификой, ни с теоретической, ни с практической точки зрения. Операции с коллекциями есть чуть ли не во всех языках.

Ленивость и хвостовая рекурсия это следствия, а не причины(при чем первое вообще присутствует далеко не во всех ФП-языках).
Столпы ФП - pure, total, side-effects free функции + immutable data + high-order-functions(частным случаем которых как раз и являются стримы редьюсеры и т.п)
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957024
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вчера рассеянно просматривал лекции Юрия Жлобы по Эрланг. Меня не столько язык итересовал
сколько брокер Rabbit-Mq и архитектура его устойчивости к сбоям. Поскольку он написан на Erlang
то я искал некоторые ответы на вопросы в самом языке. И вот что я заметил. Есть семейство языков
Erlang/Lisp/Prolog у которых очень много похожих свойств. Причем настолько похожих что кажется
что они концепции просто копировали. И похожести в них больше чем в С++/Java/C#. От пролога
- предикаты и нотация записи процедур запятая-запятая-точка. От Лиспа - списки.

Так а что в этом удивительного? Закономерное развитие, когда новые языки вбирают в себя хорошо работающие идеи из старых.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957025
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы добавил вывод типов и генерики и паттерн-матчинг. 2 пункт вообще очень **ёво реализовано в Java.
То что в Java навзали Generics вообще не имело право так называться. Их можно было назвать compile-time-guards (CTG)
или что-то вроде этого. И поведение примитивных типов по отношению к CTG вообще не определено. Тоесть
вы старалить. Описывали обобщенный алгоритм но не можете применить его к целому числу. Хотя сам бох
велел скомпилировать хардкод для целого числа но ... компиллятор вставляет туда Object с RTTI Integer
семантикой. Какие накладные при этом несет код - сложно представить.

Я догадываюсь почему Одерский плюнул и стал делать свой язык. Хотя он ведь был коммитером самых первых
версий JDK в эпоху Sun.
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957028
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Я догадываюсь почему Одерский плюнул и стал делать свой язык. Хотя он ведь был коммитером самых первых
версий JDK в эпоху Sun.

Так он прямо об этом говорит.
А сделали так коряво потому что backward-compatibility считали важнее чем теоретическая правильность
...
Рейтинг: 0 / 0
Получение spring beans в классе, неуправляемом spring
    #39957036
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так для JVM все равно. Эту механику можно было реализовать еще в эпоху JDK 1.1. Просто компиллятор
делал бы больше преобразований. Честное слово возьму ASM/CGlib и насетаплю свой Java-Kava с блекджеком
и женщинами.
...
Рейтинг: 0 / 0
25 сообщений из 113, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение spring beans в классе, неуправляемом spring
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]