![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
CaligoSpiritus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
Уже два года программирую на Java, но никаких "больших" проектов еще не делал. Решил, что уже пора. И вот, с сотрудником решили написать небольшую социальную сеть (по крайней мере, для начала - небольшую
![]() Технологии намереваемся использовать следующие: Spring Framework, Spring MVC, Hibernate для работы с БД, Velocity для темплейтинга. Однако, на счёт остальных компонентов пока сомневаемся. Для пользовательского (web-browser) решено использовать AJAX, но какой движок выбрать? В "Pro Spring" советуют DWR, а какие ещё есть варианты, какие преимущества? У сети будет тяжёлая фото-составляющая. Отсюда вопрос, как лучше хранить изображения - в файловой системе или в БД? (БД планируем использовать Oracle). |
|||
|
||||
Llucas |
|
|||
![]() J2EE Developer ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 29.11.2006 Где: Одесса Репутация: нет Всего: нет |
Ну все это хорошо и очень даже удобно использовать. Но вот DWR я бы не рекомендовал. Лучше просто использовать какую-нибудь javascript библиотеку (ExtJs, JQuery), где очень удобно делать AJAX-запросы. На мой взгляд это надежнее.
|
|||
|
||||
CaligoSpiritus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
На первый взгляд понравилась jQuery, но на сколько удобно её можно интегрировать со Spring MVC? Ведь там будут не просто AJAX запросы какого-то контента, вроде кусочка html или картинки, это будет запрос к слою сервисов. (Не уверен, на сколько это умный вопрос - с разработкой на JS ранее не сталкивался). В случае DWR всё понятно - вызываем функцию (на подобие RPC) она отрабатывает и возвращает результат, DWR занимается маршаллизацией этого действа.
|
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
а я бы не рекомендовал Hibernate. лучше юзать обычные JDBC запросы. Потому как при использовании Hibernate ваша соц.сеть упадёт при большом кол-ве online пользователей. Hibernate чаще всего применяют для админских целей (страниц).
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Не надо путать DWR и тот же ExtJS - это разные вещи.
DWR служит для удобного интерфейса JavaScript обхектов на Java - т.е. на серверную часть. А ExtJS - это чистый JavaScript. Так что они прекрасно совмещаются. У нас в проекте как раз такая связка работает. Да еще и JSF подмешана. На серверной стороне Spring, Hibernate. И вполне пристойно все получается. |
|||
|
||||
seth |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
не думаю что она куда то упадет именно из-за хибернейта, не вижу причин... ![]() а насчет самому писать запросы - так это много времени уйдет ;) а так посоветовал бы Flex как бэкэнд (ну или что то более экзотическое из РИА) а еще посоветовал бы юзать платформу facebook если хочется соц сеть ;) идея как для обучения в принципе сойдет но имхо можно придумать что то более интересное ![]() Это сообщение отредактировал(а) seth - 22.9.2008, 15:18 |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
[QUOTE=seth,22.9.2008, 15:16]
Писать самому долго??? О_о Не сказал бы. Всё зависит от вашего уровня знаний. Лан, это уже offtopic идёт... Это сообщение отредактировал(а) dEEp - 22.9.2008, 15:22 |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Были прецеденты? Каковы причины? Интересно очень, ибо сами в проекте расчитанном на большое количество пользователей используем JPA на базе Hibernate. Было бы круто узнать про грабли чтоб потом не напороться. ![]() |
|||
|
||||
seth |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
[QUOTE=dEEp,22.9.2008, 15:22]
тут дело не в уровне знаний а в технологии - SQL хороший язык только не для всего ;) а для работы с объектами (да еще и имеющих сложные иерархии наследования) и связями между ними уж больно долго будут писатся все необходимые запросы из-за их большого колличества и сложности... когда на хибернейте вобщемто генерация кода и мэппингов решит много проблем ;) |
||||
|
|||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
используя Hibernate у вас нет возможности проконтролировать и изменить сценарий выполнения запроса. это ограничение как раз таки приводит к падению производительности на БД сервере. возможность влиять на план выполнения запроса является фундаментальной стартегией тюнинга запросов в оракле. ссылка для автора топика, читать "Подход с использованием принципа черного ящика": http://www.citforum.ru/database/oracle/kyte/ CaligoSpiritus, поскольку ты выбрал именно оракл, то либо ты следуешь советам Т. Кайта, либо просто моменяй СУБД. а сэкономленное время приумножим и потратим на переделку системы в самое неподходящее время, т.е. в момент когда ею действительно начнут интересоваться. |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
для оракла существует аналог хибернейт , звётся он TOPLink.
|
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
да, но DimW, в хибернейт тоже есть возможность менять запрос ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
А социальная сеть будет открытая, или закрытая (только для зарегистрированных пользователей)?
Есть необходимость индексации проекта поисковиками? Если есть - читаем про СЕО и ограничиваем применение ajax только там, где это не вредит СЕО. А JSF вообще лучше обходить стороной, мало того что с СЕО несовместимо, так пользователи материться будут - ни ссылку другу не пошлешь, ни в избранное сохранишь.... -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
||||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
не верю. аргументы в студию! |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Asal,
dEEp, Свое мнение и доводы против JSF я высказал в этой теме: http://forum.vingrad.ru/forum/topic-213156...tml#st_0_view_0 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
ok. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
О каких конкретно запросах идет речь? На получение/изменение данных? Так их всегда самому можно написать в Hibernate. Если это DDL запросы на создание таблиц БД, то, впринципе, проектировать от БД к объектам никто не запрещает. P.S.: Теме когда лучше использовать ORM фреймворки, а когда голый SQL посвящена одна из глав книги Мартина Фаулера "Архитектура корпоративных программных приложений". Там достаточно подробно описаны плюсы и минусы технологий в зависимости от сложности проекта. |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
только на получение данных. изменения данных я описываю хранимыми процедурами на уровне БД. про DDL и речи быть не может, это этап проектирования, а не работы приложения. минус один и большой - это потеря производительности на БД сервере. плюс для разработчиков которые не владеют СУБД и не хотят вникать в особенности его работы на базе которой ведется разработка ПО. как несложно догадаться этот плюс чаще всего приводит к необратимым последствиям. и снова вопрос: имеет ли смысл использовать ORM фреймворки в моем случае? мне просто хочется понять какое приемущество я получу используя их, а не голый jdbc. |
|||
|
||||
seth |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
так тогда не понятно какой ваш случай? у ТС это небольшая соц. сеть а у вас то что? ![]() конечно если тюнить по производительности по максимуму то может в jdbc и есть смысл..... или если хочется писать хранимые процедуры или функции - тут явный прирост по производительности если есть сложная логика какаято... хотя мне кажется опять же что проще сделать на хибернейте и купить мощнее сервер - дешевле будет ![]() в минусах от jdbc - долгая разработка + зависимость от БД ЗЫ а так действительно лучше Фаулера почитать ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
Но для этого не надо километры кода менять. Не понравилась MySQL пожалуйста, поменяй одну строчку в persistence.xml и используй другую БД. Не хочешь Hibernate + MySQL, а хочешь Oracl + TopLink, поменяй 5 строчек. Но это если работать с JPA. P.S. ИМХО |
|||
|
||||
DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
я не спорю что после изменения этой строки ваше приложение сможет работать с другой БД, но вряд ли бизнес процессы которые изначально были определены будут работать так же. простой пример: есть таблица в БД с названием test она содержит след. поля и значения: поле: name значения: 1, 2, 3, null некое ПО было написано под БД MS SQL. кончепцией этого ПО является - "не показывать данные с пустыми значениями". програмист выполнил задачу написав такой запрос:
после миграции системы на оракл главная концепция ПО перестала работать т.к. данное условие "name <> null" в оракл возвращает false- следовательно пользователь перестал вобще получать данные. и только переписав запрос таким образом:
мы получим необходимый результат.
Asal, это верно! действительно ПО будет работать с новой БД, но как?! так что любой кто утверждает что он написал ПО которое может работать под все БД(без переписывания кода), говорит это только по тому что он не пробывал его мигрировать на другую БД. Это сообщение отредактировал(а) DimW - 24.9.2008, 11:08 |
||||||
|
|||||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
социальная сеть это задача которую нужно решить, а не подход к разработки. так что не понятно? для меня вопрос не стоит хочется или нет. я именно так и поступаю. так едрен-батом, кто нибудь ответит мне на мой поставленный вопрос - как в моем случае мне помогут ORM фреймворки? Это сообщение отредактировал(а) DimW - 24.9.2008, 11:26 |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
мне кажется только переносимостью спасают. я никогда не отказывался от jdbc и отказываться не собираюсь. |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
||||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
DimW, во-первых это было мое ИМХО.
во-вторых есть такая штука как
разве оно не за это отвечает ? а я этого не утверждаю ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
мы тут выяснили что разработчик используя хибирнайт может самостоятельно писать запрос, сомниваюсь что при смене диалекта это будет учтено. Asal, любое мнение основывается на чем либо. на чем основано ваше? есть конкретные доводы или только в теории все. хотя вам ни кто не заприщает мнеть свое ошибочное мнение. лично я чтобы не быть голословным показал на пальцах как один запрос дает разные результаты в разных СУБД. случай простой: 1) всю логику приложения я размещаю на уровне БД. 2) все запросы(на получение данных) перед выходом в жизнь трассируются, оценивается их производительность и при необходимости тюнингуются. т.е. каждый запрос пишется вручную. |
|||
|
||||
v2v |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
самостоятельно написать запрос можно не на диалекте , а на HQL - встроенный sql язык в хибернэйт, который hibernate-core затем сам преобразует в указаный диалект. Добавлено @ 15:27
а какая у вас СУБД не оракл случаем? Это сообщение отредактировал(а) v2v - 24.9.2008, 15:28 |
||||
|
|||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
вот именно от подобных вещей (переписываний запросов для разных серверов и диалектов) и спасает ORM фраймворк. Достаточно написать на запрос на JPA Query и он будет работать на любой поддерживаемой БД. Но это конечно не главный плюс ORM. В первую очередь это объекто-ориентированный подход к хранению данных, возможность выполнять полиморфные запросы. И нативные запросы он выполнять кстати не запрещает. |
|||
|
||||
Asal |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
это я и имел ввиду, только забыл сказать ![]() например
|
||||
|
|||||
DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
он самый. еще раз говорю, ну не смогу я оценить произвадительность запроса написанного на HQL, тем более настроить его производительность.
вот как ORM фраймворк спасет меня в случае если мне нужно написать такой запрос:
powerOn, есть опыт безболезненного переноса? |
||||||
|
|||||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
если нужно написать нативный, то пишите нативный и используете в концепции ORM фреймворка, помех этому нет. грубо говоря, ORM избавит вас от самостоятельного конвертирования ResultSet-ов в доменную модель приложения. Нет опыта болезненного переноса. ![]() |
|||
|
||||
Shurr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 1 Всего: 7 |
Задача ORM - укладывать в базу и доставать из нее объекты, которыми манипулирует слой бизнес-логики. В Вашем же случае бизнес-логика находится на уровне БД, т.е. объектная модель вырождена. Соответственно использование ORM в данном случае смысла не имеет. |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
это же вполне стандартная задача... Тюнинг оэрэмма для oracle. |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
powerOn, Shurr, v2v, спасибо. думаю я кое что понял. поправьте плиз если я не прав.
ORM стоит использовать(в порядке приоритета): 1. если есть потребность в ОО представлении данных; 2. если бизнес логика реализуется на апп сервере; 3. что есть надежда на безболезненную смену СУБД в случае необходимости; изходя из вышесказанного делаю вывод что в моем случае использование ORM не оправдано. Добавлено через 1 минуту и 31 секунду спасибо за честность ![]() |
|||
|
||||
Shurr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 1 Всего: 7 |
DimW,
Первые два пункта обязательны, третий - как один из вариантов. Вместо него чаще идет такой плюс ORM, как повышенная скорость разработки с возможностью в будущем подтюнить узкие места, заменив в них автоматический маппинг на ручной (буде такая необходимость возникнет). А вывод насчет неоправданности в случае логики на БД - да, так и есть. |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
DimW, поддерживаю вас.
|
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
спасибо, хотя бы не чувствую себя не понятым в этой ветке форума. спасибо всем кто принимал участие в дискуссии. ваши комменты помогли мне понять чем руководствуется добрая часть разработчиков выбирая те или иные средства разработки. мои выводы: 1. нежелание и неумение вникать в суть поставленной задачи; к примеру автора топика совсем не заботит что оракл это версионник и ввиду этого обеспечивает большую маштабируемость, но с учетом специфики задачи "соц. сеть" и требованием к системе "У сети будет тяжёлая фото-составляющая", все преимущества оракл летят в некуда, по моему гораздо аффективней использовать мускул и файловую систему для хранения фотографий. складывается впечатление что выбор СУБД был сделан на основе того что он слышал что "оракл это хорошо" за то он очень озадачен выбором популярных технологий. стадность прям какая то. 2. вера, что скорость разработки увеличивается; это работает в одном случае, если стоит задача сдать проект, забрать бабло, и забыть. 3. халатное отношение к своей профессии; почему то некоторые считают, что производительность ПО зависит от количества двуядерных у сервака. и это можно выдвигать в качестве аргумента в пользу выбора или оправданий используемых технологий. В общем безграмотность на каждом шагу, стыдно господа! |
|||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
DimW, жестко! может даже грубо.
Но заставили задуматься, за это - спасибо! |
|||
|
||||
Shurr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 1 Всего: 7 |
DimW
Безапелляционные заявления о полнейшей безграмотности собеседников не слишком способствуют развитию конструктивной дискуссии. Тем более, если эти заявления подтверждены только собственными измышлениями. Это так, к слову.
Это работает в случае, когда производительность системы под большими нагрузками не ставится во главу угла, либо когда БД не является узким местом системы. Это работает в бизнесе, когда система нужна на вчера, и в процессе разработки требования меняются с завидной регулярностью. А после запуска такой системы она устаревает с каждым днем, поэтому скорость внесения изменений очень критична. Вообще, если говорить о поддержке - практически любая система после выхода в продакшн продолжает развиваться, баги правятся, функциональность расширяется. И если справедливо одно из вышеперечисленных условий, то стоимость поддержки и модификации при разумном использовании ORM будет ниже, чем без него. И чем больше, сложнее система, чем чаще в нее требуется вносить изменения - тем заметнее будет выигрыш. Должно быть понимание разумного подхода к разработке. Глупо ожидать, что любой софт на двух серверах будет работать вдвое быстрее чем на одном. Но если система масштабируется (естественно в разумных пределах), то покупка нового оборудования действительно может быть дешевле, чем вылизывание каждого запроса. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Увеличение скорости разработки делается не для этих целей. Главная цель это как можно быстрее вывести рабочий продукт на рынок. Это бизнес. Рабочий продукт это не тот, что работает быстрее всех, а тот что справляется с поставленными задачами. Лично я бы не стал тратить время и силы на оптимизацию какой-либо части продукта, если в этом нет необходимости. Если запрос выполняется за 0.05 сек и это всех устраивает, то нет смысла тратить дополнительные силы и время (читайте "деньги") на достижение его выполнения за 0.025 сек. Предварительная оптимизация - это известный антипаттерн. Увеличение производительности работы через железо тоже бывает экономически выгодным. Все зависит от характера проекта, сроков и бюджета. Сделать кластер может быть реально дешевле оптимизации части программы. |
|||
|
||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
я задумываюсь для почти таких же целей взять вместо Hibernate, Ibatis.. НО.. пока изучаю, и смотрю, что и как, и почему.. ![]() |
|||
|
||||
serger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 2 Всего: 5 |
Посмотрел(подсмотрел) на Ваш профиль. Исходя из собственного опыта - проблема в мировозрении. Просто взгляд на вещи с разных строн. "Кривые" зеркала. -------------------- упс! |
|||
|
||||
DimW |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
да конечно собственными, чьими же еще! имея 5 летний опыт разработки под СУБД оракл, кому как не мне понимать что оракл для конкретной задачи бесполезен. но волнует меня именно то, что автор даже не удасужился спросить о целесообразности его использования в соответсвующей ветке форума. и то что ни кто не обратил его внимание на это. не знаю что конкретно вы имеете ввиду, но могу с уверенностью заявить, что самое узкое место любой системы это БД, вернее не грамотность в его использовании. конечно если текущую задачу "соц. сеть" развернуть на оракле и мега железе, то 99% проблем не возникнет, но вряд ли оно того стоит.
уверяю вас это проблема вашего аналитика, именно он должен позаботится о том что бы не возникало подобных неприятностей.
Shurr, маштабируемость системы не определяется мощностью железяк, это возможность одновременного доступа к ресурсам системы, данная возможность определяетя только на уровне СУБД, но не на сервере приложений. понятно что приложение развернутое на апп сервере может влиять на маштабируемость, но только в худшую сторону, маштабируемей самой БД приложение быть не может.
неоспоримый факт.
поясните плиз что за разные стороны о которых вы говорите и как они противоречат адекватности выбора технологий для конкретной задачи. если я кого то обидел - прошу прощения. пожалуйста. |
||||||||||
|
|||||||||||
seth |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
где в той цитате хоть слово про Фаулера??? ПС спецом для вас выделил ключевые слова ;) Это сообщение отредактировал(а) seth - 25.9.2008, 09:47 |
||||
|
|||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Наверное также говорил и Гейтс... |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
seth |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
имхо у каждого своя голова на плечах - захотел спросил захотел не спросил - темболее имхо ветка Оракла это не последняя инстанция ;)
узким местом может быть что угодно - начиная от плохого канала, слабого железа, глючного сервера, глючной проги и заканчивая вашими любимыми СУБД ![]() Добавлено через 1 минуту и 34 секунды
лучше б вы сказали чем глупое утверждение а не глупо отвечали ;) ПС темболее в последующих постах можно найти схожие с моими мысли у других собеседников ;) |
||||
|
|||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Я не знаю, говорил ли так Гейтс. ![]()
Это ну очень спорное заявление. Ещё есть сериализация при сетевом обмене (например веб-сервисы), стратегии разграничения транзакции (уровни изоляции), конкурентное выполнение задач. Т.е. не только из одной БД системы состоят. Можно её (БД) затюнить "по самое не могу", но если веб-сервисы будут тормозить, то все старания пройдут даром. Это сообщение отредактировал(а) powerOn - 25.9.2008, 10:11 |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
все таки вопросы использования конкретной СУБД стоит обсуждать со специалистами данной СУБД, если вы считаете иначе то вряд ли я вас буду переубеждать, это ваше право отстаивать свое ошибочное мнение. только вашего "имхо" слишком много, и не кчему конкретному оно не привело. если бы вы хотябы попытались вникнуть в суть дела, а не выхватывали удобные для вас куски цитат, то поняли бы что я хочу довести до ващего сведения. примите во внимание что я себя не позиционирую как спеца по всем СУБД, будьте внимательнее.
это вас ни коем образом не оправдывает и не позиционирует как специалиста, а о проявлении стадности я уже говорил. собственно мы и спорим. я вполне отдаю себе отчет что на оракле свет клином не сощелся, и что проблемы ПО это не только проблемы на стороне БД, но ведь проблема в том что все с азартом обсуждают какой генератор html выбрать, и не хотят посмотреть в глубь проблемы. |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 2 Всего: 72 |
А насколько удобно использовать хранимые процедуры для реализации бизнес-логики при работе с распределёнными базами данных?
|
|||
|
||||
seth |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
DimW нечего демагогию разводить: есть что сказать - все во внимании вот еще инфа Сравнение Hibernate (ORM) vs JDBC |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
И стал самым богатым человеком в мире... Что-то не о том вы спорите... Разрабатывая соц сеть, ГЛАВНОЕ, сделать ее интересной. Уверяю, что если соцсеть, написанная относительно нормальным PHP прогером с использованием какой-нибудь MySQL, загрузит среднестатистический сервер, хотя бы на 50%, уже будет приносить достаточно, что бы нанять группу профи, для создания нормального движка. На что стоит впервую очередь обратить внимание? - Идея - Удобство использования - дизайн - продвижение проекта Технологии вторичны. Нужно применять то, что позволит наиболее быстро запустить проект, и наиболее просто наращивать его функционал. Если пойти немного дальше - выбор технологий должен учитывать наличие квалифицированных специалистов на рынке труда. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
CaligoSpiritus |
|
||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
Спасибо, обязательно посмотрю. Vasay, для зарегистрированных, но вероятно, впоследствии будет добавлена поддержка openid и google authentication. JSF мы пользоваться не будем, для AJAX скорее всего остановимся на применении jQuery. Те части сайта, которые должны будут индексироваться, будем делать с учётом SEO. Честно говоря, с дизайном БД мы ещё не полностью определились, но думаю, что некоторая часть бизнес-логики, тесно связанная с информацией будет реализована на PL/SQL, для этого будем использовать инструменты Spring для работы с БД.
Видимо, Вы имели ввиду front end ![]() Дело вкуса - кому, что интереснее ![]()
Напротив, это меня очень заботит - теперь, когда я узнал, что Oracle - это версионник. Хотя я ещё не знаю, что это значит, но обязательно выясню ![]()
Я просто не все причины, побудившие сделать такой выбор, указал. Кроме того, я не говорил, что фотографии будут храниться в БД, я спросил совета - какой подход тут лучше и почему? Не уверен, что мускул справится с этой сетью, если проект удастся...
Я, конечно, много раз слышал, что Oracle, это хорошо, но я не меньшее число раз слышал этот отзыв и о том же MySQL. Мой выбор обусловлен вовсе не этим, а тем, что я имею некоторый опыт работы с этой СУБД (хоть и не на высоком уровне, но кое-что понимаю), а так же наличием в команде человека, хорошо разбирающегося в PL/SQL. К тому же, как я уже писал выше в этом посте, часть бизнес-логики будет расположена именно в СУБД в виде пакетов процедур и функций. Не популярных, а интересных. Те технологии, которые я обозначил интересны мне не потому что популярны, а потому что я почитал о них, в некоторые уже начал вникать поглубже и они мне понравились/заинтересовали. Хотя не спорю, что изначально обратил на них внимание вследствие популярности, иначе я бы просто не узнал о существовании некоторых из них.
Если не сложно, поделитесь результатами своих изысканий. Хотя я и не упомянул его в первом посте Ibatis меня тоже заинтересовал. Само собой, сначала мы обдумали этот вопрос, а потом уже принялись выбирать технологии ![]() Вот сейчас и настала их вторая очередь - после того, как оформились идеи и концепции будущего проекта ;)
Не удосужился - это немного некорректно сказано. Просто выбор я уже сделал, основываясь на своём опыте и опыте своих друзей и знакомых. Но если Вы или кто-нибудь другой аргументированно объясните преимущества для данного проекта какой-либо другой СУБД или хотя бы недостатки Oracle, то свой выбор я изменю. PS: Всем большое спасибо за дискуссию, читал с интересном и жду продолжения. Стараюсь, по мере сил, учесть все замечания и мнения. |
||||||||||||||
|
|||||||||||||||
serger |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 2 Всего: 5 |
Я говорил лишь разве что о противоречиях человеческих предпочтений.. То что мы лучше всего знаем, то и "толкаем". Всё это к теме не относится и все споры не о чём (всмысле они вне темы топика - если интересно - можно создать тему в более соответствующем разделе форума), но я думаю Вы почувствовали напряжённость сообщений. Ну и напоследок.. База данных выбрана, как бы там ни было. А выбор технологии доступа к данным вообще не должен ставиться, нужно выбирать наиболее востребованные, технологичные и гибкие инструменты, (Hibernate и(или) JPA). В конце концов база - это только хранилище данных, в контексте задачи, а гланое - веб-приложение (не думаю, что потребуется сильно навороченая схема данных), поэтому лучше изначально всё строить "правильно" как принято. DimW, Том Кайт написал хорошую книгу для СВОЕГО круга, но это не Библия. Хотя на неё молятся. И база данных - это не панацея. Это и есть разные "мировозрения" - молящиеся на Тома и др., как-то перебивающиеся без него. Не нужно впадать в крайности. Если есть вопрос по оправданости использования ORM - я создам отдельную ветку, чтобы захватить его во всей широте !.. ![]() Обсуждение -------------------- упс! |
||||
|
|||||
seth |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 4.6.2006 Репутация: 1 Всего: 1 |
сорри действительно фронт энд ![]()
ну это было мое маленькое имхо ![]() ![]() я вот тоже для фейсбука думаю приложение написать ![]()
вообще технология популярная ведь не потому что кто то сказал что это популярно и все подхватили - а скорее потому что она интересная или обладает некими существенными плюсами или отсутствием альтернатив ;) |
||||||||
|
|||||||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
serger, для того что бы понять плюсы ORM в конкретных ситуациях не нужно создавать подобные темы, они и так очевидны.
просто при выборе подобных средств не нужно заявлять что это позволит обеспечить независимость от БД. я принял участие в обсуждении только по тому что хотел довести до сведения участников что любое ПО зависит целиком и полностью от БД под которую оно разработано и что все заявления что существуют средства которые позволяют обеспечить подобную гибкость - вранье. а вы не правоцируйте. судя по ссылке которую вы дали, я делаю вывод что вы так и не попытались понять о чем я хотел сказать. CaligoSpiritus, судя из того что вы написали, можно сделать вывод что вы всетаки подумали, часть своих заялений беру обратно. |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Позволю себе внести маленькое дополнение в дискуссию. Недавно я все писал на JDBC руками и так, как работаю на Oracle, я понимаю DimW. К сожалению ORM системы типа Hibernate просто не дают использовать мощь Oracle по полной схеме. Однако в пылу полемики он несколько перебрал.
Здесь много говорилось о запросах, и почти исключительно о запросах, когда приводились примеры. К сожалению боле сложную часть работы с базой представляют собой управление транзакциями в приложении (в большинстве приложений). А вот здесь ORM системы не просто укоряют работу разработчика, а делают ее существенно эффективнее. Бывают "крутые" отчеты, выполняющиеся часами. Это особая "песня" и никто не мешает выполнять их запросы вообще за пределами ORM системы с помощью JDBC и оптимизировать до потери пульса. Оптимизировать же множество коротких запросов в транзакционной системе смысла нет. Можно вообще пойти на компромисс. Oracle10g позволяет выявлять особо нагружающие систему запросы. Оптимизируйте их с помощью Native SQL но в рамках ORM системы. Это сообщение отредактировал(а) mbasil - 26.9.2008, 10:36 |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Вообще говоря имеется две психологии разработчиков:
1. Идти от базы, считая приложение (отчасти) вторичным. 2. Идти от приложения, считая базу свалкой таблиц. Я принадлежу скорее к первой группе, но честно пытаясь разобраться, понимаю, что использовать ORM систему при разработке мало мальски сложной системы сегодня просто необходимо. Однако есть разработчики, которые упорно причисляют себя только к первой или только второй категории и не хотят идти на компромисс. Тем хуже для них. |
|||
|
||||
DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
это короткий запрос?
в таком запросе может не работать индекс по полю ххх, учитывая что данные в таблице с большой селективностью хотелось бы что бы индекс всетаки принял участие в сценарии выполнения данного запроса. mbasil, ну так что забиваем на это и пусть фулскан по таблице делает свое грязное дело? |
||||
|
|||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 4 Всего: 27 |
DimW, передергиваете. Несомненно анализировать запросы и тюнить базу необходимо. С этим никто не спорит.
-------------------- ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
||||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Ну да, я несколько утрировал. Сознаюсь и каюсь.
Однако ваше, DimW упорство в отстаивании крайней позиции достойно сожаления. Еще раз подчеркиваю, я очень бы хотел вернуться в те прекрасные времена, когда система писалась неспешно, вручную, изменялась неторопливо, а Программист был магом, а не работником конвейера. Когда я начинал писать программы, а было это в восьмидесятых годах разработка программ была искусством. Сегодня это индустриальный, зачастую автоматизированный процесс. Это прискорбно, но факт и от ORM систем не убежать. Дальше будет только хуже. Это сообщение отредактировал(а) mbasil - 26.9.2008, 13:42 |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 4 Всего: 27 |
Грань очень простая. Потребность бизнеса и трудозатраты. Если оптимиизация запроса с 0.05с до 0.0025с требует человеконедели, то пошла бы она эта оптимизация. Другое дело, если тот же запрос является критичным участком, тогда и больше не жалко. -------------------- ![]() |
|||
|
||||
CaligoSpiritus |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
и на том спсасибо ![]()
Честно говоря, больше принадлежу ко второй - но это не моя идеология. Просто так получилось. Но пихать ВСЮ бизнес-логику в СУБД я тоже не хочу. Мне более по душе средний вариант. Да и люблю я программировать "обычные" приложения (не СУБД).
Это очень интересно. Я никогда раньше не разрабатывал транзакционных приложений, однако уже вижу, что без транзакционных процессов в соц. сети не обойтись. Соответственно Ваше заявление меня заинтересовало. Как именно ORM framework упростит/ускорит этот момент и какой именно framework Вы рекомендуете в данном ключе, если у Вас есть в этом опыт? |
||||||
|
|||||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Можно сказать только начинаю. Выбор прост (поскольку, я полагаю, надо быть в мейнстриме) изучаю JPA, вследствие того, что это стандарт и Hibernate как наиболее часто используемый (хотябы даже из тех соображений, что JPA делалось по образу и подобию Hibernate и может использовать Hibernate в качестве поставщика постоянства).
Рекомендую замечательную книгу "Hibernate In Action". Впрочем если вы сильно сориентированы на решения Oracle, можно в качестве поставщика постоянства использовать Toplink (однако последний является платным, а бесплатная версия сильно урезана). В общем рекомендую JPA и Hibernate или native Hibernate. Это сообщение отредактировал(а) mbasil - 26.9.2008, 17:04 |
|||
|
||||
DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
mbasil, поясните пожалуйста связь между транзакциями и ORM, и о каком управлении идет речь. или это два обсолютно не связанных друг с другом предложения(я про цитату)? CaligoSpiritus, ни как, почитайте определение транзакции и сами поймете, mbasil скорее всего в терминах проявил неосторожность.
CaligoSpiritus, управление транзакциями СУБД обеспечивает самостоятельно, повлиять можно только на уровень изоляции настройкой на уровне СУБД. вы говорили что у вас есть опыт в оракл, поэтому любое ПО написаное вами использующее СУБД оракл без таковых процессов работать не может. поэтому можно сделать вывод что вы сами не понимаете о чем вы спрашиваете. |
||||
|
|||||
polosatij |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
с этим я с тобой соглашусь.. ![]() а с этим нет.. ![]()
так бывает только в сказках.. или в проектах, что окончат существование через год или не имеют большой приток людей.. по одной простой причине, русурсы ограничены.. и если тебе "повезёт" и ты получишь приток посетителей о которых мечтал, вся трабла так ребром может встать ....
мне кажется, что сейчас по сути специалистов можно найти в любой сфере, проблема только в том, что люди с опытом, не хотят малых денег, а нанимать людей без опыта нет смысла.. вот и приходится искать компромис.. Это сообщение отредактировал(а) polosatij - 26.9.2008, 17:45 |
||||||
|
|||||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
polosatij, это замкнутый круг, сначало кучка засранцев что то пишет, потом нанимают спецов что бы все это дело задышало, потом отказываются от них из за стоимости, опять пишут засранцы и т.д. бабло, бабло, бабло... :( |
|||
|
||||
jeank |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 26.6.2008 Где: Калининград Репутация: нет Всего: 1 |
Здрасте.
В сторону ORM в частности и к серверам приложений в общем меня развернула потребность в систематизированном подходе решения классических задач. Ну, например, в нормальной учетной многопользовательской системе должны быть права на объекты, операции, возможность блокировки объектов при их редактировании (или другие причины) - короче, управление объектами, которые "размазаны" по таблицам реляционной БД. О сколько попыток я пересмотрел - в основном касались блокирования записи в таблице пользователем на редактирование и т.д и т.п. Но все они либо "геморойны" в реализации, причем очень, либо реализовывались криво. Очень интересно было бы посмотреть как приверженец двухзвенки реализовывал бы блокировку объекта раскиданного по семи таблицам )) (я не говорю, что этого нельзя сделать с помощью тех же самых хранимых процедур и дополнительных таблиц - но это ну очень трудоемко и невозможно нормально поддерживать). А сервера приложений со своим ORM, фактически стандартизируют все это управление объектами, плюс регистрация пользователей и раздача прав. Не понимаю как можно не видеть очевидные вещи. |
|||
|
||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
у нас на фирме хотя и пишут серъёзный код (самолёты), но чего я, наверно, не понимаю. мне говорят: - это, ты доделаешь потом.. как-нибудь в третем релизе.. + т.м. Вы хотите качественный софт или чтоб пнуть и всё зазыпалось к ... -фени? ![]() - мы хотим быстро и денег срубить и качественно (но очень быстро!).. (молчание обозначающее это) и можешь вот так вот ![]() ![]() ага.. программирование - это не искусство.. это тупая быстрая работа без энтузиазма для денег чужому дяде.. ![]() |
|||
|
||||
serger |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 2 Всего: 5 |
Не множко рад, куда пошла тема - стало как-то добрее и меньше понтов, уж простите..
Просто БД всё-таки - это только часть системы, как бы она ни была важна, отсюда надо и плясать, и всё-таки не забывать основные принципы программирования и не пытаться объять необъятное..
Это лишь говорит, что хорошо бы объединить два подхода, чтоб каждый, вмеру своих сил занимался своим делом )
Мне кажется банально: когда НУЖНО! те есть необходимость. JDBC и ORM я не сравниваю, жаль если я не смог донести мысль.. -------------------- упс! |
||||
|
|||||
serger |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 2 Всего: 5 |
Если у вас в команде есть хороший специалист по Oracle, то остаётся стать специалистом по JEE ![]() ![]() -------------------- упс! |
||||
|
|||||
CaligoSpiritus |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
Знаете, DimW, можно сделать вывод, что у Вас проблемы с общением. Может быть, хватит обвинений в непрофессинализме, отсутсвии здравого смысла? Я говорил, что у меня есть опыт работы "с" Оракл, а не "в". И те небольшие приложения, в которых в одном месте делается rollback, а в другом commit, я не могу назвать сколь-либо серьёзными, более того, в этих случаях можно было вообще обойтись без этого механизма. Серьёзная же система, использующая транзакции - совсем другое дело.
А если оно Read-only - только запрашивает информацию из БД?
Ключевые слова выделил. Вы сами допустили возможность, что он не оговорился, поэтому мне и интересно.
Мы не спецы, мы пока только учимся ![]() |
||||||
|
|||||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
возьмите то, что хотели.. даже, если ваш проект загнётся, каждый из вас получит опыт для "продолжения" жизни ![]() ![]() ![]() ![]() пы.сы. мой совет также взять checkstyle, если у вас разные стили написания кода, иначе будете друг-другу мозги вставлять, а не код писать ![]() |
|||
|
||||
v2v |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
Почему чужому дяде ? Почему не искусство ? Главное выбрать нужный подход. А при правильном подходе программирование для вас будет искусством - источником получения удовольствия , да ещё и приносящее вам бабло. ![]()
Для этого в разработке ПО и существует этап проектирования. А перед этапом проектирование есть этап разработки Технического Задание. Так вот руководствоваться при выборе подхода надо на основе ТЗ . Так что идти надо от цели , а субд , (gui/web)приложение должны разрабатываться с тщательностью в равной степени.
транзакции - это первостепенная задача в вашем приложении? |
||||||
|
|||||||
CaligoSpiritus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
polosatij, по поводу слоёв хорошо написано в документации по Spring, да и в множестве других источников, именно так мы и строим проект. Что до стиля - да здравствует Java и рекомендованный Sun стиль написания кода на ней ;)
Транзакции, это не задача, тем более, не первичная, - это средство.
Речь не о более или менее тщательной разработке какого-либо слоя, а о дизайне приложения. То, что всем компонентам следует уделять внимание и хорошо их прорабатывать, это естественно. Это сообщение отредактировал(а) CaligoSpiritus - 26.9.2008, 23:20 |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
переозвучу фразу: "научиться работать с транзакциями в контексте текущего приложения" - не первичная задача? это риторический вопрос, мне кажется, на данном этапе не стоит этому уделять внимание.
я тоже говорил о дизайне. Или вы что то другое подразумевали под словом дизайн? Это сообщение отредактировал(а) v2v - 26.9.2008, 23:44 |
|||
|
||||
CaligoSpiritus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
Я об этом. В общем, я с Вами согласен ![]() Этому нельзя не уделять внимание, потому что многие операции соц. сети обязаны быть транзакционными. В этом проекте довольно большая часть логики, в том числе и транзакционной, будет в СУБД, но и на App. Server кое-что придётся. Именно поэтому меня заинтересовало, как инструменты ORM framework-ов могут помочь. Хотя, в принципе, транзакционный механизм неплохо реализован в Spring и никаких особых трудностей не предвидится, этот мой вопрос больше из любопытства. |
|||
|
||||
polosatij |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
мне бы хотелось слышать о "главном подходе" и о источнике получения удовольствий, а то я что-то не втуплю, как я могу резко поменять свою жизнь.. серьёзна? 1). моё бабло прямо пропорционально зависит от просиженных часов, т.к. оплата по часовая. 2). если ты долго в проекте и у него хорошо идут дела, тересна мне, как ты хочешь заняться искусством, если тебе каждая деталь уже давно известна и занимаешься "тупой" конвеерной работой
ошибаешься.. у Sun-а есть много противоречий, это первое. второе, поверь мне, есть так много правил, что даже опытный хирург без автоматической проверки может писать не так, как доктор прописал ![]() Это сообщение отредактировал(а) polosatij - 27.9.2008, 11:55 |
||||
|
|||||
v2v |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
мне не понятен сарказм.
отсюда противоречие: если вам скучно на своём проекте, но вы до сих пор продолжаете заниматься ним, значит вас целиком и полностью устраивает зарабатываемое бабло или какие то другие преимущества этого проекта. Но если это не так , тогда вам никто не мешает "резко поменять свою жизнь" , а для этого можно начать с изменения работы или хотя бы проекта, слава Богу, на программистов пока спрос есть ...
хотя, вижу ещё один вариант : если вам считают количество просиженных за компьютером часов,а не количество написанного кода, но вам никто не мешает часть из этих часов заниматься чем то интересным для себя ![]() Это сообщение отредактировал(а) v2v - 27.9.2008, 12:07 |
||||
|
|||||
polosatij |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
не могу.. замкнутый круг.. грядут повышения в карьере и не хилый прирост заработной платы, есть свободный график и нормальный коллектив. да и сам заказчик очень доволен работой (стучу по столу), такое тоже не каждый раз бывает.. это держет меня по самые нехочу ![]() ничего, время покажет.. если совсем по перёк горла встанет, можно будет послать всё к чертям и ...
я так и делаю ![]() ![]() Это сообщение отредактировал(а) polosatij - 27.9.2008, 12:16 |
||||
|
|||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Давно не просматривал дискуссию. И хотя она, по моему мнению, далеко ушла от темы, хочется все же ответить на очередные обвинения в некомпетентности, воспоследовавшие в мой адрес.
Когда я говорил об управлении транзакциями, я имел в виду обеспечение выполнения множества семантически связанных SQL операций, когда атомарные операции собраны в достаточно репрезентативную группу (право стыдно об этом говорить), а вовсе не написание команд COMMIT или ROLBACK, как это кое-кто подозревает и, упаси боже, вовсе не попытку как то изменить в этой части поведение СУБД. При этом я имел в виду не только наборы DML операций, но и транзакции на чтение. Если речь идет о DML операциях, при их выполнении более или менее сложной группой у вас есть два выхода: 1. Вручную писать специализированные методы, которые будут выполнять группы операций INSERT, UPDATE, DELETE при этом вам приходится «плодить» горы исходного текста. 2. Попытаться написать универсальный механизм, а это означает попытку смоделировать мини ORM систему собственными силами. В случае транзакций на чтение вопрос обстоит еще хуже, когда требуется извлекать много связанных объектов. В зависимости от ситуации вы должны писать или один запрос соединяя множество таблиц, а затем разбирать результирующий набор на части, либо писать несколько запросов и совместное выполнение их обеспечивать программным образом. И здесъ имеется та же самая альтернатива, либо писать много специализированного кода, либо писать нечто универсальное (ORM систему?). Hibernate обкатана тысячами разработчиков за много лет. Пойдите и реализуйте своми руками автоматическое «лениевое» извлечение связанных объектов или кэш второго уровня. То есть в случае мало-мальски сложной системы у вас имеется альтернатива - либо писать и отлаживать много специализированного кода, либо писать свою ORM систему. Если она окажется лучше Hibernate, честно обещаю использовать ее в собственных разработках. Извините за многословность – не хочется выглядеть дураком, которым меня пытаются представить. |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
И последнее моё добавление, чтобы избавиться от недомолвок. Объектно реляционное отображение требуется не от хорошей жизни, а от нестыковки реляционного хранения с ООП (это все знают). Однако некоторые, решая эту проблему, вновь и вновь пишут специализированный код, а другие берут универсальное решение (готовую ORM систему). За универсализм всегда приходится платить некоторым снижением эффективности работы. Однако, как сегодня никому в голову не приходит писать системы на Ассемблере, так сегодня использование ORM системы для взаимодействия с базой данных становится общим местом.
И Sun и Oracle окончательно сняли свои курсы по JDBC, которые раньше у них были. Сначала я посокрушался по этому поводу, а потом понял это симптом. |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 2 Всего: 72 |
||||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Shaggie, так точно. Однако, согласитесь - в конечном итоге, транзакции бизнес уровня плавно перетекают в транзакции СУБД.
Например, при использовании EJB вы можете в цепочке вызова методов, для каждого из методов описать открытие и, соответственно закрытие транзакции, однако в конечном итоге вся цепочка приводит к завершению или откату транзакции в контексте постоянства, а значит и в СУБД. С учётом возможности использования для каждого метода декларативной авторизации мы получаем довольно мощный инструмент. Хотя надо честно сказать для относительно простых приложений достаточно ORM. Однако при этом все остальное надо писать вручную. |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
В том то и прелесть Java, что вы может выбирать оболочки как крупно гранулированные, типа ADF,(и получать снижение производительности), так и мелко гранулированные, и даже можете "выковыривать" из оболочек только нужные вам части. Было время, я сам писал пул подключений к базе данных, который сносно работал, и даже сервлет-контроллер, а также свою библиотеку пользовательских тегов. Счастливое было время начала начал ! Тогда был смысл "стряпать" свой пул подключений. По сути я пытался "наваять" свою собственную оболочку. Когда же дело дошло до написания собственной универсальной мини ORM системы я сдался. Пытаться "переплюнуть", появившееся к тому времени сообщество разработчиков Hibernate малыми силами - для этого надо быть сумасшедшим.
|
|||
|
||||
goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
бред... я вот считаю что SQL знаю на довольно высоком уровне, но при этом делать все через хибернейт, все равно, в энное колличество раз быстрее... тут даже дело не в скорости написании запросов (тут скорее всего времени уйдет одинаково что на SQL что на HQL), а во времени которое тратишь на генерацию даошки/сервайса вцелом... на хибернейте это сделать явно быстрее можно чем на чистом ждбс Это сообщение отредактировал(а) goodday1941 - 29.9.2008, 15:55 -------------------- SCJP 6 |
|||
|
||||
CaligoSpiritus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.12.2006 Репутация: 1 Всего: 2 |
Всем большое спасибо за дискуссию и советы.
Решил не менять решение об использовании Oracle (простите за каламбур). ORM Framework пока никакой юзать не буду, буду работать через спринговскую поддержку JDBC, если возникнет необходимость, наверное придется выбирать между Hibernate, Toplink и iBatis. Front end буду делать с помощью jQuery с плагинами. |
|||
|
||||
DimW |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
ключевое слова - "чтоб каждый, вмеру своих сил занимался своим делом" и только так можно получить качественный и легко управляемый продукт!
"оно" это что?
и не средство, а механизм которым вам всеравно придется воспользоваться сознательно или нет, но придется, так что лучше возьмите книгу пусть не по оракл, а хотябы по теории БД и прочтите.
редко транзакция состоит из одного sql оператора, все что реализуется либо на уровне сервера приложений либо на уровне БД описывает какой либо бизнес процес или их совокупность. следовательно любое завершение транзакции это либо подтверждение б. п. либо его неудачное завершение. mbasil, вас ни кто ни вчем не обвиняет темболее в непрофессианализме. очень сложно понять вашу позицию в данном обсуждении, такое чувство что вы хотите обьять необьятное и пытаетесь оправдать свою многосторонность. ![]() Пожалуйста, самому было приятно "пободаться" ![]() |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |