Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ORM vs PL/SQL, логика в БД или в приложении 
:(
    Опции темы
serger
Дата 25.9.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 0
Всего: 5



По мотивам обсуждения тема.

Как грится - кому что по душе и лучше обосновано плюсы и минусы подходов!

ps. Почему pl/sql - там чаще всего наворачиваются мощные супер системы.

Это сообщение отредактировал(а) serger - 25.9.2008, 17:15


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
LSD
Дата 25.9.2008, 17:36 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



По чистой производительности PL/SQL сильно уступает Java (по заявлениям самого Oracle). Плюс многие вещи на PL/SQL надо делать через одно место.

Единствено когда PL/SQL лучше, это реализация хитрых запросов, которые "невыразимы" SQL-ем. И вообще ситуации, когда SQL сотавляет основную часть логики работы процедуры.

А вообще холивар пустой, ибо сравниваются совершенно разные вещи.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
seth
Дата 25.9.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: нет
Всего: 1



Цитата(serger @ 25.9.2008,  17:11)
По мотивам обсуждения тема.

Как грится - кому что по душе и лучше обосновано плюсы и минусы подходов!

ps. Почему pl/sql - там чаще всего наворачиваются мощные супер системы.

наверное потому что большие объемы данных и сложные бизнес правила обрабатывающие эти самые объемы и возвращающие малое кол-во данных smile
т.е. экономия траффика и времени на передачу данных

Добавлено @ 17:47
Цитата(LSD @ 25.9.2008,  17:36)
По чистой производительности PL/SQL сильно уступает Java (по заявлениям самого Oracle). Плюс многие вещи на PL/SQL надо делать через одно место.

Единствено когда PL/SQL лучше, это реализация хитрых запросов, которые "невыразимы" SQL-ем. И вообще ситуации, когда SQL сотавляет основную часть логики работы процедуры.

А вообще холивар пустой, ибо сравниваются совершенно разные вещи.


имелось ввиду скорее
обработка данных в приложении  + обработка данных в БД чем просто ORM vs JDBC

Это сообщение отредактировал(а) seth - 25.9.2008, 17:50


--------------------
PM MAIL   Вверх
serger
Дата 26.9.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 0
Всего: 5



Почему я выбрал такое сравнение.

Том Кайта читали? Хотя бы вступление? Извините за несколько фамильярный стиль, однако немного прёт... (пятница, пиво...)
Там приводится пример, почему не нужно забывать про БД. Мифическая компания разработала JEE приложение,по всем правилам и тп, но столкнулась с проблемой быстродействия. БД видете-ли тормозила. Позвали специалиста, тот сказал - типа вы с БД не умеите работать, надо это исправить! Ну пиво или там чай - все принялись за дело и УХ!... ЦЕЛЫХ две недели тюнили БД. Беда-то какая!!!

Я не буду писать свои выводы, с датами тоже мог ошибиться, но не намного и это ИМХО не существенно. Просто предлагаю задуматься, что это значит, ну и поспорить..

ps, всё-таки на счёт логики будет несколько банально спорить.. Ну и по позже напишу, что сам думаю, если нек поменяю своё мнение.. ;)



--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
LSD
Дата 26.9.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(serger @  26.9.2008,  20:06 Найти цитируемый пост)
Том Кайта читали?

Читали. Нигде у него не сказано, что надо обязательно бизнес логику вносить в базу. Правильное проектирование и настройка базы, вовсе не означает, что бизнес логика должна быть внутри базы.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 11.11.2010, 11:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Хотел создать похожую тему, поиск подсказал что тема уже обсуждалась.
Жаль что тема не развилась. Мне было бы ОЧЕНЬ интересно почитать доводы сторон.
Удастся ли возобновить обсуждение?

На тему стал интенсивно задумываться после публикации линка на ЖЖ в теме "Извините за офтоп. Просто посмеяться" в ораклином подразделе на sql.ru, с коментарием "ЖЖшные леминги обсуждают Oracle". Есесно ораклиное сообщество оборжало высказанные там мысли.

Мне же от чегото не было ржачно. Тема для меня не достаточно исследована, чтобы признавать ее абсурдной априори. Потому я начал думать.

Что надумал:

Вынос прикладного слоя на выделеный сервер приложений, для меня, безусловно, необходим в случаях:
1) Платформа СУБД не представляет сколь нибудь удобного инструментария для реализации прикладной логики
2) Прикладная логика весьма увесиста и требует много вычислительных ресурсов
3) Абстрагирование от платформы СУБД.

большего количества пунктов я придумать не смог. Хотя думал долго.

*1
К первому пункту я безусловно отношу такие платформы как MySQL, Fb, MS Sql(хотя я не знаю как там сейчас обстоят дела, вроде как они уж прикрутили clr, возможно это чтото изменило, но на tsql сколь нибудь замороченную прикладную логику реализовать - мазохизм)

К ораклу первй пункт применить сложно. PL/SQL достаточно развитый язык, на нем действительно можно чтото написать. Он позволяет поднимать и обрабатывать исключения, ограничивать область видимости функций, определять глобальные переменные и константы. Есть даже, хоть и куцая, объектная модель, полиморфные свойства которой вполне можно использовать. Где не хватает PL/SQL, можно прикрутить жаву (но на моей парактике я встечал лишь единожды, когда применение жавы было обусловлено сложностью задачи а не предпочтением разработчика)

*2
Действительно увесистая прикладная логика встречается весьма редко. Мне она вообще ни разу не встречалась. Мне не приходилось конвертить картинки, видео, шифоровать, паковать, распаковывать. 99,9(9)% прикладной логики, с какой мне доводилось сталкиваться и реализовывать - подсмотреть какието данные в базе, на основании их принять решение и сохранить его в качестве результата либо поднять исключение. Т.е. большая часть вычислительного ресурса тратится на доступ к данным. Разбор XML, пожалуй, самый трудоемкий, с точки зрения нагрузки на проц, процесс, который не связан с доступом к данным и который мне доводилось использовать при реализации прикладной логики. 99,9(9)% циклов, реализованных мною предназначены для обхода курсора, не для иттерационных вычислений.

*3
Это исключительно маркетинговая фишка. Любой вменяемый технический специалист будет отбрыкиваться всеми доступными ему средствами от желаний маркетологов скрестить лопату с микроскопом. Средства обеспечения согласованности данных в MS SQL и Оракле настолько различны, что технарю придется забрать на себя львиную долю забот, которые можно было бы возложить на СУБД. Когда этот довод звучит из уст технаря, я недоумеваю.

Результат моих размышлений. 
Если платформа СУБД - оракл, вынос прикладного звена на выделенный апп, в подавляющем большинстве случаев, с технической точки зрения - не обуславливаем.

Однако. Что меня заставляет усомниться. Оракл не стремится развивать свой PL/SQL и он направил свои усилия на развитие своего app. Т.е. видение самой oracle corp в том, что прикладная логика таки должна реализовываться гдето сбоку.

Мне это нихрена не понятно. Я это очень хотел бы понять. Я не вижу никаких приемуществ выноса прикладной логики на аpp, иных кроме "это круто", "это сложно", "заказчик офигеет и не станет сомневаться  достаточности длины нашего перца". Эти тезисы имеют место быть, но они не технические. Когда я роюсь в исходниках того же oracle corp, что я вижу? Я вижу что часть прикладной логики они реализуют в формах, а часть - на датабазе. Зачастую это одна и та же логика. Это же вообще швах. Не, я понимаю, что они на датабазу сливают тот функционал, который может быть востребован не только их апп, но и другими приложениеми. Но нафига нужен такой апп, если все равно часть логики приходится сливать на бд? Я так полагаю что если у нас прикладную логику реализует апп, то все импорты, конверсии, сопряжения со сторонними модулями должны идти исключительно и только через него. Если это напряжно, трудоемко... тогда бизнеслогику  держим на стороне бд и баста.

Это сообщение отредактировал(а) Zloxa - 11.11.2010, 17:05


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
gcc
Дата 11.11.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



тут еще была похожая тема
http://forum.vingrad.ru/index.php?showtopi...t&p=2024681

Цитата

Действительно увесистая прикладная логика встречается весьма редко. Мне она вообще ни разу не встречалась. Мне не приходилось конвертить картинки, видео, шифоровать, паковать, распаковывать. 99,9(9)% прикладной логики, с какой мне доводилось сталкиваться и реализовывать - подсмотреть какието данные в базе, на основании их принять решение и сохранить его в качестве результата. Т.е. большая часть вычислительного ресурса тратится на доступ к данным. 


СУБД умеет как-то конвертировать картинки?

Это сообщение отредактировал(а) gcc - 11.11.2010, 13:02
PM WWW ICQ Skype GTalk Jabber   Вверх
Zloxa
Дата 11.11.2010, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(gcc @  11.11.2010,  12:28 Найти цитируемый пост)
СУБД умеет как-то конвертировать картинки?

В том что не уместно выносить конвертацию картинак на апп, у меня заблуждений нет.

Однако если отвечать на вопрос, средствами оракл, думаю, вполне можно обеспечить и конвертацию картинок в том числе. Орадб умеет подключать жава модули, жава конвертить картинки наверняка умеет. Если необходимость конвертить картинку это скорее прецедент нежели процесс, разворачивать отдельный апп для удволетворения этих прецедентов, тоже вполне может оказаться нецелесообразно.

Это сообщение отредактировал(а) Zloxa - 11.11.2010, 16:27


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
gcc
Дата 12.11.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



ПРО ORM
- если приложение - это админка, где есть много запросов маленьких через Ajax, то как раз удобно тут применить ORM?
т.е. получается сложных запросов нету, а везде такие на подобе select id from table id = 1

- ORM дает кроссплатформенность между СУБД, можно выбрать любую (некоторые дают возможность использовать LDAP)

- защита от инъекций, при настройке ORM расставляется типы столбцов и сразу стоит защита от инъекций к конкретному типу столбцу 

- ORM удобный:
wikipedia
Цитата

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

С точки зрения программиста система должна выглядеть как постоянное хранилище объектов. Он может просто создавать объекты и работать с ними как обычно, а они автоматически будут сохраняться в реляционной базе данных.

На практике всё не так просто и очевидно. Все системы ORM обычно проявляют себя в том или ином виде, уменьшая в некотором роде возможность игнорирования базы данных. Более того, слой транзакций может быть медленным и неэффективным (особенно в терминах сгенерированного SQL). Все это может привести к тому, что программы будут работать медленнее и использовать больше памяти, чем программы, написанные «вручную».

Но ORM избавляет программиста от написания большого количества кода, часто однообразного и подверженного ошибкам, тем самым значительно повышая скорость разработки. Кроме того, большинство современных реализаций ORM позволяют программисту при необходимости самому жёстко задать код SQL-запросов, который будет использоваться при тех или иных действиях (сохранение в базу данных, загрузка, поиск и т. д.) с постоянным объектом.



при обрабоке данных красиво получается на CRUD, разные обработчики форм, обрабатывают и строят запрос INSERT UPDATE
да, кроме ORM есть другие абстракции Rose:smileB или где INSERT UPDATE генерируются с помощью классов, а SELECT в нативном виде...
Код

my $hash;
$hash->{user_id} = $id_user;
$hash->{username} = $c->request->params->{username};
$hash->{code} = $code;
$hash->{ip} = $c->request->address;
$hash->{forwarded} = $c->request->header('X-Forwarded-For');
$hash->{host} = $c->request->hostname;
$hash->{created} = time;

$c->model('DBI')->dbh->do('UPDATE base SET '.( join ", ", map { $_ .' = ? ' } keys %$hash ).' WHERE id='.$id, undef, values %$hash );


НО и есть такае запросы которые НЕ написать на ORM и даже на чистом SQL, то приходится использовать ТОЛЬКО plpgsql ? 
где очень сложная логика в триггерах и процедур на PostgreSQL...

Код

--
-- Name: on_message(); Type: FUNCTION; Schema: public; Owner: dbmail
--

CREATE FUNCTION on_message() RETURNS trigger
    AS $$declare
  mb dbmail_mailboxes;
  sb bigint;
  _from varchar;
  _fromuser varchar;
  _fromdomain varchar;
  _envelope_from varchar;
  _to varchar;
  _toname varchar;
  _subj varchar;
  _key varchar;
  _tmpl bigint;
begin
  perform warn('on_message ' || new.message_idnr);

  select into mb * from dbmail_mailboxes where mailbox_idnr=new.mailbox_idnr;
  perform warn(mb.owner_idnr || '/' || mb.name || '=' || mb.mailbox_idnr);
  if( mb.name != 'INBOX' )then
    perform warn('not inbox');
    return new;
  end if;
 
  select into _to toaddr from dbmail_tofield where physmessage_id=new.physmessage_id;
  select into _toname toname from dbmail_tofield where physmessage_id=new.physmessage_id;
-- <костыль>
  if not (select count(*)::integer::boolean from dbmail_aliases where deliver_to=mb.owner_idnr::varchar and alias=_to) then
    select into _to ccaddr from dbmail_ccfield where physmessage_id=new.physmessage_id;
    select into _toname ccname from dbmail_ccfield where physmessage_id=new.physmessage_id;
    if not (select count(*)::integer::boolean from dbmail_aliases where deliver_to=mb.owner_idnr::varchar and alias=_to) then
      _toname := '';
      select into _to userid from dbmail_users where user_idnr=mb.owner_idnr;
    end if;
  end if;
-- </костыль>
  select into _from fromaddr from dbmail_fromfield where physmessage_id=new.physmessage_id;
  select into _fromdomain substring(_from from '@(.*)');
  select into _fromuser substring(_from from '(.*?)@');

if not (select count(*)::integer::boolean from user_prefs where user_idnr=mb.owner_idnr and whitelist=true) then 
    return new;  -- Если вайтлист выключен, то записать во входящие
  end if;

  select into _envelope_from headervalue from dbmail_headervalue where (physmessage_id=new.physmessage_id) and (headername_id = 197);
  select into sb spambox from user_prefs where user_idnr=mb.owner_idnr;
perform warn('F='||_from||' T='||_to||' D='||_fromdomain||' U='||_fromuser);
  
if( select id::boolean from dbmail_whitelist where (user_idnr=mb.owner_idnr) and (
       mail=_from
    or mail='@'||_fromdomain
    or mail=_fromdomain
    or _from like '%.'||mail 
  ) limit 1 )then
    return new;   -- Если в локальном вайтлисте - записать в инбокс.
  end if;

  
  if (substring(_to from '@(.*)')=_fromdomain) 
     then  -- Если внутри домена
     if not (substring(_envelope_from from '@(.*)')=_fromdomain) 
       then -- и адрес на конверте не совпадает
       update dbmail_messages set mailbox_idnr=sb where message_idnr=new.message_idnr;  --то в спам
       end if;
     return new; -- а если совпадает, то в инбокс.
  end if;

if( select id::boolean from dbmail_whitelist where (user_idnr=3) and (substring(_envelope_from from '@(.*)')=_fromdomain)and (
       mail=_from
    or mail='@'||_fromdomain
    or mail=_fromdomain
    or _from like '%.'||mail 
  ) limit 1 )then
    return new;   -- Если в глобальном вайтлисте, и адрес на конверте совпадает - записать в инбокс.
  end if;


  if (_fromuser='mail.robot') then -- Если якобы от 'mail.robot'
       if (select count(*)::integer::boolean from domains where domainname=_fromdomain limit 1) then -- и из локального дмена
          if not (substring(_envelope_from from '@(.*)')=_fromdomain) 
             then -- Если адрес на конверте не совпадает
             update dbmail_messages set mailbox_idnr=sb where message_idnr=new.message_idnr;  --то в спам
             end if;
      return new; -- иначе во инбокс
    end if;
  end if;
      

  
perform warn('!-1-!');
    
    update dbmail_messages set mailbox_idnr=sb where message_idnr=new.message_idnr; -- все остальное в спам

    
  select into _subj subjectfield from dbmail_subjectfield where physmessage_id=new.physmessage_id;
  
  select into _tmpl template from user_prefs where user_idnr=mb.owner_idnr;
  perform warn('TMPL='||_tmpl);
  
  if (_toname='') then _toname=_to; end if;
  select into _key captcha(mb.owner_idnr,_from,_toname||' <'||_to||'>',_subj,_tmpl);
  insert into "captcha" ("key",message_idnr,"from","to") values (_key,new.message_idnr,_from,_to);

--  if( _from ~ '<' ) then select into _from substring( _from from '<(.*?>'); end if;
--perform warn('F='||_from);

  
  return new;
end;
$$
    LANGUAGE plpgsql;

ALTER FUNCTION public.on_message() OWNER TO dbmail;


Это сообщение отредактировал(а) gcc - 12.11.2010, 18:25
PM WWW ICQ Skype GTalk Jabber   Вверх
Zloxa
Дата 12.11.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Реализация прикладной логики на стороне бд ни коим образом не препятствует использованию ОРМ для реализации репрезентативного слоя.

Добавлено через 7 минут и 55 секунд
Хотя... возможно вру.
Я правильно припоминаю что некоторые ОРМ кэшируют данные и, если данные были модифицированы мимо этих ОРМ, они теряют согласованность?

Это сообщение отредактировал(а) Zloxa - 12.11.2010, 20:11


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Любитель
Дата 15.11.2010, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Zloxa @  12.11.2010,  20:06 Найти цитируемый пост)
Я правильно припоминаю что некоторые ОРМ кэшируют данные и, если данные были модифицированы мимо этих ОРМ, они теряют согласованность?

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

По теме против "логики на хранимках" приходят в голову следующии соображения:
  • Как бы то ни было, людей, хорошо разбирающихся с адвансед использованием СУБД мало. Если какой-т функционал в проекте понимает только один человек - это всегда плохо.
  • Проблема прозрачного горизонтального масштабирования. Да, кластеризация и партиционирование везде есть, но всё-таки это тяжело назвать действительно гибким решеним. В случае с "легковесным" (не рассчитанным на универсальность) аппликейшен сервером (ну и в сочетании с какой-нибудь распределённой системой кеширования) всё гораздо проще (понятное дело, что всё равно масштабируемость надо учитывать - сама она ниоткуда не возьмётся).

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


--------------------
PM MAIL ICQ Skype   Вверх
Zloxa
Дата 15.11.2010, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(Любитель @  15.11.2010,  02:58 Найти цитируемый пост)
Как бы то ни было, людей, хорошо разбирающихся с адвансед использованием СУБД мало. Если какой-т функционал в проекте понимает только один человек - это всегда плохо.

Недопущение концентрации компетенций в одном ресурсе это управленческая проблема - не техническая.

Но тут... конечно мое мнение субъективно, но реализованная средставами БД логика, как правило, имеет легко выявляемые жесткие связи, что позволяет разобраться в ней куда проще, нежели в никак не связанных svn, war и бд. Это, конечно более характерно для саппорта, нежели девелопмента. Стык девелопмента с саппортом, как правило, имеет много организационных лакун. Логику, реализованную в бд, мне кажется, намного проще забрать на саппорт ввиду ее гомогенности.
Цитата(Любитель @  15.11.2010,  02:58 Найти цитируемый пост)
Проблема прозрачного горизонтального масштабирования.

Да, у меня были мысли относительно того, что один апп может держать одновременный коннект многим бд.
Тут две ветки рассуждений
1) Апп может работать с разнородными БД. В этом случае апп выступает в роли надстройки и пользует интерфейсные функции прикладного слоя, который с тем же успехом может быть реализован ХП.
2) Апп может работать с однородными БД, распределяя нагрузку между ними. Тогда апп действительно придется на себя забрать огромный ломоть прикладной логики. Но, вместе с тем, придется на себя забирать и обеспечение согласованности данных между разными инстансами - имхо весьма, и весьма скользкая и ответственная задача.

Для реализации этого самого горизонтального масштабирования средствами БД, если там применим воркфлоу подход, вполне может оказаться пригодной технология Oracle streams AQ

Это сообщение отредактировал(а) Zloxa - 15.11.2010, 11:32


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Zloxa
Дата 15.11.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(Zloxa @  15.11.2010,  11:21 Найти цитируемый пост)
Логику, реализованную в бд, мне кажется, намного проще забрать на саппорт 

Подумалось вот.
Это может работать как в плюс, так и в минус.
Для аутсорсящей компании, в случае, если инхаус заказчика сможет разобраться в логике и забрать на себя саппорт, это будет эпик фейл.
Но это тоже не техническая проблема, скорее показатель ее отсутствия.

Это сообщение отредактировал(а) Zloxa - 15.11.2010, 11:57


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Любитель
Дата 15.11.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Zloxa @  15.11.2010,  11:21 Найти цитируемый пост)
Недопущение концентрации компетенций в одном ресурсе это управленческая проблема - не техническая.

Ну.. Просто со статистикой приходиться мириться. Людей хорошо разбирающихся в базах мало.

Цитата(Zloxa @  15.11.2010,  11:21 Найти цитируемый пост)
svn, war и бд.

Не понял, что это значит.

Цитата(Zloxa @  15.11.2010,  11:21 Найти цитируемый пост)
Апп может работать с однородными БД, распределяя нагрузку между ними.

Я имел ввиду в первую очередь этот кейс. У нас возросло на порядок количество юзеров и мы справляемся с этим, просто добавив машины (ну, я условно).

Цитата(Zloxa @  15.11.2010,  11:40 Найти цитируемый пост)
Для аутсорсящей компании, в случае, если инхаус заказчика сможет разобраться в логике и забрать на себя саппорт, это будет эпик фейл.

Ну, здесь я не вижу проблемы smile Если у компании есть технические специалисты, то саппортить код самого приложения они точно также смогут (предполагается само собой, что исходники у них есть).


--------------------
PM MAIL ICQ Skype   Вверх
Zloxa
Дата 15.11.2010, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(Любитель @  15.11.2010,  11:47 Найти цитируемый пост)
Цитата(Zloxa @  15.11.2010,  11:21 )
svn, war и бд.

Не понял, что это значит.

Ну я, пожалуй, в действительности, не обладаю достаточным количеством компетенций, чтобы манипулировать этим термином.
Наверное следовало бы перечислить: Исходный код, исполняемый код, структура бд.

Я имел в виду то, что согласованность этих трех составляющих обеспечивается лишь организационно, жестких связей нет, и в условиях недостаточной организованности(бардака, присущего многим) никогда нельзя поручиться в соответствии исполняемого кода исходному, в соответствии весии БД исполняемому.

В отличии от прикладной логики, реализованной средствами БД. Наличие жестких связей может не позволить скомпилировать процедуру для версии бд не совместимой с версией процедуры. Исходный код процедур скрывается редко, а, значит, если он не скрыт, забрав исходник с прода ты можешь быть уверен что работаешь именно с боевым кодом, а не с устаревшей или же  с неутвержденной версией.

Это сообщение отредактировал(а) Zloxa - 15.11.2010, 12:50


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1275 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.