|
|
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Последние 2 недели ковыряю спринг... В инете масса инфы о нем, что он и зачем. И вроде технически все понятно. Создаем классы JavaBean, описываем их в контексте спринга и можем использовать в приложении. Можем иньектить в код... И если со всякими Spring Security или Spring MVC все четко, логично и понятно. То вот все эти 2 недели в мозгу бьется только одна мысль "нахрена нужен IoC в спринге" ? Смотрю кучу примеров в инете, походу у большинства "спринг головного мозга". Перерыл кучу проектов на гитхабе по этой теме, искал пример который наглядно покажет, не КАК использовать спринг а НАХРЕНА его вообще использовать... Особенно радуют фразы типа "И вот теперь, вместо инициализации поля, мы можем загрузить контекст из xml, создать фабрику и из этой фабрики инициализировать поле"... т.е. вместо одного просто действия, делать десяток сложных... простой вопрос накуа? ну будет вместо Код: java 1. вот так Код: java 1. 2. Что изменится-то? или зависимость от MyClass куда-то мифическим образом денется? Все говорят о модульности спринг приложений... Если у меня приложение модульное, разбито на отдельные классы и т.д., то спринг сделает его еще модульнее? Ну так блин какая нахрен разница как именно инициализируется нужный класс? Да, можно сделать различные реализации одного и тогоже класса и менять их в конфигах спринга. А разве интерфейс+несколько реализаций не делают тоже самое? Зачем переусложнять простой механизм? Зачем вообще иньектить один объект во все классы через спринг, когда тоже самое можно сделать через статические классы? В общем люди добрые, приведите пожалуйста реальный пример из жизни, где использование спринга действительно дает какие-то бенефиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 04:43:21 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Декларативные транзакции например. А так-да, тащемта, спрингненужен. С приходом понимания архитектуры проекта возникает непреодолимое желание удалять из него спринг. Но, как правило, в энтерпрайзе, где говнокода 99%, и что-то поделать с этим затруднительно, спринг вносит хотя бы какой-то порядок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 05:38:58 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ну и вообще, проблемы лучше решать по мере поступления - если появляется проблема, для которой спринг является решением, можно применять спринг. Примеры же не из жизни, а как раз чтобы показать как можно подробнее применение спринга, странно ожидать от примеров чего-то иного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 05:45:41 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Да вы чо??? Понятно, что для отдельно взятого приложения, построенного на своих классах, он нафиг сдался (хотя приложение приложению рознь). Пример из жизни: есть веб-приложение и бекэнд, тут все просто; есть "админка" - АРМ "не для всех" на флексе, флекс/флеш через GraniteDS, во-первых, реализует Remote Procedure Call (RPC), во-вторых, открывается комет-соединение для управления поведением системы и событиями в реальном времени; для нормального управления событиями использую ActiveMQ; само собой - Hibernate; кроме SpringMVC активно используется Spring Security; на начальных этапах был Quartz (спринг также реализует Cron, поэтому отказались); кусок клиента использует DWR. К чему я это все ... не будь каркаса в лице спринга, я бы замахался все кусочки воедино собирать. Даже сложно себе представить, чтобы в уже настроенной и функционирующей системе (без спринга) пришлось бы что-то значительное менять - волосы шевелятся. Я совершенно не теоретик и многие вещи понимаю больше по наитию и следую эмпирическим путем, другими словами, если бы пришлось спринг раскрутить по винтикам, то обратно я бы его не собрал ))). Но даже при этом отлично отдаю себе отчет, что без него (или аналогов) пришлось бы очень, очень туго. Он жутко облегчает работу в крупном проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 07:40:13 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияВ общем люди добрые, приведите пожалуйста реальный пример из жизни, где использование спринга действительно дает какие-то бенефиты. тебе его никто не приведёт.)) - спринг, это идеология (как в 1С - конфигурирование). Отсюда все издержки. Если молиться на одного бога, то становишься конфигурастом (1С) и забываешь что такое статические классы, ООП и утилиты. В технологиях обычно, всё качается как маятник - кинулись на XML, потом на веб-сервисы, потом на облака, потом на _декларативное_ конфигурирование тьфу, программирование аннотациями. Т.е. делай проекты как с ним, так и без него. ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 08:46:26 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
IDVsbruckДаже сложно себе представить, чтобы в уже настроенной и функционирующей системе (без спринга) пришлось бы что-то значительное менять - волосы шевелятся странно. Если взять логичный проект, где модульность и инкапсуляция в классах. То как люди его меняют? И в чём проблема посмотреть проект? Вот этими фразами, и понятно - Спринг - Бог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 08:49:12 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Кстати, MS, в своё время, отказалась от технологии COM. По причине: Увеличивает связность проектов программистами, т.к. их стало слишком легко делать. Весь проект испещрён вызовами интерфесов туда-сюда. Надо и не надо. То же самое с инжекцией всего и во вся друг с другом (километровые простыни описания связей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 08:54:32 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Давайте без фанатизма рассмотрим простой вариант: У нас есть сервис UserService с простыми CRUD операциями. У нас есть бизнес логика где ипользуется данный сервис. С вашей логики мы просто делаем вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Дальше так как мы выделили интерфейс для нашего сервиса значит есть и другие реализации, поэтому скорей всего метод init будет иметь параметр Код: java 1. 2. 3. 4. 5. Теперь представим что у нас бизнес логика использует 3 сервиса, добавляем ещё параметры? А лучше напишем фабрику которая учтет все зависимости нашего SomeBean от всех сервисов и уже вернет готовый объект. Вот и получается что мы так или иначе придём к тому что начнём писать свой IoC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 09:35:58 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GregTk, Класс который ни с того ни с сего стал использовать 3 чужих класса требует рефакторинга. Т.е. изменения логики кода. Ссылка на требуемые при этом 3 объекта 1 процент работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 10:17:14 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Волшебная фабрика учитывающая все зависимости предметной области - иллюзия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 10:20:11 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123, Это мне напоминает троллинг. :) Я немогу уловить вашу точку зрения, вы говорите что spring это идеология, покажите как тогда у вас без IoC. Как вы пишите тесты и поднимаете среду для тестирования. Утверждение что не может быть зависимостей от 3 классов это чушь. У меня может быть сервис проверки прав, сервис отправки сообщений по sms и по email. Да много можно придумать вариантов и с многими я сталкивался. Главный принцип Single Responsibility и IoC его решает на ура. Жду от вас примера работы без IoC. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 10:30:35 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GregTk, Троллинг у тебя. Нельзя делать пример зависимостей без кода использования их. Свою т.з. я сказал -умей писать с ним и без него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 10:49:03 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123, Без конкретики всё это пустые слова и троллинг. Как будет пример так и поговорим, а постулатами каждый может говорить. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 11:41:29 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GregTk, Конечно). Мне твой довод тоже бла бла. У автора лучше) Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 12:16:40 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
тут два вопроса. 1 - зачем ioc, 2 - зачем ioc в спринге. ответ на порос 2 -- поскольку спринг - набор библиотечных классов, то почему бы и нет. ioc- как универсальный механизм конфигурирования, чтобы не изобретать велосипеды. Спринг - как либа, дающая эту идеологию. в реальных приложениях где много классов у класса поля должны ссылаться на другие классы. Таким образом набор обьектов представляет собой некий граф. И если граф большой, то его создание - еще тот геморой. У меня вот есть проект. Изначально он был небольшой, все было ок, когда разросся, и структура стала чуть больше, то стало видно, что нужен некий универсальный конфигуратор, которым может стать спринг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 12:39:40 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
авторЧто изменится-то? или зависимость от MyClass куда-то мифическим образом денется? Теоретически это дает возможность легко писать юнит тесты, в которых тестируется только один класс, а все остальные классы замоканы. На практике все равно такие тесты никто не пишет, потому что в яве большого толка от них нет (простые ошибки и так отлавливаются компилятором), а сами такие тесты выглядят не очень органично в силу особенностей языка (сложно делать моки и стабы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:25:20 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияЧто изменится-то? или зависимость от MyClass куда-то мифическим образом денется? Один объект перестаёт управлять жизненым циклом другого. Эта зависимость и выносится из всех классов в отдельный контейнер. Жизненым циклом управляет сам контейнер. Вместо того чтобы управление было размазано по всем классам. Это было ещё задолго до Spring, например в EJB, где ссылку на бин можно было получить только через JNDI. Это тоже IoC, но не через Dependency Injection, а через Service Locator. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:26:30 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Класс который ни с того ни с сего стал использовать 3 чужих класса требует рефакторинга. Т.е. изменения логики кода. Ссылка на требуемые при этом 3 объекта 1 процент работы. Отличный аргумент, полностью согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:28:09 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Я бы лучше ввел в яву такую конструкцию. Например, есть static функция Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Теперь надо протестировать, но мешает зависимость от static функции. Добавляем в тестовый класс функцию с такой же сигнатурой как EmailUtils.sendEmail Код: sql 1. 2. 3. 4. 5. 6. 7. 8. И вызываем новую конструкцию with_patch Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:44:41 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЯ бы лучше ввел в яву такую конструкцию. Например, есть static функция ... Mocking static methods with Powermock ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:55:01 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Вот так вот. Из грязи сразу в князи. Нет пора решительно проводить классовую сегрегацию среди программеров. Искренне посмеялся над вопросом. Почему-то возникла аналогия. Строитель сидит на сройке, жуёт сендвич и громко рассуждает на тему зачем ему нужна общая теория относительности. А? Зачем? У него есть уровень, отвес, и угольник. Какие скажите ему с этого бенефиты? А никаких. Вопрос к автору. Какова его сфера деятельности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 13:56:28 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
авторMocking static methods with Powermock Это очень круто, огромное спасибо за ссылку. Но как оно работает? Зачем вообще нужны какие-то сервисы, если можно все делать статик функциями и нормально тестировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 14:49:21 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
maytonВопрос к автору. Какова его сфера деятельности? Наверно надо пояснить с чего вдруг задался таким вопросом. По роду деятельности я программист на Java почти 3 года, но довольно узкоспециализированный. В основном это десктопный софт, SWING и прочии плюшки. Софт связан с финансами, и хоть алгоритмически он довольно сложен, технически реализация довольно простая. Понадобилась внутренняя прога, что-то вроде проката, сотрудники берут довольно дорогое, серийное оборудование и должные его вернуть. Надо вести учет кто, когда и что взял и когда должен вернуть. Сейчас это xls файл, расшаренный по сети. Что вносит достаточно много неудобств. Решили сделать web проектик который эту задачу решит. А так как по работе сейчас загрузка минимальная и есть желание поковырять JEE, руководство разрешило своими силами делать. Опять же оно заинтересовано в моем развитии ) и что радует, спешки никакой нет, никто не требует "вчера" эту прогу. В общем сложилась благоприятная ситуация по изучать новое и попробовать это на реально проектике, пусть и простом. Стал изучть на чем щас делают web ынтырпрайз. Практически сразу наткнулся на спринг. Стал его ковырять. Пробовать. Для view выбрал vaadin. Абсолютно везде в инете говорят, что надо использовать спринг как клей для модулей проекта. Но я сколько примеров не видел, они все притянуты за уши и не объясняют а в чем собственно цимес. Почему описывать инициализацию объектов "левой ногой в прыжке с переворотом" (это я про xml конфиги спринга) - это круто, а инициализировать их в калсссе стандартно, одной строкой через конструктор это плохо. Может я просто не делал действительно больших энтерпрайзных проектов, поэтому и не понимаю зачем спринг. Из примеров в этом топике, единственный момент который хоть как-то показался похожим на правду, это когда бизнес логика очень сложная и очень сильно связана, много объектов друг от друга зависят, тогда вместо конструкторов с 5-7 полями действительно может удобнее через контейнер их инициализировать. Но я всегда боролся с такой сложностью. Считаю это ошибкой архитектуры если такие конструкторы приходится делать. Собственно, почему я вообще не забил на это. И не сделал как привык. Из инета я понял, что знание спринга востребовано рынком и есть смысл его в деле пощупать. К тому же может это действительно та самая "серебрянная пуля", которая реально облегчит разработку и сопровождение проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:03:56 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЭто очень круто, огромное спасибо за ссылку. Но как оно работает? Манипуляции с байткодом и класслоудингом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:15:59 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЯ бы лучше ввел в яву такую конструкцию. Например, есть static функция Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Шарик, поздравляю тебя, ты - балбес. Видимо завести notificationservice избавившись от зависимости от статического EmailUtils (с небось тоже гвоздями прибытыми настройками и темплейтами сообщений) видимо не судьба. ну-ну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:34:36 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, Совершенно верно. Перекрестные ссылки надо минимизировать. В этом очень помогает IDE контролируя область видимости классов. В веб парадигма программирования другая). .Сервлеты это не ООП). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:38:08 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, Совершенно верно. Избавлятся от большого количества перекрестных ссылок на классы надо. И IDE в этом помогает областью видимости. Уж не знаю, понимает ли Оно так же хорошо аннотации. Но! Десктоп и Веб 2-е большие разницы). В вебе парадигма другая. Сервлет это не ООП. Это короткоживущий код за 0000.1 секунды. Поэтому инжекция как наркотик) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:48:48 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Упс)))). Сам сделал такую ссылку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:51:37 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Шарик, поздравляю тебя, ты - балбес. Видимо завести notificationservice избавившись от зависимости от статического EmailUtils (с небось тоже гвоздями прибытыми настройками и темплейтами сообщений) видимо не судьба. ну-ну. Пример, разумеется, упрощенный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:55:03 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияАбсолютно везде в инете говорят, что надо использовать спринг как клей для модулей проекта. Но я сколько примеров не видел, они все притянуты за уши и не объясняют а в чем собственно цимес В чем цимес конкретно спринга или ioc в целом? Если ioc, то хороший пример как не надо привел вумник парой постов выше - в этом примере прекрасно все: и статический метод трансфера средств, делающий невозможным существование более одной реализации, и статический же способ оповещения, так же не дающий никакой возможности в другом месте посылать например вместо мыла смс. К тому же пациент тщетно бьется с проблемой затрудненного тестирования подобного говнокода, при этом авторитетно заявляя, что в ява все равно никто ничего не тестит, проверки на этапе компиляции должно хватить всем, а моки и прочую херню слишком сложно осилить. Если говорить конкретно о спринге - то тут скорее дела вкуса, почти. Отвлекаясь от того, что в спринге существует огромная инфраструктура по интеграции большинства мыслимых mainstream фреймворков и прочие плюшки, все сводится к тому, нравится ли тебе конфигурация в xml или ты предпочитаешь конфигурацию в коде (тот же спринг, guice, tapestry-ioc). Только под конфигурацией в коде подразумевается нечто вида bind(Service.class).to(MyServiceImpl.class) не new MyServiceImpl() в 10 местах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 15:57:38 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПример, разумеется, упрощенный. разумеется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:00:07 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
в этом примере прекрасно все: и статический метод трансфера средств, делающий невозможным существование более одной реализации, и статический же способ оповещения Прочитайте пожалуйста мой пост внимательно. Он не о трансфере средств. Это предложение язковой фичи. Пример, иллюстрирующий фичу, надуманный. и статический же способ оповещения, так же не дающий никакой возможности в другом месте посылать например вместо мыла смс Все равно придется передавать параметр, как именно слать оповещение, по мылу или по смс. Не вижу разницы между статик и виртуальным методом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:08:53 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
А ведь попытки все и везде в коде сделать динамическим, настраиваемым, подменяемым и есть самое большое зло). Взять тот же ЕАV .... рефлексию и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:16:07 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
что в ява все равно никто ничего не тестит, проверки на этапе компиляции должно хватить всем, а моки и прочую херню слишком сложно осилить. Боюсь, что я не очень понятно изложил свою точку зрения. что в ява все равно никто ничего не тестит Я там писал о тестах, в которых класс тестится в полной изоляции. По моим наблюдениям, в яве такое тестирование применяется редко, чаще тестирование делается на уровне полноценных сценариев. а моки и прочую херню слишком сложно осилить Так на самом деле сложно. Есть JMock, есть EasyMock, у всех разное API, не особо интуитивное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:27:22 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПрочитайте пожалуйста мой пост внимательно. Он не о трансфере средств. Это предложение язковой фичи. я понял, к чему был пост. проблема в том, что он является хорошим примером того, как можно было сделать по-другому, чтобы вопроса о тестировании статического метода просто не возникло. Йуный джавистЪи статический же способ оповещения, так же не дающий никакой возможности в другом месте посылать например вместо мыла смс Все равно придется передавать параметр, как именно слать оповещение, по мылу или по смс. Не вижу разницы между статик и виртуальным методом. а она есть. потому что идея не в переопределении метода transfer, а в поручении рассылки отдельному сервису (SRP). будь у нас AccountHelper не статический, и имей он интерфейс NotificationService в качестве зависимости, мы бы поимели кучу профитов, как то: 1) легко делается заглушка для тестирования 2) легко подменяется реализация на рассылку по смс, рассылку на jabber, рассылку на что угодно еще или на все вместе. причем не надо передавать никаких "параметров". Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. далее суем нужные реализации туда куда надо. ЕСЛИ ДАЖЕ у нас например тяжелый случай, когда в одном и том же месте нужно одному клиенту послать смс, а другому мыло (а третий ваще не хочет, чтоб его спамили), то как один из вариантов - сохраняем в настройках для клиента (бд, xml, whatever) имя бина и инстанциируем его по имени (да, здесь является недостатком хранение бина в виде текста, НО это место легко контролируется тестами, т.е. если мы опечатались в имени, на этапе теста мы отловим исключение). После этого оповещение при трансфере РЕАЛЬНО легко меняется извне без модификации кода - просто говорим, что у клиента 234646 при трансфере использовать оповещение jabber. И да, нам для этого нужна другая зависимость, что-то типа NotificationServiceProvider , которая опять же таки в зависимости от реализации может доставать настройки клиента из базы, файла или еще откуда и отдавать нашему AccountHelper ту реализацию нотификаций, что требуется. 3) в сервисе рассылки в свою очередь можно легко обеспечить всевозможную кучу (в том числе локализованных) темплейтов сообщений, тоже например по принципу у каждого клиента свой темплейт. Да, все тоже самое, можно тем или иным способом реализовать в коде, с большей или меньшей степенью гибкости. именно по-этому - это лишь вопрос предпочтения, где конфигурировать. Ну и естественно, подобное мы наворачиваем только если нам подобная гибкость нужна. Но как минимум - это независимость от реализации как перевода денег, так и оповещений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:39:45 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
После этого оповещение при трансфере РЕАЛЬНО легко меняется извне без модификации кода - просто говорим, что у клиента 234646 при трансфере использовать оповещение jabber. И да, нам для этого нужна другая зависимость, что-то типа NotificationServiceProvider Так значит все же с модификацией - новый класс NotificationServiceProvider понадобился. Также хочу отметить, что конфиг спринга - тоже код. Не понимаю, почему я не могу из статик метода залезть в базу, посмотреть как клиент хочет получить оповещение и в зависимости от этого отправить его по смс или емейлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:50:27 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЯ там писал о тестах, в которых класс тестится в полной изоляции. По моим наблюдениям, в яве такое тестирование применяется редко, чаще тестирование делается на уровне полноценных сценариев. т.е. unittest :) . мягко говоря странное наблюдение. ну и собственно говоря, само обобщение довольно смелое. я например довольно часто пишу тесты именно для конкретных классов, потому что тестирование целого тандема часто гораздо более затруднительно, особенно когда веб вовлечен - гораздо проще потестировать дао, чем поднимать джетти и генерить клики в селениуме, хотя естественно одно не заменяет другого полностью. собственно коль скоро речь пошла про тестирование, то здесь конфигурация в xml очень сильно помогает, потому что можно по тому же принципу, что и организация пакетов в ява, подключить различные комбинации "подмодулей", подсунув например пачке дао ссылку на коннект к тестовой базе. да, с помощью кода можно достигнуть схожего эффекта, если взять за основу понятие модуля, существующee в guice и в tapestry-ioc, ну соответственно разбивать конфигурацию на логические модули и подключать те, что надо. Йуный джавистЪа моки и прочую херню слишком сложно осилить Так на самом деле сложно. Есть JMock, есть EasyMock, у всех разное API, не особо интуитивное. да блин, ну фигли сложного? лично я в свое время взял первое попавшееся (EasyMock) и в 20 минут разобрался с минимумом, необходимым, чтобы тесты работали. главное что выбор есть, а разбираться приходится с чем-то так или иначе. когда нету желания разобраться, все кончается тем, что тестов в итоге просто нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 16:53:30 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪТак значит все же с модификацией - новый класс NotificationServiceProvider понадобился вообще-то он понадобился еще в тот момент, когда у нас возникла сама постановка задачи - оповещение настраиваемо под клиента. кроме того, когда подобная гибкость не нужна, а нужно разные реализации в разных местах (ну например мобильные клиенты получают смс, веб-клиенты мыло) - нам бы просто хватило двух реализаций NotificationService, клиентский код бы выглядел едино (зависимость от accounthelper), а сам accounthelper имел мы две "конфигурации". А как тоже самое со статическим методом разрулить, если он у тебя повсюду в коде натыкан? А никак. Search&Replace + Find Usages в руки. Оно понятно, что упорство и труд все переколбасят. Йуный джавистЪ. Также хочу отметить, что конфиг спринга - тоже код. в некотором смысле. я предпочитаю "конфигурация". если ты о том, что его придется время от времени модифицировать, то да - придется. но не в том дело. вопрос в том, во скольких местах код/конфигурацию придется модифицировать при каждом изменении задачи. Йуный джавистЪНе понимаю, почему я не могу из статик метода залезть в базу, посмотреть как клиент хочет получить оповещение и в зависимости от этого отправить его по смс или емейлом. Хехе...если у тебя в статик методах при вызове происходит поностью "динамическая реконфигурация" (а не то, как это было в примере) - то ты просто сделал аналог предложенной мной системы в коде. Т.е. если у тебя статик метод допускает любое количество внутренних реализаций одновременно. Тогда дело упирается просто в то, кому что удобней. Ну отвлекаясь от очевидных проблем с тестированием (и thread safety до кучи). Разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:17:41 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
т.е. unittest :) . мягко говоря странное наблюдение. В 90% случаев вообще нет никаких тестов. Это понятно - если проект активно развивается, то нет времени писать тесты, все фигачат чтобы как можно скорее выдать новую версию. Если есть время писать тесты, то значит проект вяло идет, и кодовая база медленно прирастает. Так оказывается, что большинство кода без тестов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:19:27 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ Не понимаю, почему я не могу из статик метода залезть в базу, посмотреть как клиент хочет получить оповещение и в зависимости от этого отправить его по смс или емейлом. В целом конечно можно. Но ИМХО логичнее и удобнее делать 1 класс = 1 действие. Да и тестить и править такой код проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:24:51 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪт.е. unittest :) . мягко говоря странное наблюдение. В 90% случаев вообще нет никаких тестов. Это понятно - если проект активно развивается, то нет времени писать тесты, все фигачат чтобы как можно скорее выдать новую версию. бывает. лично я тоже часто дописываю тесты уже потом, когда есть время, или наступил в каком-то месте на грабли. Если честно, я уже перестал даже считать, сколько раз они меня выручали. а есть пару мест, в которых без тестов вообще нереально проверить правильность работы. оно понятно, что обстоятельства часто сильнее нас. просто некоторые как-то пытаются с этим бороться, а другие прячутся за "у нас не было времени". а чаще всего просто лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:28:18 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaДа, все тоже самое, можно тем или иным способом реализовать в коде, с большей или меньшей степенью гибкости. именно по-этому - это лишь вопрос предпочтения, где конфигурировать. Ну и естественно, подобное мы наворачиваем только если нам подобная гибкость нужна. Но как минимум - это независимость от реализации как перевода денег, так и оповещений. Вот спасибо. Отличный пример. Хоть какая-то приближенность к реальности. Что-то начало в голове "щелкать" по поводу применения спринга... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:28:35 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияХоть какая-то приближенность к реальности что значит хоть какая-то? основано на реальных событиях ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:32:58 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
авторкроме того, когда подобная гибкость не нужна, а нужно разные реализации в разных местах (ну например мобильные клиенты получают смс, веб-клиенты мыло) А откуда берется признак того, мобильный это клиент или веб? Если признак приходит как аргумент в AccountHelper, то AccountHelper может просто передать этот аргумент в статик функцию оповещения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:33:03 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Что-то начало в голове "щелкать" по поводу применения спринга... Доказательство что спринг не нужен: 1)Берете свой application.xml 2)Объявляете класс с названием Application.java. Для каждого бина в application.xml создаете одноименное поле в этом классе и инициализируете его вызовом конструктора с теми же параметрами как в application.xml 3)Другие классы не меняются. 4)Удаляете спринг из проекта. Таким образом проведен рефакторинг, который доказывает ненужность спринга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:48:34 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪавторкроме того, когда подобная гибкость не нужна, а нужно разные реализации в разных местах (ну например мобильные клиенты получают смс, веб-клиенты мыло) А откуда берется признак того, мобильный это клиент или веб? Если признак приходит как аргумент в AccountHelper, то AccountHelper может просто передать этот аргумент в статик функцию оповещения. та не, забудь ты про признаки, флаги и параметры. accounthelper это сервис, который делегирует две "ответственности" двум другим сервисам, и оперирует он только теми данными, что нужны непосредственно для выполнения операций. Дальше мы в коде мобильного клиента или вебе или еще где инжектируем (уж как хотите, через код или спринг) разные конфигурации того же самого accounthelper, только в одной рассылкой занимается смс, а другой мыло. пример для понимания Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. конфигурация Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. далее тем или иным удобным для нас способом подсовываем клиентскому коду одну из конфигураций. нетрудно догадаться, что в некоторых из них можно подменить не только реализацию нотификации, но и реализацию трансфера. это способ организации "динамического" поведения, когда имеем конечное количество комбинаций, и нет привязки к каким-то настройкам. Впрочем позже можно будет легко переставить на настройки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:51:57 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
О чем спор епта? ТС просто пока не разобрался чем ему поможет Ioc, как только он это сделает, все вопросы отпадут. Будь то спринг джус и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:57:04 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Смотри, account helper скорее всего нужен как часть какого нибудь TransactionHelper. TransactionHelper тоже будет существовать в трех ипостасях: transactionHelperForWeb, transactionHelperForCron, accountHelperForMobile? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 17:57:39 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪТаким образом проведен рефакторинг и мы написали свой google guice, с чем всех и поздравляю (правда куча вопросов осталась за бортом, например scope создаваемых объектов, и как эту конфигурацию частично переиспользовать в тестах, заменив во всех созданных дао один коннект другим. но в конце концов пофиг - первый блин комом). пора определиться, либо мы в принципе против ioc, либо нам конкретно спринг не нравится. Вот Петру например конкретно спринг не нравится, он на него как красная тряпка действует, даже сильней чем hibernate. в остальном это чисто дело вкуса - вот я когда-то с леонидом спорил, ему описание интерфейса в ява коде нравится, а я предпочитаю xml/html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:01:07 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
В больших проектах спринг-конфигурация ещё позволяет создать отдельный тип должности и область ответственности, кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:03:25 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ещё один плюс - библиотеки. Когда нужно предоставить конфигурируемую библиотеку, её конфигурацию удобно сделать на спринге, чтоб пользователь библиотеки не занимался декомпиляцияй и бранчеванием для добавления копеечных фич. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:06:30 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪСмотри, account helper скорее всего нужен как часть какого нибудь TransactionHelper. TransactionHelper тоже будет существовать в трех ипостасях: transactionHelperForWeb, transactionHelperForCron, accountHelperForMobile? ты сейчас искусственно пытаешься усложнить задачу выдуманного примера, не озвучив финальных требований к архитектуре. без этого сложно сказать что-то определенно. Так чисто абстрактно - да, нам понадобится столько TransactionHelper, сколько нужно отличных поведений. А может при разумной постановке задачи AccountHelper является ненужной сущностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:10:05 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Лагманеё конфигурацию удобно сделать на спринге, чтоб пользователь библиотеки не занимался декомпиляцияй и бранчеванием для добавления копеечных фич.опять же таки, а у кого-то несварение желудка на почве xml. ему может Multibinder больше по душе ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:12:07 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
и мы написали свой google guice Мы ничего не написали - ноль строчек инфраструктурного кода, не относящегося к приложению. scope создаваемых объектов Есть два скоупа - реквест и аппликейшен, создаешь под каждый свой класс, в конструктор первого передаешь второй. как эту конфигурацию частично переиспользовать в тестах, заменив во всех созданных дао один коннект другим А как это делается в спринге? Уверен, что неудобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:16:52 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪДоказательство что спринг не нужен: 1)Берете свой application.xml 2)Объявляете класс с названием Application.java. Для каждого бина в application.xml создаете одноименное поле в этом классе и инициализируете его вызовом конструктора с теми же параметрами как в application.xml 3)Другие классы не меняются. 4)Удаляете спринг из проекта. Таким образом проведен рефакторинг, который доказывает ненужность спринга. В целом - да. Для проекта на пару дней работы именно так и делаю. Spring не единственный IoC и, возможно, как IoC, не самый-самый. А вот на большом проекте, куда без всех его плюшек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:20:00 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaЛагманеё конфигурацию удобно сделать на спринге, чтоб пользователь библиотеки не занимался декомпиляцияй и бранчеванием для добавления копеечных фич.опять же таки, а у кого-то несварение желудка на почве xml. ему может Multibinder больше по душе ;) Мне вот тоже guice по душе. Спринг в последние несколько лет првератился в god-framework. Все непрозрачно, размазано, куча хлама в класспасе, дебажить спринг вообще капец. И вопрос привычки тоже игрет роль. Вот скажи, у тебя был реально крупный проект на guice? Меня тоже сначало ломало, но теперьмне спринг кажется адом. Ну я про случай, когда нужен именно ioc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:20:15 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
ты сейчас искусственно пытаешься усложнить задачу выдуманного примера, не озвучив финальных требований к архитектуре. А кто написал этот пост, не ты ли: в этом примере прекрасно все: и статический метод трансфера средств, делающий невозможным существование более одной реализации, и статический же способ оповещения, так же не дающий никакой возможности в другом месте посылать например вместо мыла смс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 18:21:01 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪМы ничего не написали - ноль строчек инфраструктурного кода, не относящегося к приложению. класс application (если я правильно понял идею) является искусственным образованием, хранящим ссылки на все необходимые экземпляры классов. Йуный джавистЪЕсть два скоупа - реквест и аппликейшен , создаешь под каждый свой класс, в конструктор первого передаешь второй. да, расширяем велосипед. Йуный джавистЪкак эту конфигурацию частично переиспользовать в тестах, заменив во всех созданных дао один коннект другим А как это делается в спринге? как-то так Код: xml 1. 2. 3. 4. 5. 6. 7. Код: xml 1. 2. 3. 4. Код: xml 1. 2. 3. 4. Йуный джавистЪУверен, что неудобнее. ясный пончик Йуный джавистЪты сейчас искусственно пытаешься усложнить задачу выдуманного примера, не озвучив финальных требований к архитектуре. А кто написал этот пост, не ты ли: пример же твой. сначала ты его выдаешь нагора, потом говоришь, что он условный. я на него даю условное решение. после этого ты заявляешь, что у нас какой-то transferhelper есть, я прошу озвучить абстрактную постановку задачи. что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 20:18:48 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
забыл никСпринг в последние несколько лет првератился в god-framework мне так не показалось. он безусловно умеет много чего. но оно все лежит в своих либах, имеет свою доку, и если мне не надо, никак не мешает. например spring mvc для меня многие годы просто не существовал. забыл ник дебажить спринг вообще капец. почему? забыл никВот скажи, у тебя был реально крупный проект на guice? отвлекаясь от понятия "реальной крупности"...нет. юзал только на андроиде, ну и tapestry-iоc (на него сильно похож), впрочем tapestry поддерживает spring-ioc. забыл ник Меня тоже сначало ломало, но теперьмне спринг кажется адом. Ну я про случай, когда нужен именно ioc лично я не сложил окончательного мнения. в целом это те же яйца только в профиль - вместо xml модули. вот что я действительно не люблю, так это раскидывать по коду аннотации. xml он всегда сбоку, сегодня есть, завтра нет. а вот аннотации, они гвоздями прибиты к классам. ну и поддержка IDE для спринга, подозреваю, сильно лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 20:30:37 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaВ 90% случаев вообще нет никаких тестов. Это понятно - если проект активно развивается, то нет времени писать тесты, все фигачат чтобы как можно скорее выдать новую версию. бывает. лично я тоже часто дописываю тесты уже потом, когда есть время, или наступил в каком-то месте на грабли. Если честно, я уже перестал даже считать, сколько раз они меня выручали. а есть пару мест, в которых без тестов вообще нереально проверить правильность работы. оно понятно, что обстоятельства часто сильнее нас. просто некоторые как-то пытаются с этим бороться, а другие прячутся за "у нас не было времени". а чаще всего просто лень.[/quot] +1 Я тут как-то раз потратил 6 часов на написание теста (отвлекаясь естественно). Пока писал, долго думал по поводу эффективности модульного тестирования, его применимости и прочего. Но когда нашел 2 не найденных бага в протестированном тестировщиками коде - так думать перестал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:06:30 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияТо вот все эти 2 недели в мозгу бьется только одна мысль "нахрена нужен IoC в спринге" ? IoC позволяет делать код, удовлетворяющий следующим принципам (по SOLID): 1. Поддерживания принципа Open/closed principle; 2. Поддержания принципа Interface segregation principle; 3. Поддержания принципе Dependency inversion principle (ну, точнее он это и есть). Собственно, поняв эти принципы вы сможете понять прелесть IoC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:13:52 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
как-то так Мой вариант - по аналогии с DAO.xml создаете DAO.java. Код: sql 1. 2. 3. 4. 5. Затем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:45:19 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
На всякий случай уточню тело метода makeDao Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:48:39 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Последний фикс Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:53:52 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
да пофиг, идея понятна. ты делаешь тоже самое, только в коде. и приблизительно описываешь идею guice - там тоже типа Application (AbstractModule). т.е. фактически изобретаешь велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 21:58:57 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaтипа Application (AbstractModule) не совсем конечно (вернее совсем не), но имеется в виду, что конфигурация зависимостей тоже происходит в коде модуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 22:02:52 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Напомните мне, почему тащить в статики контекстно-зависимые вещи - плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 22:33:55 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, 1. Прочесть Вольный перевод статьи Мартина Фаулера "Inversion of Control Containers and the Dependency Injection pattern" или оригинал(там же есть на него ссылка). Еще: Нил Форд Архитектура приложения описывает основные крупные части, составляющие приложение. Например, в мире Java архитектура приложения описывает две вещи: комбинацию программных инфраструктур, используемую для создания конкретного приложения — т.н. архитектуры уровня инфраструктур — и более традиционное логическое разделение обязанностей, для которого я оставлю наименование архитектура приложения. Выделение архитектуры инфраструктур как отдельной сущности имеет смысл потому, что большинство практикующих специалистов по объектно-ориентированным языкам пришли к выводу, что отдельные классы как механизм повторного использования кода неэффективны. (Когда в последний раз вы загружали из Интернета для использования в проекте один-единственный класс?) Единица повторного использования в современных объектно-ориентированных языках — это библиотека или программная инфраструктура. При запуске нового проекта на языке с мощным набором программных инфраструктур, таком как язык Java, одной из первых архитектурных проблем является архитектура приложения на уровне инфраструктуры. Этот стиль повторного использования настолько глубоко укоренился в мире Java, что уже пора говорить о Java не как об объектно-ориентированном языке, а как о инфраструктурно-ориентированном . Во многих отношениях, архитектура уровня программной инфраструктуры представляет физическую структуру, описываемую конкретными строительными блоками. Эволюционирующая архитектура и стихийное проектирование: Исследование архитектуры и проектирования 2. Уяснить разницу между библиотекой и фреймворком. Суть этой разницы проста: когда мы используем нечто чужое "внутри" своего кода - это библиотека. когда свое вписываем "внутрь" чужого - это фреймворк. Например Swing - это библиотека. А NetBeans RCP или Eclipse RCP - фреймворк. Задуматься - почему появились фреймворки 3. Поднатужится и представить разработку в которой учавствуют более 3ех человек, на разных континентах, при этом уже к середине проекта более 50% программистов будут новыми. Прикинуть способы уменьшения транскационных издержек при разработке, оптимизации бизнес-процессов в такой разработке. "3 года одиноко программирую" - совсем другой опыт. На основе его - сложно показать проблемы возникающие при разработке, и соответственно - подходы которые применяются для их устранения. В частности - применение IoC (DI) фреймворков-контейнеров. Знаю это по себе - как сложно молодым, начинающим программистам это объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 11:26:55 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
SkyNIN2. Уяснить разницу между библиотекой и фреймворком. Суть этой разницы проста: когда мы используем нечто чужое "внутри" своего кода - это библиотека. когда свое вписываем "внутрь" чужого - это фреймворк. Например Swing - это библиотека. А NetBeans RCP или Eclipse RCP - фреймворк. Задуматься - почему появились фреймворки Ничто не мешает использовать фреймворк в роли библиотеки ))) К примеру Equinox можно встроить в обычное EE приложение написанное на спринге. Или наоборот спринг встроить в Equinox в качестве конфигуратора бинов ну или ради того-же спринг-секъюрити... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 15:59:50 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
bajork, bajorkНичто не мешает использовать фреймворк в роли библиотеки идеология фреймворка мешает. Он обязывает использовать его некими правильными способами. Использовать неправильно, неканонически можно, только тогда придется немножко попотеть, нагородить кучу прослоек и просто кода. а с какой целью? bajorkК примеру Equinox можно встроить в обычное EE приложение написанное на спринге. вообще-то к спрингу есть уже решение - Spring DM bajorkИли наоборот спринг встроить в Equinox в качестве конфигуратора бинов ну или ради того-же спринг-секъюрити... Только писать и конфигурировать бины нужно будет - по спринговски. Какая разница что вокруг фреймворка - если писать придется все равно "внутри" него? Куда конкретный IoC контейнер не встраивай - управлять жизненным циклом объекта все равно будет - он. То есть - я не понял с чем Вы не согласны? Я не зря п2. начал фразой - Уяснить разницу между библиотекой и фреймворком. Ваши контр-примеры толи необдуманы, толи не уяснили :) Второе - распространенное явление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 16:46:48 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
SkyNIN2. Уяснить разницу между библиотекой и фреймворком. Суть этой разницы проста: когда мы используем нечто чужое "внутри" своего кода - это библиотека. когда свое вписываем "внутрь" чужого - это фреймворк. Например Swing - это библиотека. А NetBeans RCP или Eclipse RCP - фреймворк. Задуматься - почему появились фреймворки Я не совсем только понял, к чему это? Какая разница как и что называется? Да хоть горшком назовем спринг, горшком он от этого не станет и кашу в нем не сваришь. Используются вещи все равно согласно документации, если надо встроить предмет в свой проект, то встраиваешь, а надо свой проект встроить в предмет то поступаешь соответственно... Ну появились фреймворки и что с того? Мне лично как-то фиолетово "фреймворк" спринг или "библиотека"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 19:46:51 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
т.е. фактически изобретаешь велосипед Я считаю, что велосипед - это как раз juice или спринг. Подумайте, как ваш код будет выглядеть через 10 лет. Всякий xml и IoC окончательно превратится в говнолегаси (это неизбежно. Условный фаулер не может по 20 лет подряд продавать книги и тренинги по xml и IoC - раз в 5-10 лет приходится выдумывать новую серебряную пулю). А простой, понятный, прямолинейный код - это классика, которая всегда будет актуальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 20:23:05 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, Йуный джавистЪА простой, понятный, прямолинейный код - это классика, которая всегда будет актуальна. Покажите эту классику. Простого, прямолинейного кода давно уж нигде не встретишь, кроме учебников. Студенты даже в курсачах наворачивают. Йуный джавистЪПодумайте, как ваш код будет выглядеть через 10 лет. 19 лет в проф программировании. Начинал с Си. Но судить о 10ти годах от сего момента не берусь. Даже в бизнесе горизонт планирования до 5ти лет в лучшем случае. Хотя там не код пишут, а закапывают миллиарды в заводы и прочие долгосрочные проекты. А вот как герои выбрасывают лисапеды да, наблюдаю все эти 19 лет :) Йуный джавистЪЯ считаю, что велосипед - это как раз juice или спринг. Дело хозяйское - считаете так - НЕ используйте, делов то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 20:57:42 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, Ищущий ЗнанияКакая разница как и что называется? Да хоть горшком назовем спринг, горшком он от этого не станет и кашу в нем не сваришь. Всегда меня забавляет вот что - вы кто такой? Какой уровень ответственности у вас в проекте? Какого размера, сложности проект? Второе - вы пришли с вопросом, почему мир вот так устроен, или к вам пришли за советом, поясни о мудрый и великий? Так вот если вы программировали чего-то там в одиночку или вдвоем-втроем, "в подвале", вдали от мейнстрима, да еще пришли с недоумением новичка - а чего оно и к чему - то это у вас проблемы, а не у того кто вам отвечает. Повторю и вам - не хочется пользовать спринг - да не пользуйте! Пишите все сами и как считаете нужным! И все, и нет никаких проблем. Но если вы хотите понять почему другие используют, то засуньте вначале свое мнение туда где вы его взяли. И потрудитесь "молча" понять что вам рассказывают. Уже потому что ваше мнение - на* никому не нужно, бестолково как мнение того прогремевшего на весь рунет автора антивируса "Иммунитет". Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2013, 21:04:13 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
SkyNINИ потрудитесь "молча" понять что вам рассказывают. Уже потому что ваше мнение - на* никому не нужно ээээээ как круто обсуждение пошло)). Аффтар ничего тебе не должен. Максимум что он должен форуму, это - не переходить на личности и быть не хамом. Всё)). А так, можно сказать, что и твоё мнение на**. Мы же в публичной бане). Тут пагонов нету)). По существу своё imho скажу ниже) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 09:53:42 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Добрый день, Ищущий Знания! > ну будет вместо > MyClass mc = new MyClass(); > вот так > @autowire > MyClass mc; > Что изменится-то? или зависимость от MyClass куда-то мифическим образом > денется? 1. Инъектируется не класс, а интерфейс. А тот, кто делает инъекцию- даже не в курсе, кто реализует этот интерфейм. 2. Если у нас всё стейтлесс, то будет не new MyClass(), а MyClass.getInstance() т.к. в spring'е по обному объекту вроде как создаётся. В JavaEE будет получение объекта из пула. 3. Если у нас всё сложнее, и есть смешение классов разных типов (staless, stafull) то тут ещё сложнее сделать всё самому. > Все говорят о модульности спринг приложений... > Если у меня приложение модульное, разбито на отдельные классы и т.д., то > спринг сделает его еще модульнее? Да. Т.к. зависящий не знает класса, реализующего интерфейс. > В общем люди добрые, приведите пожалуйста реальный пример из жизни, где > использование спринга действительно дает какие-то бенефиты. Вопрос масштаба. Но 10 бинах не заметишь. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 10:02:05 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
SkyNIN, Я утрирую, и преувеличиваю, но суть в том: - программист осознанно не любит использовать фреймворки в пику библиотек. И это есть правильно. Т.к. фреймворки это продукт программиста на выходе. - если использовать фреймворк на 100 процентов. то мы получаем 1С. А вы в курсе как их зовут - конфигураторы. - повальное увлечение XML скоро пройдёт. Скоро - в кавычках. Но я, лично, аннотации в коде люблю больше . Эо не ГУИ-разметка чтобы выносить лайоуты и цвета в отдельные файлы. - СПРИНГ - один Бог. И это плохо. Отрадно, что тут упоминали про ДРУГИЕ реализации инжекции-декларативно или метапрограммирование\конфигурирование. - уровень сложности кода на Java возрастает. Именно поэтому такое большое значение придаётся тестированию (основной довод за спринг). Т.е. причина в сложности кода, который спринг помогает тестить (каламбур). ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 10:02:28 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraВопрос масштаба. Но 10 бинах не заметишь. +1 Вот! Именно это очень интересный вопрос. Т.к. уловить ту грань, где спринг-подход нужен, очень сложно. Т.е. имхо надо писать и с ним, и без него. А весь интернет завален примерами ни к селу ни к городу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 10:06:18 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123А весь интернет завален примерами ни к селу ни к городу). Spring Framework, помимо DI, дает еще много чего полезного и интересного (управление транзакциями, например). А переплата за его использованием (другими словами - сложность), минимальна. Поэтому часто бывает удобно подключить его и к маленьким проектам. Плюс, не забываем, что примеры показывают один аспект использования библиотеки, поэтому часто части сами по себе примеры не показывают КОГДА использовать Spring, а КАК его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 10:38:01 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Leonidvа КАК его использовать. конечно, т.к. "Дозу" проще распространять примерами Как её приготовить. А потом уже и вопросов Зачем - не появится))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 10:56:12 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Таки это холивар против реализации IoC в спринге или в целом против IoC`а?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:13:47 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
ОзверинТаки это холивар против реализации IoC в спринге или в целом против IoC`а?:) А если бы был разговор про MVC, то SpringMVC бы задели? ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:22:50 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
SkyNINНо если вы хотите понять почему другие используют, то засуньте вначале свое мнение туда где вы его взяли. И потрудитесь "молча" понять что вам рассказывают. Уже потому что ваше мнение - на* никому не нужно, бестолково как мнение того прогремевшего на весь рунет автора антивируса "Иммунитет". Удачи. Дятел, потрудись зазусунуть себе свое собственное мнение... ну ты сам знаешь куда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:23:06 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123ОзверинТаки это холивар против реализации IoC в спринге или в целом против IoC`а?:) А если бы был разговор про MVC, то SpringMVC бы задели? ))))) Нет..а надо бы?О_О ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:24:56 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Озверин, угу. Его пора в Commons библиотеку. Или им давно пора сделать своё IDE-платформу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:27:12 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, аспекта 2, как для меня: 1) Снижение связности, что а) позволяет проще тестировать б) использовать разные реализации одного интерфеса(даже, неизвестные вам реализации, допустим - плагины так проще писать) 2) Управление бинами как "перечнем" классов, т.е. отрефакторили вы несколько классов, сделали их stateless и вам вместо new MyClass() везде теперь надо писать MyClass.getInstance();. В случае со спрингом вы в одном xml пропишите это действие. Таких фишек именно в управлении конфигурацией(для того и сделано) достаточно Да и не спрингом единым с его DI ..можно же и guice использовать. А можно и другую реализацию IoC`а - ServiceLocator. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:42:13 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
ОзверинТаки это холивар против реализации IoC в спринге или в целом против IoC`а?:) Не, не против IoC, просто зацепился за него на примере спринга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:42:40 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Озверинт.е. отрефакторили вы несколько классов, сделали их stateless и вам вместо new MyClass() везде теперь надо писать MyClass.getInstance() А можно чуть подробнее про этот момент? Почему при stateless так изменится код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:49:03 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияОзверинт.е. отрефакторили вы несколько классов, сделали их stateless и вам вместо new MyClass() везде теперь надо писать MyClass.getInstance() А можно чуть подробнее про этот момент? Почему при stateless так изменится код? Я не раскрыл, для чего stateless - чтобы в многопоточной среде использовать.. И из этого уже вытекает, что создать надо 1 раз(а для чего еще делалось?) А в многопоточной среде безопасное создание - вообще довольно муторная вещь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 11:52:23 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Озверинчтобы в многопоточной среде использовать в общем среднем по госпиталю, - в десктоп клиентах принято - 1 поток на всё приложение и классы со сложным созданием и с сосотоянием - в вебе всё разбито на осколки без состояния. Процедуры БЛ-сервисы и пул этих бинов без состояний. На Java чистых десктопов всё меньше imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:13:18 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Добрый день, Озверин! > аспекта 2, как для меня: > 1) Снижение связности, что > а) позволяет проще тестировать > б) использовать разные реализации одного интерфеса(даже, неизвестные вам > реализации, допустим - плагины так проще писать) > 2) Управление бинами как "перечнем" классов, т.е. отрефакторили вы > несколько классов, сделали их stateless и вам вместо > new MyClass() везде теперь надо писать MyClass.getInstance();. В случае > со спрингом вы в одном xml пропишите это действие. А вот, кстати. Можно без спринга: 1. Писать в каждом классе метод getInstance который в stateless будет возвращать статическую переменную, а в statefull - new MyClass(). 2. Написать фабрику, закинуть её в статичную переменную приложения и дёргать оттуда реализацию. Заменил фабрику в одном месте (при инициализации приложения) - и готово. Далее допилить удобство и получить, по сути, тот же Spring :) Поэтому когда он становится хорошо знакомым, то многим проще всегда использовать его, т.к. костылики хоть и работают, по сути, так же, но их ещё писать надо, а знакомый spring - вот он. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:17:31 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Добрый день, Petro123! > в общем среднем по госпиталю, > - в десктоп клиентах принято - 1 поток на всё приложение и классы со > сложным созданием и с сосотоянием В яве? Очень плохое допущение. Боком выйдет. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:18:18 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GKS_Samara, потоки - "вообще довольно муторная вещь " (Озверин) )) в десктопе (2 звена) они не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:41:41 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
дополню..так в Java понятнее - в Толстом клиенте они не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:45:02 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123дополню..так в Java понятнее - в Толстом клиенте они не нужны. Как раз в толстом клиенте без SwingWorker-а никуда. Если standalone, без особого IO, то ещё можно обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:50:59 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123дополню..так в Java понятнее - в Толстом клиенте они не нужны. Как раз в толстом клиенте без SwingWorker-а никуда. Если standalone, без особого IO, то ещё можно обойтись. я не знаю что это такое). Но я хорошо знаю, что к примеру, поток реализующий модальное окно - совсем не к месту в прикладном программировании. А больше там потоки некуда засунуть. Стек процедур от ButtonClick до КнопкаСделалаСвоюРаботуИ_отжалась - конечен. И в потоках не нуждается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:56:05 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Добрый день, Petro123! > Стек процедур от ButtonClick до КнопкаСделалаСвоюРаботуИ_отжалась - > конечен. И в потоках не нуждается. Т.е. о фоновой работе приложения ты не слышал? Вот иногда хочется авторам pl/sql-developer'а за такой подход гвоздь в голову забить. Начал операцию потормознее- и всё, можно о работе в нём и не помышлять. Особенно бесит после eclipse. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 12:58:29 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GKS_Samara, OFF слышал. И хорошо знаю, что бесит в Eclipse от асинхронности. И что бесит в Developer от синхронности)). Фоновая работа - очень специфическая вещь. И так же как Спринг \ IoC не всем нужна. А некоторым - вредна. Есть Excell в нём можно писать текст. А есть Word в нём можно писать таблички. А вод - ВордоExcell - это Г. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:02:50 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
берём условный пример UML связей классов в условном проекте. Давайте Засунем сюда асинхронность перевода счетов и отсутствие состояния в классах. .. Я не думаю, что эта диаграмма менее понятная чем простынь связей в XML спринга IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:10:42 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123SkyNIN, - программист осознанно не любит использовать фреймворки в пику библиотек. потому что ему лениво учить что-то новое Petro123 И это есть правильно что может быть правильного в стремлении наступить на все грабли лично? большинство фреймворков написано людьми, превосходящими подавляющую массу программистов и по опыту и по знаниям. это все равно как игнорировать военный устав, который, как известно, написан кровью. если фреймворк 100% отвечает целям, нужно использовать его, а не городить велосипеды. Petro123- если использовать фреймворк на 100 процентов. то мы получаем 1С. А вы в курсе как их зовут - конфигураторы. благодаря тебе, мы читаем про конфигурастов в каждом втором твоем посте. это бред собачий. Петро, это БРЕД. это все равно как сказать, что повар, готовящий на электроплите вместо костра - не повар. Petro123Но я, лично, аннотации в коде люблю больше . Эо не ГУИ-разметка чтобы выносить лайоуты и цвета в отдельные файлы. это тоже весьма спорное утверждение. Если у меня есть POJO класс, который мне надо сохранить в базу, а еще уметь сериализовать в xml, то я его должен обвешать аннотациями, как новогоднюю елку. а потом, в один прекрасный день, мне этот объект понадобится в андроиде, и нахрена мне все эти зависимости? Petro123- СПРИНГ - один Бог. И это плохо. опять чепуха. спринг - это сборник библиотек и технологий. практически у каждой из них есть аналоги, у многих не один. Petro123- уровень сложности кода на Java возрастает не уровень сложности кода на Java, а уровень сложности приложений. чувствуешь разницу? даже среднестатистическая лабораторка достаточно сложна для того, чтобы легче было написать тесты, а не вводить ручками различные варианты данных и сверять результат. Жаль мне об этом в универе никто не потрудился рассказать. Petro123Именно поэтому такое большое значение придаётся тестированию большое значение придаётся тестированию, потому что оно имеет большое значение. понимаю, это сложно понять рeбятам всю жизнь писавшим код в пределах OnButton1Click Petro123(основной довод за спринг). ты опять ничего не понял. для облегчения тестирования нужна слабая связность тестируемых компонент. спринг тут совершенно сбоку. Petro123Т.е. причина в сложности кода, который спринг помогает тестить (каламбур). тут каламбуром и не пахнет. телом - бел, калом - бур. Вот это был бы каламбур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:12:54 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123дополню..так в Java понятнее - в Толстом клиенте они не нужны. Как раз в толстом клиенте без SwingWorker-а никуда. да он пришел из тех мест, где 99% контингента вставляют Application.ProcessMessages в цикл, чтоб окно не замерзало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:17:22 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Есть Excell в нём можно писать текст. А есть Word в нём можно писать таблички. А вод - ВордоExcell - это Г. а в одно можно вставить другое, если правильна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:29:06 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaда он пришел из тех мест, где 99% контингента вставляют Application.ProcessMessages в цикл, чтоб окно не замерзало. детский сад)). У вас проблемы с замерзанием? С циклами? )) Тогда мы идём к вам. А ещё, там медведи по улицам ходят. И люди детей едят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:41:23 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
sanyock2, можно. Главное, когда понядобятся формулы - не вставлять OLE Excell в ячейки Ворд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:42:59 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpasha, я в курсе, что слабую связность легче тестировать. Приведи пример своего XML конфига связности. Аналогично рисунку вверху. И не пиши столько много эмоций)) Это не ПТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:47:53 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123У вас проблемы с замерзанием? С циклами? )) Тогда мы идём к вам. Petro, избавь меня от рекламных слоганов. Petro123А ещё, там медведи по улицам ходят. И люди детей едят. я "там" был, медведей видел сам. так что не надо. к тому же мы регулярно лицезреем поток твоего сознания, так что уж мнение как-нибудь сложить можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:48:22 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Приведи пример своего XML конфига связности. петро, что такое "xml конфиг связности"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:51:57 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaPetro, избавь меня от рекламных слоганов. ну, у тебя "окно замрезает" - приведи пример твоих циклов в твоей программе. - пример, спринг IoC для UML выше по ТЗ. Просто аналог по сложности. (больше 10 бинов))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 13:57:31 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123ну, у тебя "окно замрезает" где я сказал, что у меня окно замерзает? Petro123 - приведи пример твоих циклов в твоей программе. у меня их нету Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. Petro123- пример, спринг IoC для UML выше по ТЗ. с целью чего я должен здесь запостить три экранных листа xml в ответ на твою картинку? ты уже запостил код для UML выше по ТЗ? Напрягись, попытайся собрать мысли в кулак и направить их в конструктивное русло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 14:47:17 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpasha, ты не оффтопь. Для это - ПТ есть. - я спросил что у тебя в циклах, что окно замерзает? Чтобы я знал, зачем с этим бороться. Может там: "Форматирую C: - ничего не делайте - подождите" Или "Перевожу деньги - ждите...." А ты сразу код вывалил)). "Иди мальчик - программируй. Раз на земле работаешь" - про где, обозначать связи и инжекцию - в XML или аннотациях. Ты же сам и говорил - на любителя. )). Эмоциональный ты наш)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 15:56:34 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123chpasha, ты не оффтопь. Для это - ПТ есть. Это не твоя прерогатива, решать что оффтоп, а что нет. Petro123- я спросил что у тебя в циклах, что окно замерзает? у меня ничего Petro123Чтобы я знал, зачем с этим бороться. не парься, у тебя все идеально. Petro123Может там: "Форматирую C: - ничего не делайте - подождите" Или "Перевожу деньги - ждите...." какая разница? что бы там ни делалось, gui не должен умирать Petro123А ты сразу код вывалил)). ну ты же у нас любитель кода, и вчено требуешь примеров. заказывали? получите и распишитесь Petro123- про где, обозначать связи и инжекцию - в XML или аннотациях. Ты же сам и говорил - на любителя. я и не отказываюсь. но я также говорил о том, что аннотациями нужно пользоваться аккуратно. они удобны, но жестко привязывают к коду конкретную реализацию и навязывают определенные зависимости. и если например в веб-приложении пару лишних "мертвых" либ возможо не проблема, то например в том же андроиде это добро уже не уместно, а часто даже не скомпилируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 16:19:27 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaну ты же у нас любитель кода, и вчено требуешь примеров. заказывали? получите и распишитесь если ты не понял, то я не люблю бессмыслненный код от кодировщика. Додумывать за тебя с чем ты там бесконечно борешься - уволь. Наверно, не знаешь фреймворк по ГУИ...где окна мерзнут. ((с) - ты) авторя и не отказываюсь. но я также говорил о том, вот и замечательно. Не будь Дон Кихотом. Говори про свой XML. Я я про свои аннотации. Мне обозревать код легче чем твои XML. Об этом ещё толковый VoDa говорил.))...про простыни XML... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 16:41:31 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Додумывать за тебя с чем ты там бесконечно борешься - уволь. можно цитату на то место, где я с чем-то борюсь? Petro123Наверно, не знаешь фреймворк по ГУИ...где окна мерзнут. ((с) - ты) не смог понять смысла предложения Petro123Не будь Дон Кихотом. не надо мне указывать Petro123Говори про свой XML. Я я про свои аннотации. Мне обозревать код легче чем твои XML. Об этом ещё толковый VoDa говорил.))...про простыни XML... слышал пословицу про метание бисера перед свиньями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 16:55:14 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, Вспомним азы, дуальность процесса программирования (классика): Код: pascal 1. Переформулируем в нашу систему координат: Код: pascal 1. 2. 3. 4. Итак, если уж писать сложный, кривой и непонятный говнокод, то сделать это один раз и максимально универсально! А что самое универсальное в нашем мире? Правильно! Интерпретатор собственного проблемно-ориентированного языка! ... так появилась 1С. Поскольку алгоритмы 1С ну очень "проблемно-ориентированы" и где-то странны и туповаты, то и данные должны быть не простые, а тоже проблемно-ориентированные немного тупые и странные. Это крайняя точка в нашей стсеме координат Ну а те программисты, кто-не хотел совсем заумных алгоритмов и данных остановились на спринге, так чтобы данные были максимально свободны от предположений, а алгоритмы максимально прозрачны - это где-то посередине положительной четверти плоскости. Наконец, каждый желающий может сваять свой фреймворк с соответствующим балансом сочетания данных и алгоритмов. Что я кстати и сделал - ни разу не пожалел, получил легко конфигурируемую прогу и настройку ее поведения из xml. По своему опыту могу сказать, что это реально круто, и ускоряет/повышает производительность/упрощает реализацию/.../.../... в разы. Например, все мы прекрасно знаем,что такое грид с данными. Грид надо сортировать, фильтровать, группировать, настраивать размер и положение колонок, удалять, вставлять и редактировать записи, еще печатать и экспортировать. Теперь пишем мега-форму которая это все умеет, на вход ей подаем текст запроса к БД, список колонок, настройки внешнего вида (все эа информация хранится в xml) - результат: форма в 200-300 колонок с 10-ю таблицами становится функциональной за час. Вобщем xml-шаблонизация и стандартизация алгоритмов инициализации - это наше все, тот кто это не не использует обречен писать унылый говнокод до скончания веков. Собственно, в delphi замечательно используют эту идею разделяя код на dfm и pas, выстраивая vcl на этой платформе. Сравните с той же Java Swing там все ручками надо писать: - пусть окно будет размером x на y; - создать окно; - пусть компонент будет размером a на bи текстом helloWord; - создать компонент для текстового ввода; - поместить компонент на форму и т.д. Потому и изобрели свой аналог разделения данных визуализации и инстанцирования форм то есть спринг. Но данные не обязательно должны быть только визуальными, а алгоритмы только порождать классы не правда ли? Возможно данные представляют собой конфигурацию системы, а алгоритмы реализуют виртуальную машину. Для справки, в Andoid SDK не существует вообще понятия инстанцирования(создания) визуальных компонентов из Java кода. Вместо этого используется main.xml в котором на языке разметки прописывается весь пользовательский интерфейс и его поведение и свойства. А код пишем в предположении что все компоненты main.xml успешно созданы и инициализированы. Так что мир катится к окончательному разделению данных и алгоритмов их обработки. Чего и Вам желаю осознать и применить на практике как можно раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 17:01:09 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
eny, ты немного приплёл VIEW и ГУИ (грид) к теме. Тут говорят об связях в классах. Т.е. отделения связей в классах (IoC) от самой БЛ (кода использования). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 17:11:58 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
enyДля справки, в Andoid SDK не существует вообще понятия инстанцирования(создания) визуальных компонентов из Java кода как это? . достаточно например посмотреть на реализацию ListFragment из support library Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. но в целом я с тобой согласен, лично мне (лично мне) гораздо удобней описывать интерфейс декларативно. тот же ListFragment в android-core реализован разметкой. для тех, кто не в теме, оба кода реализуют одно и то же 1:1. судите сами, что удобней Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 17:12:09 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123, я приплел формулу данные+алгоритмы; Не принимая этой парадигмы, мешая все в кашу разумеется никакой разницы между спрингом и кодированием всего и сразу нет. Каша так каша, здесь классы создаем, тут все вызываем, а тут все обрабатываем, потом опять создаем, а фигли так не писать!? Зато: - отвечаем за каждую мелочь; - точно знаем где замутим утечку памяти, где пару багов (а если еще не знаем то найдем!); - потом все это героически правим, рефакторим, добиваемся максимальной производительности; и - каждый день уходим в десять вечера с работы с радостным осознанием, что зае... по самые гланды и завтра этим же займемся... экстрим вопщем ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 17:27:53 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
eny, я не против разделения на слои даже в коде. Ты привёл Delphi. Там никто в dfm\xml не смотрит. С какого фига я должен смотреть в XML от спринга? Пусть сделают СпрингИде а-ля Дельфи. Я буду прямо мышкой связи устанавливать)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 17:51:51 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123eny, я не против разделения на слои даже в коде. Ты привёл Delphi. Там никто в dfm\xml не смотрит. С какого фига я должен смотреть в XML от спринга? Пусть сделают СпрингИде а-ля Дельфи. Я буду прямо мышкой связи устанавливать)). Да какая разница, идея одна и та же... Был вопрос про спринг, круто или не круто нужно или не нужно... однозначно нужно, а если не нравится стандартный спринг, так можно свой собственный наваять и если все грамотно сделать затраты окупятся. Спринг, как я уже говорил, частный случай разделения данных и реализации. Вариантов разделения и применения может быть великое множество. К сожалению, многие программисты могут часами спорить и рассуждать о паттернах, языках программирования, синтаксисе все это преходящие внешние проявления индустрии программирования. И никто не задумывается о БАЗОВЫХ ПОНЯТИЯХ программирования как целенаправленной деятельности, в итоге рано или поздно возникает когнитивный диссонанс и холивары. Когда-то я холиварил за Delphi против C ;) потом за JAva, потом плотно подсел на C++, затем был C#, потом PHP, потом окунулся в C потом опять в Delphi. Куча платформ, операционок, сфер применения и реализаций вывод - везде свои плюсы и минусы. Если не заниматься сразу архитектурой и проектированием не подходить к задаче с базовых позиций информатики - бардак крепчает неизбежно. Ни среды разработки, ни паттерны, ни синтаксический сахар не спасут от говнокода. Если не знал с самого начала, что и как писать, то в середине разработки поток сознания уже не остановить и становиться все хуже без надежд на улучшение. Вот как-то так побрюзжал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 18:14:01 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
enyДа какая разница, идея одна и та же... угу))). Коммунизм - идея прекрасная, только реализация подкачала)). Кстати, если ты на шарпе ваял, то там вроде XML (от MS) представления всего и вся поболее Java'ы будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 18:33:36 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123enyДа какая разница, идея одна и та же... угу))). Коммунизм - идея прекрасная, только реализация подкачала)). Кстати, если ты на шарпе ваял, то там вроде XML (от MS) представления всего и вся поболее Java'ы будет? Фик там! VS все мягко и не навязчиво в код сгребает и закрывает под плюсиком с соответствующим комментарием типа: "Данный код сгенерирован системой автоматически. Не править ибо бесполезно!" В xmle буквально пара параметров генерится, ну или если сам захочешь - можно нагенерить своих, из кода инициализации еснно... вобщем по здравомыслию с delphi ничто не сравнится, разве что Android... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 18:40:45 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
enyНе править ибо бесполезно! )) LOL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:01:03 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GKS_Samara> Стек процедур от ButtonClick до КнопкаСделалаСвоюРаботуИ_отжалась - > конечен. И в потоках не нуждается. Т.е. о фоновой работе приложения ты не слышал? Вот иногда хочется авторам pl/sql-developer'а за такой подход гвоздь в голову забить. Начал операцию потормознее- и всё, можно о работе в нём и не помышлять. Особенно бесит после eclipse. лучше бы тебя бесило когда спокойно делается то, что зависит от результата того, что закинуто в фон. Фоновая работа очень специфична. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:54:13 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123"Перевожу деньги - ждите...." нет же... зачем ждать пока выполнится один платеж со счета. Фоновый процесс - вот что нужно. Пока выполняется готовишь следующий, даже если по результатам первого он будет не нужен. Но зато в фоне. Про фон слышал? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 20:00:32 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Добрый день, iscrafm! > лучше бы тебя бесило когда спокойно делается то, что зависит от > результата того, что закинуто в фон. Не встречал. Эклипс хорошо это разруливает. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 08:49:47 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123, если вас так не устраивает xml, поставье ioc от guice - кодируйте, пишите простыни кода в коде, извиняюсь за каламбурс...только с агрессией своей к xml надо уже что-то делать же ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 09:15:09 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraНе встречал. Эклипс хорошо это разруливает. а что он разруливает? Там элементарные задачи линейного парсера-компилятора. Бизнес-логика бывает сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:27:26 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Озверин, ты ждёшь от топика восхваления вашего \ твоего Бога Спринг? Выложи 2 простыни - в аннотациях и в XML. Можно будет говорить. А так, что обсуждать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:34:53 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Озверин, ты ждёшь от топика восхваления вашего \ твоего Бога Спринг? Выложи 2 простыни - в аннотациях и в XML. Можно будет говорить. А так, что обсуждать? Почему вы решили, что я жду чьего-то восхваления? Я сказал, что каждый использует тот инструмент, который ему удобен. А вам персонально посоветовал инструмент, в котором все бинды для бинов прописывать можете непосредственно в коде, без xml конфигураций. p.s. Представляю, в какой эпилепсии вы находитесь при создании нового отчета под jasper report. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:39:38 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Озверин, я говорил ровно то же самое. Тут 5 процентов программистов используют не только спринг, а и другие средства (guice ). И это замечательно. Озверинp.s. Представляю, в какой эпилепсии вы находитесь при создании нового отчета под jasper report. ))) о да. Мне нравится технология отчётов у Access которую ты тоже знаешь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:46:56 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Озверин, я говорил ровно то же самое. Тут 5 процентов программистов используют не только спринг, а и другие средства (guice ). И это замечательно. Наверное, не спроста 95% программистов используют Spring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 19:31:48 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Leonidv, Когда используют такие доводы, это и есть религия). Ещё со времён "горячё поддерживаем и коллективно 100 проц. одобрям))". Зачем тему поднял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 19:40:04 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Почитал тут все. А с каких пор Spring стал частью JEE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 15:49:36 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
2devПочитал тут все. А с каких пор Spring стал частью JEE ? Spring идеологически альтернатива JEE технологиям. Поэтому его "образоно" причисляют к JEE программированию. Фактически, он, конечно же, не является реализацией JEE спецификаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 15:52:31 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz2devПочитал тут все. А с каких пор Spring стал частью JEE ? Spring идеологически альтернатива JEE технологиям. Поэтому его "образоно" причисляют к JEE программированию. Фактически, он, конечно же, не является реализацией JEE спецификаций. Хорошая статья на тему http://www.infoworld.com/d/application-development/can-tomee-save-java-ee-214901 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:01:43 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Leonidv, Когда используют такие доводы, это и есть религия). Это не довод. Это способ задуматься. Довод - "Ты должен использовать Spring, потому что его используют 95% всех программистов!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 23:14:15 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
LeonidvЭто не довод. Это способ задуматься для некоторых это принципиальный контраргумент, предлагаю дать этому явлению название синдром анти-лемминга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 15:27:19 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
балаболы. Хорош флеймить. У аффтара был вопрос Ищущий ЗнанияСмотрю кучу примеров в инете, походу у большинства "спринг головного мозга". Есть конкретика в виде ссылки, по сабжу - вперед. .... А то ведь и те конкретные примеры с кодом - замусорите болтовнёй. ПТ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 15:58:29 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123У аффтара был вопрос Ищущий ЗнанияСмотрю кучу примеров в инете, походу у большинства "спринг головного мозга". Есть конкретика в виде ссылки, по сабжу - вперед. включи свой мозг уже, какая может быть ссылка по вопросу "не понял в чем цимес, но они точно все дураки". Petro123А то ведь и те конкретные примеры с кодом ты затрахал уже со своими "примеры с кодом". тебе напомнить про Petro123если ты не понял, то я не люблю бессмыслненный код от кодировщика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 16:14:06 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpasha, кодировщиком работаешь? Аффтар сказал, что в инете нет ссылок на толковую статью. Дошло? Ты зачем тему поднял? У Лёни авитоминоз и весенне обострение. А у тебя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 16:18:38 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123chpasha, кодировщиком работаешь? да. кодирую от запоя, супружеской неверности и общего слабоумия. Petro123Аффтар сказал, что в инете нет ссылок на толковую статью. действительно, ни одного упоминания Petro123Ты зачем тему поднял? У Лёни авитоминоз и весенне обострение. А у тебя? у меня аллергия на оленей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 16:30:49 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpasha, Вот молодец). Работай дальше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 16:51:32 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
chpashaPetro123Аффтар сказал, что в инете нет ссылок на толковую статью. действительно, ни одного упоминания Ну что это за ссылки? Толку от них ноль, во первых английский для меня не родной и пространные объяснения читаются с трудом... Во вторых во всех статьях рассматриваются лажовые прмеры, оторванные от реальности в которых видно КАК применять спринг, но непонятно ЗАЧЕМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 21:17:46 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияВо вторых во всех статьях рассматриваются лажовые прмеры, оторванные от реальности в которых видно КАК применять спринг, но непонятно ЗАЧЕМ. Я уже вам писал. Для того, чтобы понять ЗАЧЕМ, вам нужны книги не по Spring, а по ОО-Архитектуре, ОО-Дизайну и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 00:06:21 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияНу что это за ссылки? Толку от них ноль, во первых английский для меня не родной и пространные объяснения читаются с трудом... ну извините Ищущий ЗнанияВо вторых во всех статьях рассматриваются лажовые прмеры, оторванные от реальности как-то так принято рассматривать вещи на простых примерах. предлагаешь объяснять ioc на примере движка бд? Ищущий Знания в которых видно КАК применять спринг, но непонятно ЗАЧЕМ. предполагается, что человек в курсе, что такое di. тогда для него не стоит вопрос, зачем di framework, для него стоит вопрос - какой брать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 00:06:59 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
предлагаешь объяснять ioc на примере движка бд? Я бы с удовольствием послушал такое объяснение. Но, к сожалению, ioc не применяется в движках субд. Наверное, причина в том что программисты движков субд - серые невежественные люди, и им следует еще многому научиться у программистов сайтов на яве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 02:09:28 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, Вы поймите: IoC - подход который позволяет снизить связанность компонентов ИС, что в свою очередь ведёт к более простому тестированию компонентов и легкому переиспользованию. Если вы не пишите тесты, если у вас нет разделение на test/dev/prod enviroment, мало самих компонентов ИС, вам не понятно зачем нужен шаблон Factory. То тогда и не стоит пытаться понять зачем нужен IoC и его реализации в виде Spring, EJB, Guice, picocontainer. Не нужно это вам всё, не парьтесь, живите спокойно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 09:58:55 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЯ бы с удовольствием послушал такое объяснение. а я нет. мне petclinic как-то ближе. Йуный джавистЪ Но, к сожалению, ioc не применяется в движках субд. да как жаль-то. Йуный джавистЪ Наверное, причина в том что наверное причина в том, что движок бд - это не магазин кошачьей еды, а магазин кошачьей еды - это не драйвер вэб-камеры. Йуный джавистЪ программисты движков субд - серые невежественные люди, и им следует еще многому научиться у программистов сайтов на яве.пилоты формулы один - серые невежественные люди, и им следует еще многому научиться у водителей автобусов. хорош писать херню, коллега. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 15:33:43 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GregTk, +1 Хороший пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 15:38:28 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Вы поймите: IoC - подход который позволяет снизить связанность компонентов ИС Я считаю, что всякое ООП употребленное не к месту и спринг в частности популярны потому, что дают ИЛЛЮЗИЮ архитектуры и проектирования. Авторы спринга как бы говорят: засунь половину своей программы в xml файл и она станет автоматически расширяемой сама по себе. Но волшебства не случается, программа как была нерасширяемой, так и осталась, но теперь теперь еще стала содержать xml-спагетти. Думать сложно, это отнимает массу усилий. Спринг дает иллюзию, что вы что-то обдумали и сделали полезное не затратив усилий, а просто механически напихав бинов в xml. Человек любит структуру, иначе он был бы обезьяной. Программисты любят xml, потому что синтаксическая структура xml - суррогат настоящей структуры, которая присуща хорошей программе. Также иллюзию структуры дает разбиение программы на миллион маленьких файликов, разложенных по ветвистой стуктуре папочек. Но на самом деле все это не приближает к решению проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 00:21:27 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, вам бы с автором темы прозу писать. художественную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 00:50:26 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
вам бы с автором темы прозу писать. художественную. А я пишу философский роман. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 01:13:11 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, Дело как раз в том, что чуваки из spring дают вам инструмент, а как вы его примените это уже ваша обязанность. Если у вас со spring получается xml-спаггети и архитектура никак не улучшилась, может тогда в консерватории, что то подправить нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 04:20:24 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Все, кто пишут про XML-спагетти однозначно показывают, что со Spring'ом не работали и за развитием его не следят. Давно уже можно все делать на аннотациях, а в последних версиях XML можно заменить специальными классами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:10:44 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪпопулярны потому, что дают ИЛЛЮЗИЮ архитектуры )) действительно философия). Правы на половину. - есть мейнстрим в появлении метапрограммирования. Т.е. программированием Над простым кодом. Раньше было В Delphi RTTI, в Java рефлексия - не прижилось. Или скажем так, редко применяется. Отчасти из за того что мозгов больше надо (заточенных на ветвистые классы). А вот мета программирование, есть в Пайтоне-питоне, появилось в Delphi ...Java.... Ведь, не важно как оно технически оформлено - XML\аннотация\двоичный_файл_сбоку. Нужно учесть, что в Java хозяин кода уже не программист, а контейнер. Тут свои законы (состояние...короткое время жизни стека...) и т.д. Это способствует конфигурированию, а не программированию классически. Вольно или невольно, но никто не будет писать десктоп и веб по разному (лень). МетаХХХХ (Аннотации\XML) - это другой ЯП. Он пытается завоевать рынок. На шарпе ведь, тоже, по _другому_ пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:39:01 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123, Всё хотел поинтерессоватся, а на каком стеке технологии ты пишешь? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 11:32:55 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
GregTk, OFF ну дак в профиле ссылка на сайт "с нуля" как чисто техническое решение без раскруток SEO и особых защит)) "Для того чтобы судить о качестве приготовленной яичницы - необязательно уметь нести яйца" (с) Именно в Java я недавно, поэтому _понемногу_ всё что интересно, JSP, JS, Хибер-ОРМ, SmartGWT, Андроид. IoC не заинтересовал, т.к. я знаю что это такое и какой продукт будет на вкус). PS. По работе на хлеб - Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 11:50:44 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Petro123Раньше было В Delphi RTTI, в Java рефлексия - не прижилось. Или скажем так, редко применяется. Ммм, ты задумайся, как работает палитра компонент и графический дизайнер в Delphi. По поводу рефликсии в Java - применяется в в каждом первом более или менее серьезном фреймворке. Другое дело, что ее использование вне фреймворков - часто признак плохого дизайна кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 12:14:35 |
|
||
|
Spring. Начало. Наверно будет холивар...
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪСпринг дает иллюзию, что вы что-то обдумали и сделали полезное не затратив усилий, а просто механически напихав бинов в xml. В том то и дело. Степень полезности определяет заказчик, затраченые усилия - исполнитель. Даже если субъективно использование спринга создает иллюзию, что усилий не затрачивается - все равно это хорошо -- не напрягаются мозги, не надо париться по этому поводу, можно заниматься другими более полезными вещами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 16:25:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2129690]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
78ms |
get topic data: |
19ms |
get forum data: |
4ms |
get page messages: |
231ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 653ms |

| 0 / 0 |
