Personal Pascal Peas

Планы, идеология, архитектура и т.п.

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

Re: Personal Pascal Peas

Сообщение alexs » 29.06.2012 10:41:37

B4rr4cuda
Самое главное, чтобы вся логика не ушла на эту прослойку.
Если всё выродится в то, что данные тупо выкачиваются из сервера данных на уровень сервера приложений - будет очень плохо.
Нормальные СУБД позволяют провести первичную подготовку данных (сортировку, отбор, преобразование). А задача сервера приложений - агрегировать эти заготовки (хорошо урезанное подмножество непосредтвенно необходимых в данный момент времени данных) в представление конечного пользователя.
Я согласен, что если сверлить дырку начали на сервере СУБД - а закончили на сервере приложения - это бред.
Kemper
Вы не согласны?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Personal Pascal Peas

Сообщение Brainenjii » 29.06.2012 10:57:58

alexs: а если аккуратно? Мне удобнее работать с кошерным классом, с полями и методами, а не с датасетом с GetFieldByInteger['FIELDNAME']. Сильно удивлюсь, если кто-то предпочитает наоборот (какой бы удобной обертка над датасетом не была). Ещё раз, я не преследую цели абстрагироваться от СУБД полностью. Но обернуть некоторые постоянно нужные объекты в, собственно, объекты - это удобно. И изменять эту обёртку в одном месте вместо 2-3-n - удобнее.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Personal Pascal Peas

Сообщение alexs » 29.06.2012 14:35:09

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

Лично я предпочитаю наследника от TDataSet для работы с набором данных и наследника от TField для работы с единичными значеними полей.
Во время создания программы ложим датасет, дважды щёлкаем по нему - создаем объекты полей. Всё. Весь интерфейс работы с БД готов. Мне не надо заботиться о том, как загрузить правильно обявить объекты данных, название полей объектов, процедуры загрузки данных....
А рисование ГУИ пользователя - вам тоже надо вручную все поля инициализировать. А затем надо ещё и сохранить изменения...

Я только пишу SQL запрос и всё. Механизмы уже созданы для всех операций.
В чём простота вашего метода - я не могу понять.
Brainenjii писал(а):GetFieldByInteger['FIELDNAME']

А это что за заверь? Из UIB?
PS
А ещё есть один фактор - что скажет тот человек, который прийдёт на сопровождение вашего кода после вас? Каким он словам помянёт вас, когда ему надо будет разбираться в не стандартных вещах.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Personal Pascal Peas

Сообщение stikriz » 29.06.2012 15:00:13

alexs писал(а):Зачем нужен промежуточный слой переработки данных?

А что Вы думаете о таких системах, как 1С, например? Почему они делают трехзвенку, да еще полностью отгораживают разработчика от БД?
Всегда было интересно узнать мнение по этому поводу.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Personal Pascal Peas

Сообщение Brainenjii » 29.06.2012 15:19:22

Вам никто ничего не запрещает тут. Вам просто рекомендуют.
Спасибо ^_^ Просто соседним топиком расстроили ^_^
Механизмы не совсем мои. Как весьма точно отметил vada в одном из древних моих постов - я пытаюсь повторить EJB. И чем больше читаю про EJB - тем больше нравится.
По поводу TDataSet - у меня нет форм, двойный щелчков и т.п. ^_^ Но выходит,при этом, не менее гибко и вкусно (как мне кажется, попробую примерчик небольшой накидать в ближайшее время). Проблема в том, что то что я тут публикую (ppp, DojoPas) - это попытка переделать инструменты, используемые в работы, отвязав от привязки к нашим реалиям. Так что я точно знаю, что то что я хочу сделать - сделать можно, но мотивировать себя пилить то, что уже когда-то было сделано (пусть и кривовато и недальновидно) - сложно ^_^
Простота моего метода только в планах и вебе ^_^ Возьмём таблицу в Dojo/ExtJS. Задача ppp - преобразовать запрос из браузера в JSON представление... И не только.... Вот кусок из рабочего проекта
Код: Выделить всё
Function BFeaturesControllerClass.GetItemsJSON(Const aFeatureID: Integer;
  Const aCallback: String; Var aErrorInfo: BErrorInfoRec): String;
Var
  i: Integer;
  aFeature: BFeatureClass;
  aItems: BFeatureItemClass;
Begin
  Result := '';
  aFeature := bManager.GetObject(aFeatureID);;
  MIf(aFeature = nil)MThen(148, 'Unable find Feature')MExit;
  With aFeature.Items.LockList Do
    Try
      For i := 0 To Count - 1 Do
        AppendCommaString(Result, '{%s}', [bItemsController.GetJSON(Items[i])]);
    Finally
      aFeature.Items.UnlockList;
    End;

  Result := Format('[%s]', [Result]);
  If Not(aCallback = '') Then
    Result := PrepareJSONP(aCallback, Result);
End;

На вход принимаю ID одного объекта и возвращаю все входящие в него другие. Практически весь код, реализующий это сгенерирован автоматически. Остаётся только сделать формочку, указав - из каких методов соответствующего контроллера ей брать данные.

УПД: 1С отгораживают разработчика от БД только формально. На самом деле разработчики 1С в итоге все-равно формирует те же запросы. Вот задача PPP - отгородиться чуть дальше на тривиальных задачах ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Personal Pascal Peas

Сообщение stikriz » 29.06.2012 15:22:25

Brainenjii писал(а):1С отгораживают разработчика от БД только формально. На самом деле разработчики 1С в итоге все-равно формирует те же запросы.

Только в отчетах, к тому-же точечная нотация позволяет не писать кучу джоинов. И создание-изменение объекта - никаких DDL
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Personal Pascal Peas

Сообщение Brainenjii » 29.06.2012 15:41:22

в каком месте только в отчетах? Проверить есть ли остаток на складе - прошу пожалуйста, пишите запрос. Никаких DDL - это да, согласен.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Personal Pascal Peas

Сообщение stikriz » 29.06.2012 16:09:58

Фильтр = Новый Структура;
Фильтр.Вставить("Склад", ВыбСклад);
Остатки = РегистрыНакопления.ТоварыНаСкладах.Остатки(Дата, Фильтр, "Номенклатура", "Количество");
Для каждого ...
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Personal Pascal Peas

Сообщение Brainenjii » 29.06.2012 16:23:11

Хм, может быть ^_^ Я видел только то, как пишут наши 1Сники. Вроде как у них на каждый чих запрос. Если так, и всё можно сделать без "формирователя запросов" - снимаю шляпу ^_^
Последний раз редактировалось Brainenjii 29.06.2012 16:47:35, всего редактировалось 1 раз.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Personal Pascal Peas

Сообщение stikriz » 29.06.2012 16:23:55

С запросом, конечно, лучше, но и так можно.

Добавлено спустя 28 секунд:
Да, конструктор запросов там очень даже ничего
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Personal Pascal Peas

Сообщение alexs » 29.06.2012 19:53:58

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

Это говорит о том, что система расчитана в основной массе на низкоквалифицированных сопровождающих.
К тому же в большинстве своём травмированных продуктами MS.
И, несмотря на это, сейчас рускоязычные форумы по Postgres (а ранее по MS SQL) забиты людьми, которые паются написать простейшие запросы к БД.
Это тоже наверное не просто так.

А насчёт трехзвенки - она в первую очередь расчитана на балансировку нагрузки, размазать загруженность сервера данны на сервера приложений.
И ещё одно важное применение 3-х звенки - снизить стоимость владения комерческим SQL сервером.

Массовое увлечение трёхзвенкой, на мой взгляд - дань моде. В большинстве своём обычная двухзвенка закрывает 99% всех пишущихся сейчас нормальных систем.
По поводу трёхзвенки для веб:
Веб-морды - это конечно хорошо. Но уровень удобства на полноценных программах гораздо выше, чем на веб-мордах. И создание таких систем для внутреннего применения - палка о двух концах.
По крайней мере - мой крупный заказчик и не думает переводить свою основную систему на веб-морды. Эксперементы показали - скорость работы конечного пользователя снижается на порядок в этом случае.
Brainenjii писал(а):Спасибо ^_^ Просто соседним топиком расстроили ^_^

В ходе обсуждений здась никто не стремится никого обидеть. Просто тут собрались реальные разработчики, которые дают советы для решения реальных проблем. И высасыванние проблем на ровном месте просто не понимается.
PS
Прошу прошения, если задел кого либо своими высказываниями.
PPS
Оба топика можно смело переносить в раздел "Потрепаться" :D
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Personal Pascal Peas

Сообщение B4rr4cuda » 29.06.2012 19:58:26

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

Полностью согласен, во всем нужна мера..
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Personal Pascal Peas

Сообщение stikriz » 30.06.2012 13:21:30

alexs писал(а):И ещё одно важное применение 3-х звенки - снизить стоимость владения комерческим SQL сервером

Это не так. Все лицензионные соглашения учитывают возможность получение денег со всех конектов в трезвенке.
alexs писал(а):Это говорит о том, что система расчитана в основной массе на низкоквалифицированных сопровождающих.

Ладно, все понятно :-) Если честно, я не считаю, что люди, которые делают на 1С круаные внедрения имеют низкую квалификацию. Конечно, это не касается франчайзи, которые только бегают устанавливать обновления.
alexs писал(а):в результате вот такой конструкции к базе полетит реальный запрос?

Конечно, запрос. Описания описаний помогает легко автоматом составлять нужные запросы.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Personal Pascal Peas

Сообщение alexs » 30.06.2012 14:01:44

stikriz писал(а):Это не так. Все лицензионные соглашения учитывают возможность получение денег со всех конектов в трезвенке.

Конектов к серверу СУБД. А их будет меньше, чем конектов к серверу приложений.
stikriz писал(а):Если честно, я не считаю, что люди, которые делают на 1С круаные внедрения имеют низкую квалификацию.

Вот за свою практику не видел действительно крупных фирм, которые сидят на 1С. Максимум её полностью конфигурят под себя. Обычно - либо своя разработка, либо специальное заказное ПО. А удел 1С - мелкий бизнес и фирмы однодневки.
stikriz писал(а):Конечно, запрос. Описания описаний помогает легко автоматом составлять нужные запросы.

Ну это уже радует.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Personal Pascal Peas

Сообщение stikriz » 30.06.2012 18:37:47

alexs писал(а):Конектов к серверу СУБД. А их будет меньше, чем конектов к серверу приложений.

Последний раз лицензионное с оглашение на СУБД, а именно MS SQL я читал лет десять назад тому. Так вот, там оговаривается именно количество пользователей, и оговаривается, что независимо как они подключаются - сами через коннект или через другое приложение. Хотя, сейсас у Билли столько вариантов лицензий, что только специально обученый человек разберется в это херне :-) Кстати, курсы специальные есть по лицензированию.
alexs писал(а):Вот за свою практику не видел действительно крупных фирм, которые сидят на 1С.

Это ошибочное мнение. С выходом восьмерки все изменилось. Наоборот, такие крупные игроки, как Scala, RM, Галактика с Парусом уходят потихоньку. Самописные - это когда сидят программеры на зарплате и пишут для своей фирмы? Вот, только не бухгалтерию. Замучаются себестоимость считать :-)
Если переписывать стандарт, то со временем, становится слишком трудоемко ставить обновления. Такая стратегия обречена на провал. Стараются дописать свои объекты так, чтобы не трогать остальное. Это самый большой косяк 1С - нет наследования.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru