powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Серверная и клиентская логика - где граница?
72 сообщений из 72, показаны все 3 страниц
Серверная и клиентская логика - где граница?
    #33425564
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где, по вашему, пролегает граница между серверной и клиентской логикой? Какие функции целесообразно переносить на клиента, какие оставлять на сервере?
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33425625
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGГде, по вашему, пролегает граница между серверной и клиентской логикой? Какие функции целесообразно переносить на клиента, какие оставлять на сервере?

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

Лично для себя определил критерий "не правильной архитектуры" :
- если код усложняется, см. разбиение функционала между клиентом и серваком.
Есть конечно же рамки, в которых и "плаваешь". Например тонкий клиент... Либо база такая-то. Либо язык реализации такой-то.

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


с уважением
(круглый)
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33425738
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторГде, по вашему, пролегает граница между серверной и клиентской логикой? Какие функции целесообразно переносить на клиента, какие оставлять на сервере?
Все, что можно, должно обрабатываться на сервере.
Все остальное, но не более 10% :) - на клиенте.

-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33425818
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGГде, по вашему, пролегает граница между серверной и клиентской логикой? Какие функции целесообразно переносить на клиента, какие оставлять на сервере?Действительно, формально определить границу очень сложно, но все то, чем стоит управлять централизованно (ограничения целостности, общие для многих клиентов расчетные алгоритмы и т.п.) стоит держать на сервере. По максимуму возможного.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426186
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну граница-то понятна. По принципу, где код выполняется. А вот что серверу, а что клиенту - интересный вопрос.

Больше всего меня всегда напрягает, где делать проверку корректности данных. С одной стороны, если делать на сервере, то возникает лишний трафик и телодвижения сервера. И пользователю неудобно. Я могу перехватить сообщение об ошибке и внятно объяснить в чем юзер не прав, но юзер зря тратит время. С другой стороны, зашитые на клиенте правила могут и измениться. Часто делаю компромис. Проверка заполнения обязательных полей - на клиенте. Проверка условно-постоянных диапазонов значений - на клиенте. Это вроде, что не может быть 25-го месяца.
Но все больше и больше принимаю принцип препроверки на сервере. После изменения какого-то поля на форме идет запрос на сервер, который и выдает ответ - можно или не
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426229
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-во, меня тоже напрягает... Поэтому ВСЕ проверки я решил перенести на сервер... Чтобы сохранить целостность базы. А на клиенте, да, остается проверять только 25 месяц :-)
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426362
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Больше всего меня всегда напрягает, где делать проверку корректности данных.Мое мнение и практика таковы. Проверку корректности надо делать и на сервере, и на клиенте. Проверка на сервере -- это последний "бастион" на пути некорректных данных. Ведь данные на сервер могут попадать в обход данной клиентской программы: через другие виды клиентских приложений, да тупо через программы администрирования (типа QA или EM в MS SQL Server), а DBA -- он тоже человек, может легко ошибиться. Кроме того, клиентская программа не сразу рождается отлаженная и правильная. Пока ее отлаживают, она может из-за ошибок всякого трэша в БД навалить. А если сервер проверяет ОЦ, то он многие ошибки сразу обломит. Да ведь и отлаживать клиента насколько легче: прилетел эксепш от СУБД: вот она, ошибочка, сядем да код поправим. А если СУБД ошибки не сигналит, то их и на клиенте поди найди, в сто раз дольше и сложнее.

В то же время максимум ошибок надо отсекать сразу на клиенте. Уменьшается траффик (некоррентные данные на СУБД не летят, ошибка обратно не летит), экономится время. Да и пояснения об ошибке на клиенте можно сделать куда как более понятные и наглядные пользователю, чем невнятное (и часто англоязычное) сообщение с сервера. Хотя наилучший вариант --- чтобы некоррентные данные вообще было нереально ввести и невозможно даже отправить на сервер.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426583
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО есть и такой аспект. Для чего пишется программа - для себя и под себя или на продажу. Т.е. контролирую ли я ситуацию с программой/БД на 100% или не контролирую вовсе. Если первое, то граница в принципе умозрительна. Если второе, то желательно по максимуму выносить все на сервер.
Опыта "продажных" программ у меня меньше, чем "для себя" (АСУчивал родную контору), поэтому я для себя выделил такое "правило". Сравниваются объемы инфы на входе функции и на выходе. Чем больше на входе и меньше на выходе тем больше нужность вынесения этого на сервер - типа экономия трафика и все такое. Повторюсь, это для ситуации, когда я полностью контролирую и базу и программу.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426627
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно что угодно делать - писать тиражные продукты или под себя, пытаться экономить трафик (интересно как это можно сделать, перенося логику проверок и расчетов на клиента), делать еще что то - но есть очень важное правило - целостность, правильность и непротиворечивость данных должна быть гарантирована на уровне сервера. И точка. Иначе потом приходится видеть программы, где сальдо противоречит приходу и расходу, где в таблицах лежат данные, которых просто быть не может. Я всегда делаю просто:
1. Сервер последняя инстанция - вся логика проверок и расчетов лежит только на нем. Так же это правило гарантирует защиту не только от ошибок юзеров, но и от ошибок в клиентском приложении, т.е. от кодеров и является для них тестом на корректность работы клиента.
2. В клиентское приложение встраиваю только логику проверок и только в рамках правил, что эта логика во первых не усложняет код клиента, во вторых не дает нагрузок на сервер, в третьих позволяет сминимизировать откаты транзакций, т.е. неудачных сохранений. В остальных случаях, если хотя бы один пункт нарушен, я отдаю проверки на сервер, таким образом экономя время разработки клиента и его стоимость разработки сопровождения.

P.S. Ну а насчет трафика - что то я не очень понимаю, какой такой трафик ? Юзеры что, со скоростью миллион записей в секунду данные вносят ? Получили набор данных, провели все нужные изменения в режиме отложенных изменений, в рамках транзакции сохранили все изменения. Трафик на сессию минимальный. У меня лично клиентские приложения вполне спокойно себя чувствуют при работе с удаленными серверами через GPRS посредством интернета, с включенным режимом криптографии и сжатии протокола на СУБД.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426721
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Не все действия с БД влияют на целостность. Например несложный расчет чего либо может лопатить пол базы и выдавать одну страницу отчета. Тут прямая дорога выполнять это на серваке.
Для другого отчета требуемой информации может быть примерно столько, сколько и выдаваемой, но сам расчет трудоемкий. Я не вижу причины, что бы не забрать инфу с сервера на клиента и крутить там сколько вздумается не мешая остальным.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33426750
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега ASCRUS
Не все действия с БД влияют на целостность. Например несложный расчет чего либо может лопатить пол базы и выдавать одну страницу отчета. Тут прямая дорога выполнять это на серваке.
Для другого отчета требуемой информации может быть примерно столько, сколько и выдаваемой, но сам расчет трудоемкий. Я не вижу причины, что бы не забрать инфу с сервера на клиента и крутить там сколько вздумается не мешая остальным.
Если логика не влияет на целостостность данных - те же отчеты, то они и должны крутиться на клиенте. Здесь сервер участвует ровно настолько, чтобы клиентское приложение не замучало его серией запросов - легче написать одну ХП, чем для подготовки данных для построения отчета посылать серию запросов на сервер, которые не только влияют на производительность и нагрузки сервера, но еще и такие важные вещи, как блокировки в зависимости от уровеня изоляции. А вот все остальное должен делать исключительно клиент - было бы дико пытаться на сервере построить тот же кросстаб, вместо того, чтобы отдать это на откуп отчетнику.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33428028
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ASCRUS.
Целостность и непротиворечивость - священная корова. И разумеется ее должен обеспечивать сервер. Но есть и другой род ошибок пользователя - недопустимые по бизнес-логике значения. Многие из них можно, и на мой взгляд нужно, отлавливать еще на клиенте. Допустим, моя прога введена в эксплуатацию в 2005 году. Следовательно даты текущих операций могут быть не менее 20050101 и не более сегодняшнего дня. Почему бы это не проверить на клиенте? Что бы юзер не ввел дату 01.01.0200. Причем эта дата вполне корректна и никак не влияет на целостность и безопасность. Или если юзер не ввел обязательного значения, то это ему вполне может напомнить клиент.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33428071
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2ASCRUS.
Целостность и непротиворечивость - священная корова. И разумеется ее должен обеспечивать сервер. Но есть и другой род ошибок пользователя - недопустимые по бизнес-логике значения. Многие из них можно, и на мой взгляд нужно, отлавливать еще на клиенте. Допустим, моя прога введена в эксплуатацию в 2005 году. Следовательно даты текущих операций могут быть не менее 20050101 и не более сегодняшнего дня. Почему бы это не проверить на клиенте? Что бы юзер не ввел дату 01.01.0200. Причем эта дата вполне корректна и никак не влияет на целостность и безопасность.Или если юзер не ввел обязательного значения, то это ему вполне может напомнить клиент.
Пожалуйста, я только ЗА - если проверка даты текущих операций не повлечет за собой сложные или частые запросы на сервер, пусть клиент проверяет. А вот если повлечет, то сервер по любому проверять будет - не стоит его дважды загружать одной и той же работой, которая сказывается на ресурсах, производительности или блокировках. Ну а проверить корректность даты, обязательное поле, сделать Lookup, чтобы клиент не мог внести неправильного FK и прочее - это локальное и само собой разумеющееся, странно было бы видеть клиентское приложение, которое бы этого не делало, тут даже интернет-приложения стараются следовать этим правилам, хотя это и усложняет разработку на том же PHP из за ввода в HTML проверок на JavaScript и я считаю это усложнение в таких случаях оправданным.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33432513
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirМое мнение и практика таковы. Проверку корректности надо делать и на сервере, и на клиенте.
Поддерживаю. Я придерживаюсь следующего принципа: то, что можно достаточно легко проверить на клиенте, должно быть проверено на клиенте. Есть проверки, которые можно сделать только в ходе выполнения операции; такие, разумеется, нужно делать на сервере в ходе выполнения хранимки и возвращать как исключения.

Возврат с сервера ошибки типа foreign key not found, unique constraint violation итп. я рассматриваю как безусловную ошибку в программе. То есть такие оборачиваются в исключение типа internal application error и никак специально не укращаются (не переводятся на русский итп); если для кого они и предназначены, то для администратора и разработчика.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33433759
Фотография msn13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra авторГде, по вашему, пролегает граница между серверной и клиентской логикой? Какие функции целесообразно переносить на клиента, какие оставлять на сервере?
Все, что можно, должно обрабатываться на сервере.
Все остальное, но не более 10% :) - на клиенте.

-- Tygra's --
не соглашусь.
нужно помнить что ввиде сервака может выступать простой комп, который просто засыпиться если на него все свалить!
полностью соглашусь с softwarer, что легко пролетит на клиенте , несколько секунд, то и пуска на клиенте вариться...
хотя аспектов дествительно дофига и нужно смотреть в конкретном случае.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33433800
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
msn13. Зря не соглашаетесь. Окончательную проверку должен делать сервер. А клиент - только первая линия обороны.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33433803
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msn13нужно помнить что ввиде сервака может выступать простой комп, который просто засыпиться если на него все свалить!
Может тогда вспомним 486 компьютеры в виде клиентов? :))

msn13 полностью соглашусь с softwarer, что легко пролетит на клиенте , несколько секунд, то и пуска на клиенте вариться...
Он говорил про проверки , а не про все вообще

авторхотя аспектов дествительно дофига и нужно смотреть в конкретном случае.
Нет таких аспектов. Dculf один и тот же подход

-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33433808
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очепятка:

Всегда один и тот же подход


-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33433820
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с тигрой и ASCRUS.
Весь контроль д.быть на сервере и кое что дублировано на клиенте. Представьте ситуацию, когда контроль находится клиенте и появляется новое приложение, написанное не вами на ту же БД. Или Вы уволились и старого клиента модифицирует кто-то менее грамотный, чем вы.
О дубле контроля в клиенте - исключительно из уважения к юзеру. Можно давать более понятные сообщения - сервер не знает что видит юзер, а клиент знает. Контроль в клиенте позволяет делать более ранние перехваты ошибок юзера.
Что касается запросов, в клиенте стоит оставлять только мелочишку, остальное - на сервер - получается гораздо себе дешевле.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33434310
Фотография msn13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2msn13. Зря не соглашаетесь. Окончательную проверку должен делать сервер. А клиент - только первая линия обороны.
обана, а где сказано про проверки? я имел ввиду всю логику
>tygra
Он говорил про проверки, а не про все вообще.
ну здесь я имел ввиду идею, что не фиг все валить на сервак

а 486 можно и не вспоминать, у нас например пень2,4 с озу 2Г(раньше был 1Г) и постоянно забит на 70-80 %....
так что и это надо учитывать (пусть это и будет единственный аспект )
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33434920
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, по поводу создания внятных сообщений на клиенте - все можно и на сервере:
так как все операции ч/з ХП, то в них в блоке обработки исключений (Oracle - правда говорят, что теперь и в Юконе исключения появились) вызывается процедура условно названная SendUserError, в которую передается код исключения. Она лезет в таблицу, а далее делает raise_application_error с понятным пользователю сообщением. На клиенте в обработчике ошибок вырезается из него служебная инфа (ORA-<код ошибки>:) и пользователь видит понятное сообщение об ошибке на нужном ему языке.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435000
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msn13ну здесь я имел ввиду идею, что не фиг все валить на сервак
А зачем тогда он по вашему нужен, сервак то?

-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435268
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2msn13. Зря не соглашаетесь. Окончательную проверку должен делать сервер. А клиент - только первая линия обороны.
А практикуется ли третья линия обороны? она должна быть точно на сервере (на каком-то сервере - веб, СУБД, приложений, etc - это вопрос архитектуры), но выполняется фоново, так как ее проверки связаны с проверкой семантических связей, неявных. Когда связь между данными из разных СУБД, когда одно то же поле может быть идентификатором разных таблиц (возмжно хранящися в разных СУБД). Вот руки никак не доходят сделать такие проверки системными. Они носят у нас скорее отрывочный характер.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435597
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2msn13. Зря не соглашаетесь. Окончательную проверку должен делать сервер. А клиент - только первая линия обороны.
Безусловно. И чем это "зря не соглашаетесь"?

Я бы сказал, клиент - первая и основная линия обороны, сервер - в основном резервная. Проверки на сервере защищают в первую очередь от ошибок программиста, от сопровождающих, лезущих в базу мимо сервера итп. Вообще говоря в нормальной ситуации эти проверки срабатывать не должны, исключая те самые отдельные проверки, которые делать на клиенте плохо и не удобно. В принципе может быть поставлен вопрос о последующем отключении проверок на сервере в целях быстродействия.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435613
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockКстати, по поводу создания внятных сообщений на клиенте - все можно и на сервере:
Теоретически - можно, практически - плохо. Например, форма ввода данных состоит из нескольких страниц (закладок); если параметры введены с ошибкой, клиентское приложение должно переключиться на соответствующую закладку, поставить курсор на соответствующее поле ввода и написать что-нибудь типа "дата должна быть не раньше 01.01.2000". Если проверка данных идет на сервере, реализовать соответствующую механику становится довольно напряжно.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435787
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНапример, форма ввода данных состоит из нескольких страниц (закладок); если параметры введены с ошибкой, клиентское приложение должно переключиться на соответствующую закладку, поставить курсор на соответствующее поле ввода и написать что-нибудь типа "дата должна быть не раньше 01.01.2000".
У нас например каждая страница с данными обрабатывается отдельно. При открытии многостаничной формы из базы насасывается информация о доступности и обязательности полей. Соответственно доступные поля становятся с белым а обязательные с желтым фоном.

При сохранении формы скрипт пробегает по настройкам переключая страницы и выставляя фокус на поля которые не были заполнены с предложением ввести данные. Потом если все норматьно открывается транзакция и данные начинают постранично сохраняться в базе, в этот момент срабатывают проверки сервера, при получении сообщеня об ошибке фокус переходит на ошибочную страницу, транзакция откатывается и выдается сообщение об ошибке.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435802
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по поводу основного вопроса я считаю "Все что можно перенести на сервер, должно быть там" ИМХО.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33435983
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsУ нас например каждая страница с данными обрабатывается отдельно.
То есть бизнес-логика, серверная часть зависит от интерфейса? Если завтра клиент скажет "вот эти данные, пожалуйста, заузьте и поместите на одной странице, а вот здесь, наоборот, сделайте побольше места и раскидайте на две" - вы сядете менять серверный код?

Estets
При открытии многостаничной формы из базы насасывается информация о доступности и обязательности полей. Соответственно доступные поля становятся с белым а обязательные с желтым фоном.
То есть часть проверок таки делается на клиенте.

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

Estetsпри получении сообщеня об ошибке фокус переходит на ошибочную страницу,
То есть, насколько я понимаю, уже на страницу, а не на конкретный элемент. И цена этого - структура бизнес-логики, жестко завязанная на структуру интерфейса, что само по себе плохо.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436107
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Cat2msn13. Зря не соглашаетесь. Окончательную проверку должен делать сервер. А клиент - только первая линия обороны.
Безусловно. И чем это "зря не соглашаетесь"?

Я бы сказал, клиент - первая и основная линия обороны, сервер - в основном резервная. Проверки на сервере защищают в первую очередь от ошибок программиста, от сопровождающих, лезущих в базу мимо сервера итп. Вообще говоря в нормальной ситуации эти проверки срабатывать не должны, исключая те самые отдельные проверки, которые делать на клиенте плохо и не удобно. В принципе может быть поставлен вопрос о последующем отключении проверок на сервере в целях быстродействия. На клиенте плохо и не удобно делать любые проверки, связанные с состоянием БД в части "быстро" меняющихся данными. Например логично на клиенте закешировать справочник валют, и там пресекать дублирование, ( в купе с кнопкой "перечитать кеш справочников" ). А вот дублирование скажем материалов есть смысл проверять только на сервере. Пока я проверяю на клиенте, ситуация на сервере уже опять могла измениться. Поэтому для таких проверок сервер - единственная линия обороны.
Конечно все, что можно, отсечь на клиенте, нужно делать там, но и то в две "подлинии обороны". Когда выполнять проверку Дата начала <= Дата окончания.? Очевидно, только когда пользователь нажмет OK или что-то подобное, сигнализируя об окончании работы со всем документом, формой в целом.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436290
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraВсе, что можно, должно обрабатываться на сервере.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436296
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraВсе, что можно, должно обрабатываться на сервере.
Я б сказал так: все, для чего приспособлен сервер, должно обрабатываться на сервере.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436405
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНа клиенте плохо и не удобно делать любые проверки, связанные с состоянием БД в части "быстро" меняющихся данными.
Я нисколько не оспариваю наличие проверок, которые не стоит делать на клиенте - наоборот, изначально и специально их упомянул. Состав и примеры - можно обсуждать, но стоит ли?

ModelRКонечно все, что можно, отсечь на клиенте, нужно делать там, но и то в две "подлинии обороны". Когда выполнять проверку Дата начала <= Дата окончания.? Очевидно, только когда пользователь нажмет OK или что-то подобное, сигнализируя об окончании работы со всем документом, формой в целом.
Безусловно. С моей точки зрения, идеальное место такой проверки - TDataSet.BeforePost (если знакомы с Delphi).
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436412
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема эта актуальна когда сервер и клиент пишутся на разных языках.
А вот для pl/sql все пишется универсально а размещается в зависимости от ситуации. В большинстве случаев - на сервере, но при ОЧЕНЬ большом числе пользователей сервер БД надо макс разгружать и приходится все тащить на клиента.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436428
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модПроблема эта актуальна когда сервер и клиент пишутся на разных языках.
Никакой разницы.

модА вот для pl/sql все пишется универсально а размещается в зависимости от ситуации....
Странно, но почему-то несколько раз, когда в форуме Oracle поднимались вопросы "как сделать", оказывалось, что "клиентский pl/sql" не поддерживает более чем обычных возможностей "pl/sql серверного".
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436494
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ModelRНа клиенте плохо и не удобно делать любые проверки, связанные с состоянием БД в части "быстро" меняющихся данными.
Я нисколько не оспариваю наличие проверок, которые не стоит делать на клиенте - наоборот, изначально и специально их упомянул. Состав и примеры - можно обсуждать, но стоит ли? Это про то, что на клиентская линия обороны - основная. Какая же она основная если дырявая? От этих эпитетов одни недоразeмения:).
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33436497
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRЭто про то, что на клиентская линия обороны - основная. Какая же она основная если дырявая?
Если верить книгам про войну, то за линию фронта чуть ли не каждую ночь ходили разведгруппы и прочие партизаны. Что не мешало иметь ей быть "основной" :))

ModelRОт этих эпитетов одни недоразeмения:).
Факт :)
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33437603
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> ModelR
> Это про то, что на клиентская линия обороны - основная. Какая же она
> основная если дырявая?
>
>
> Если верить книгам про войну, то за линию фронта чуть ли не каждую ночь
> ходили разведгруппы и прочие партизаны. Что не мешало иметь ей быть
> "основной" :))

да с какой такой стати клиент - основная линия обороны? клиент тогда-уж
- охранник при входе в банк, который не пустит унутрь какого-нить бомжа
бухого...

Вот есть у меня документ "Реестр квитанций". при создании на сервере
проверяется, что заполнены такие-то поля, сумма и количество квитанций -
положительные и прочая лабуда. Для создания есть проца.
Ага, могу и на клиенте проверить - всё ли ОК.
А теперь появился документ "Выписка банка"... и вот, при подписи выписки
надо, чтобы по каждой строке выписки создавался "реестр квитанций"...
И что? теперь мне надо учить банковскую выписку тому, что должно быть
заполнено в реестре? Ить проверки то на клиенте?
Или проца по созданию реестра (которой плевать, откель мы реестр создаем
- с клиента, из другого документа) проверит всё необходимо и в случае
ошибки даст отлуп? Типа, сосредоточим управление в одном узле, а не
размажем его по системе?
--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33437706
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer модПроблема эта актуальна когда сервер и клиент пишутся на разных языках.
Никакой разницы.
перетащите t/sql на клиента или VB на сервер :)

softwarerСтранно, но почему-то несколько раз, когда в форуме Oracle поднимались вопросы "как сделать", оказывалось, что "клиентский pl/sql" не поддерживает более чем обычных возможностей "pl/sql серверного".
в новых версиях разницы нет
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438211
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модПроблема эта актуальна когда сервер и клиент пишутся на разных языках.
Сервер использует язык Delphi ??? Не видел я что-то такого :))

модА вот для pl/sql все пишется универсально а размещается в зависимости от ситуации. В большинстве случаев - на сервере, но при ОЧЕНЬ большом числе пользователей сервер БД надо макс разгружать и приходится все тащить на клиента.
Угу - пару тройку 10-миллионных табличек заселектить по одной, а потом вместе слить и подсчитать группировки, и все это на клиенте

А может сервер у вас хиленький - вообще то сервера для того, чтобы клиентов разгружать. а не наоборот :)

-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438217
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модперетащите t/sql на клиента или VB на сервер
Если это важно - пишите на java или на C#. Впрочем, учитывая что проверки надо делать и там, и там, перетаскивать ничего не нужно.

модв новых версиях разницы нет
Насколько я в курсе, последняя новая версия появилась довольно давно, а обсуждения были довольно недавно. Проясните?
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438535
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и я об этом
java еще можно перетащить на сервер в ХП (только в оракле) а C# уже нет
а транзакт-скл на клиента вообще не тащится
т.е. надо все разделить до программирования что не есть хорошо

я на различия в pl/sql не натыкался возможно что-то и есть
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438862
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модтак и я об этом
Я - как раз не об этом, наоборот. По мне это не играет роли, но чем доказывать это - проще показать, что при желании "единый код" делается далеко не только на PL/SQL

модjava еще можно перетащить на сервер в ХП (только в оракле)
Да неужто? Думаю, ASCRUS возразит....

мода C# уже нет
Да неужто?

мода транзакт-скл на клиента вообще не тащится
Да и тащить его незачем. Честно говоря, никогда не понимал желания "все делать на одном языке", что клиента писать на PL/SQL, что сервера на C#.

модт.е. надо все разделить до программирования что не есть хорошо
Ээ... То есть предлагаете подход "сначала делаем, потом думаем"?

модя на различия в pl/sql не натыкался возможно что-то и есть
Мне вспоминается возврат ref cursor из ХП, динамический SQL... Я мягко говоря не специалист в формсах, но люди спотыкались.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438892
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyда с какой такой стати клиент - основная линия обороны? клиент тогда-уж - охранник при входе в банк, который не пустит унутрь какого-нить бомжа бухого...
Предлагаю таки завершить спор о терминологии. Охранник - так охранник.

lockyИ что? теперь мне надо учить банковскую выписку тому, что должно быть заполнено в реестре? Ить проверки то на клиенте?
А где написано "проверки только на клиенте"? После того, как сто раз повторено строго обратное?

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

Код: plaintext
1.
2.
3.
create table Реестр (
  ОбязательноеПоле integer not null,
  Количество integer check (Количество >  0 ),
  .... ) ;

И чему Вы собираетесь учить свою банковскую выписку? Скривили в ней - сервер Вам как разработчику сообщит об этом. А вот для ввода этой таблицы на клиенте, мягко говоря, стоит использовать другой механизм проверок.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33438958
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer модjava еще можно перетащить на сервер в ХП (только в оракле)
Да неужто? Думаю, ASCRUS возразит....
Лучше не буду возражать - java в ASA никто особо не пользуется, в BOL на хранение обьектов в таблицах обьявлено depricated, не удивлюсь что в приближающейся 10-ке вообще java вынесут и из extended sp - туда ей и дорога с сервера, WatcomSQL рулит
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33439102
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с softwarer - проверки вводимых данных должны быть и на клиенте и на сервере. Причем в обычных ситуациях проверки на сервере работают только для подстраховки. Они только для особых ситуаций - устаревание информации на клиенте (как возможная штатная ситуация), разработка другого клиента к этой же базе, ошибка/недоработка программиста клиента (как внештатные ситуации), и т.п. Вот отключать серверные проверки с целью увеличения быстродействия я бы все-таки не стал - чревато... Если только для какого-нибудь совсем простого случая.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33439768
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архитектура клиент-сервер:
сервер СУБД: SQL + ХП на языке(ах) 1,2,3
клиент на языке(ах) 4,5,6
если языки совпадают - это дает большие преимущества
действительно можно сначала делать а потом думать что где размещать причем в разных реализациях одной и той же системы по разному
можно конечно и на разных языках, но тода думать надо сразу :)
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33439815
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут наверное еще стоит упомянуть такую ситуацию при размещении всей логики на сервере, как незасимость БД от клиентской части. Простой пример - есть БД и клиентская часть. На клиентской части только примитивные проверки (можно сказать штатные), на БД реализованы все проверки и логика. Руководство по неким причинам решило переписать клиентскую часть на другой среде программирования (любые причины - устарела старая, потребовались новые возможности и т.д.) или же решило написать еще одну клиентскую часть (для реализации того же веб-интерфейса). Думаю не стоит обьяснять, что при полной реализации логики в БД переписать или написать еще одного клиента - это элементарный вопрос рисования формочек, которые через вызовы ХП получают и сохраняют данные, ничего не зная о структуре БД, реализации логики и прочего. С другой стороны реализация какой либо логики на клиенте, ответственной за целостность БД и расчеты уже приведет к тому, что придется существенно попотеть, чтобы переписать клиентскую часть. Наглядный пример - ФС (без разницы какие - Access, FoxPro, Clipper, ...) - перенос таких приложений в другую среду программирования - это большое и сложное дело, где частенько в коде тесно переплетены и завязаны управление интерфейсом, бизнес-логика и расчеты и клубок этот распутать чрезвычайно сложно, легче написать ТЗ и реализовать задачу с полного нуля.

P.S. Кстати в моей практике реально бывали случаи, когда клиенты просто надували губы и говорили - не хотим клиента на Delphi, хотим на C#, на что в принципе имея всю логику на борту БД я всегда спокойно мог ответить "Да без проблем, доплачивайте и клиент на C# будет ваш". А если им еще и веб-интерфейс хотелось, так вообще понятие клиентского приложения так же переносилось на ASA, которая умеет спокойно работать как полноценный веб-сервер и веб-интерфейс спокойно и легко реализуется там же в БД - на ХП языка WatcomSQL, который к примеру ничем не уступает по возможностям работы с вебом тому же PHP
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33439957
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модАрхитектура клиент-сервер:
сервер СУБД: SQL + ХП на языке(ах) 1,2,3
клиент на языке(ах) 4,5,6
если языки совпадают - это дает большие преимущества
действительно можно сначала делать а потом думать что где размещать причем в разных реализациях одной и той же системы по разному
можно конечно и на разных языках, но тода думать надо сразу :)
Не понял - о чем это? Какие совпадающие языки? Вы о чем? Ыыыыыыы

-- Tygra's --
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440198
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модесли языки совпадают - это дает большие преимущества
Стандартная песня. Увы, наскучила. Только в рамках этого форума за последние пару лет полномасштабно обсуждалось раза три, последний раз - в свете топика "C# в Yukon". Предлагаю зафиксировать несогласие в этом и остановиться.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440269
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSТут наверное еще стоит упомянуть такую ситуацию при размещении всей логики на сервере, как незасимость БД от клиентской части.
Это довольно неоднозначный вопрос. При этом склонна появляться как раз зависимость от клиентской части, только другого рода. При реализации "максимально тонкого" клиента на сервере часто прорезаются ХП, относящиеся не столько к бизнес-логике, сколько к логике интерфейса, и соответственно изменение интерфейса (даже в рамках одного и того же клиентского инструмента) начинает требовать изменений на сервере.

ASCRUSP.S. Кстати в моей практике реально бывали случаи, когда клиенты просто надували губы и говорили - не хотим клиента на Delphi, хотим на C#, на что в принципе имея всю логику на борту БД я всегда спокойно мог ответить "Да без проблем, доплачивайте и клиент на C# будет ваш".
Согласитесь, что этот ответ годится как в том, так и в другом случае :)

ASCRUSА если им еще и веб-интерфейс хотелось,
То я пока что еще ни разу не видел веб-интерфейса серьезного приложения, который назвал бы "приемлимым". Я здесь имею в виду, назовем так, html-интерфейс, а не тяжелую артиллерию типа апплетов.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440704
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
softwarer
То я пока что еще ни разу не видел веб-интерфейса серьезного приложения, который назвал бы "приемлимым". Я здесь имею в виду, назовем так, html-интерфейс, а не тяжелую артиллерию типа апплетов.

А я и видел и делал . Хотя, конечно, c Вашей точки зрения он может оказаться и "неприемлимым". На вкус и на цвет - товарищей нет.
Впрочем - интернетовский форум - несерьезное приложение?
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440773
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Впрочем - интернетовский форум - несерьезное приложение?
С точки зрения интерфейса - безусловно. C точки зрения движка - есть интересные моменты. Впрочем, я могу назвать единственный интернет-форум с хорошим с моей точки зрения интерфейсом - forum.ixbt.com.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440797
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Впрочем, я могу назвать единственный интернет-форум с хорошим с моей точки зрения интерфейсом - forum.ixbt.com.
Для полноты картины отмечу, что это не значит отсутствия там недостатков - есть. Например, если не изменяет память, можно нажать "изменить" на чужом сообщении, отредактировать его и только при сохранении получить сообщение о недостатке прав. Но тем не менее это единственный известный мне пример реализации минимально необходимой функциональности без грубых ошибок (sql.ru, к сожалению, не отвечает ни тому, ни другому критерию, хотя имеет и свои плюсы).
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440861
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ASCRUSТут наверное еще стоит упомянуть такую ситуацию при размещении всей логики на сервере, как незасимость БД от клиентской части.
Это довольно неоднозначный вопрос. При этом склонна появляться как раз зависимость от клиентской части, только другого рода. При реализации "максимально тонкого" клиента на сервере часто прорезаются ХП, относящиеся не столько к бизнес-логике, сколько к логике интерфейса, и соответственно изменение интерфейса (даже в рамках одного и того же клиентского инструмента) начинает требовать изменений на сервере.
Это можно отнести только к тем случаям, где разработчики пытаются универсально генерить интерфейс. Я предпочитаю обходится общением с клиентской частью только на уровне ХП - отдать данные, изменить данные, выполнить некую бизнес-логику. Проблемы интерфейсной части - это проблемы клиентской части и смена/изменение клиентской части здесь никак не может повлиять на бизнес-логику в БД.

softwarer ASCRUSP.S. Кстати в моей практике реально бывали случаи, когда клиенты просто надували губы и говорили - не хотим клиента на Delphi, хотим на C#, на что в принципе имея всю логику на борту БД я всегда спокойно мог ответить "Да без проблем, доплачивайте и клиент на C# будет ваш".
Согласитесь, что этот ответ годится как в том, так и в другом случае :)
Однозначно не соглашусь, так как есть вопрос цены и времени. В приведенном мною случае затраты переноса клиентской части на другую платформу будут минимальны по времени разработки и тестирования, а значит и ценовые затраты будут минимальны.

softwarer ASCRUSА если им еще и веб-интерфейс хотелось,
То я пока что еще ни разу не видел веб-интерфейса серьезного приложения, который назвал бы "приемлимым". Я здесь имею в виду, назовем так, html-интерфейс, а не тяжелую артиллерию типа апплетов.
Я видел полноценные веб-интерфейсы, работающие в качестве настоящих GUI, реализованные на HTML+JavaScript и они ничем не уступали обычным GUI приложениям, использующие браузер IE на полную катушку. Да и сам сейчас все активнее на ASA пишу веб-приложения под различные приватные и служебные проекты и могу сказать, что у меня по затратам не сильно больше получается действий, чем было бы при создании аналогичных GUI интерфейсов на том же Delphi или PB. Есть гриды на HTML-таблицах, формы ввода данных, фильтры и сортировки, групповые операции в гридах и прочее - причем сам цикл разработки не сильно отличается от программирования на стандартных языках и по возможностям динамического форматирования страниц через JavaScript получается нагляднее и удобнее. Так что лично я считаю, что у веб-интерфейсов для построения клиентских приложений очень неплохое будующее, где IE и другие браузеры, полноценно поддерживающие JavaScript уже не сколько браузеры, сколько мощнейшие движки построения интерфейсов с встроенным интерпретируемым обьектным языком на борту.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440867
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
softwarer
Кажется, мы несколько уклонились от темы. Если Вы считаете это достойным особого обсуждения - заведите, пожалуйста, новый топик. Возможно, с цитированием из этого.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440883
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Кстати, пока не начал работать с вебом, я так же считал, что на вебе нельзя сделать полноценное клиентское приложение. Сейчас я полностью пересмотрел эту точку зрения, наверное потому, что сам стал делать проекты, функциональность которых полностью ее опровергает.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33440940
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSЭто можно отнести только к тем случаям, где разработчики пытаются универсально генерить интерфейс. .....
Отнюдь. Я не говорю, что "обязательно будет именно так", но тенденцию наблюдал - можно, наверное, назвать это неправильным проектированием.

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

ASCRUS softwarerСогласитесь, что этот ответ годится как в том, так и в другом случае :)
Однозначно не соглашусь, так как есть вопрос цены и времени.
Вопрос цены и времени - разница количественная, а не качественная. Поэтому если упирать на них - значит, качественной разницы нет, так что согласиться таки придется.

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

ASCRUSВ приведенном мною случае затраты переноса клиентской части на другую платформу будут минимальны по времени разработки и тестирования, а значит и ценовые затраты будут минимальны.
Минимальны. Допустим даже, на 10% меньше. Ради каприза одного из нескольких клиентов, то есть допустим 2% экономии из расчета на клиента.

Цена этого - [возможное] ухудшение всего приложения для каждого из клиентов. Оно скорее всего будет больше.

Почему [возможное] - потому что это, собственно, обсуждаем. Давайте вернемся к обработке ошибок: я могу сформулировать свои требования, и если Вы покажете, как их можно реализовать целиком на сервере, хорошо и дешево, Вы меня убедите. Если будет хорошо и дорого - значит, аргумент "минимальных ценовых затрат" оказывается родственником тришкиного кафтана. Если будет плохо и дешево.. - думаю, вопросов нет.

ASCRUSЯ видел полноценные веб-интерфейсы, работающие в качестве настоящих GUI, реализованные на HTML+JavaScript и они ничем не уступали обычным GUI приложениям, использующие браузер IE на полную катушку.
Гугль вот пытается что-то такое сотворить. Пока, кроме неудобств и полнейшей несовместимости, особых плюсов не видно. Зашел оперой - глючит. Зашел IE - глючит. Оказывается, IE, ставящийся вместе с Win2000, ему уже не подходит. В итоге нашелся ноутбук с нужной версией IE.

ASCRUSДа и сам сейчас все активнее на ASA пишу веб-приложения под различные приватные и служебные проекты и могу сказать, что у меня по затратам не сильно больше получается действий, чем было бы при создании
Хм. Видимо, это мнение, как и мое, стоит просто зафиксировать - вряд ли мы сможем детально сравнить.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441142
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ASCRUS. Я не был бы так категоричен насчет соответствия веб-клиентов требованиям к современному GUI. Модальные окна, без которых в его построении обойтись трудно, поддерживает только IE. Разумеется, можно обойти. Через фреймы, напрмер.
Вообще-то у меня построение веб-клиента занимает времени раз в 10 больше, чем на Delphi-клиента. Сначала отлаживается JavaScript на нескольких наборах статичных данных. Может быть я не знаю хороших отладчиков JavaScript? То, что дает MS - недостаточно. Потом отлаживается генерация страниц.
Ну не умею я сразу без ошибок писать!
=========
Обсуждения данного топика, окончательно привели меня к мысли, что есть три типа бизнес-правил.
1. Безусловные. Например - дата начала не меньше даты конца.
2. Условно-постоянные. Например - в году 12 месяцев.
3. Конкретные. Например - не продавать этому придурку, он еще за прошлое не рассчитался!

И чем меньше номер по моей классификации, тем нужнее и возможнее делать проверку на клиенте.

Если я изобрел велосипед - то я этим горжусь!
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441198
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2И чем меньше номер по моей классификации, тем нужнее и возможнее делать проверку на клиенте.
В целом - полностью согласен.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441224
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2ASCRUS. Я не был бы так категоричен насчет соответствия веб-клиентов требованиям к современному GUI. Модальные окна, без которых в его построении обойтись трудно, поддерживает только IE. Разумеется, можно обойти. Через фреймы, напрмер.
Минуточку - а кто говорит, что GUI не может выдвигать требования к ПО, например "only IE >= 6", как "требуется .NET/JVM" ? Для интранет приложений это вполне нормальное обоснованное требование, в отличие от Internet-приложений.

Cat2Вообще-то у меня построение веб-клиента занимает времени раз в 10 больше, чем на Delphi-клиента. Сначала отлаживается JavaScript на нескольких наборах статичных данных. Может быть я не знаю хороших отладчиков JavaScript? То, что дает MS - недостаточно. Потом отлаживается генерация страниц.
А вот это как раз к средству разработки. JavaScript не надо руками постоянно писать, он должен автоматически генерится для браузера компонентами, как это к примеру сделано в ASP.NET. Так что отлаживать JavaScript нужно только при написании и тестировании компонент/библиотек, а не в каждом разрабатываемом приложении. Если это не возможно, значит пора задуматься о смене среды разработки под веб.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441227
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы тоже не был так категоричен насчет удобства разработки web-based GUI. Хотя есть опыт разработки неплохого web-based GUI и соответствующего JavaScript framework для него.
Проблемы там следующие:
1. Слабые возможности отладки.
2. Необходимость поддерживать совместимость с туевой хучей браузеров, каждый из которых может быть настроен туевой хучей способов.
3. Недостаточно хорошие возможности в области визуализации даных - построение графиков, таблиц и т.п. и вообще генерации векторной графики. Возможности есть, но у разных типов браузеров разные.

Но с учетом этих проблем все же посторить хорошее GUI вполне реально. Это будет в несколько раз более затратным, чем для десктопного приложения, зато не будет абсолютно никаких проблем с обновлением клиентов и удаленным доступом к приложению. Форумы это конечно с точки зрения интерфейса не очень, но например посмотрите GUI-framework и соответствующий форум тут , а заодно посмотрите как там диалоговые окна реализованы. Это один из наиболее удачных примеров такого рода движков.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441244
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSJavaScript не надо руками постоянно писать, он должен автоматически генерится для браузера компонентами, как это к примеру сделано в ASP.NET. Так что отлаживать JavaScript нужно только при написании и тестировании компонент/библиотек, а не в каждом разрабатываемом приложении. Если это не возможно, значит пора задуматься о смене среды разработки под веб.
Есть и другие пути разработки "толстых" веб-клиентов, не завязанных так жестко на серверную часть. Один из примеров можете найти по ссылке в моем предыдущем сообщении.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441401
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiCh
Выглядит достойно и профессионально. Хотя, увы..
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441414
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiCh ASCRUSJavaScript не надо руками постоянно писать, он должен автоматически генерится для браузера компонентами, как это к примеру сделано в ASP.NET. Так что отлаживать JavaScript нужно только при написании и тестировании компонент/библиотек, а не в каждом разрабатываемом приложении. Если это не возможно, значит пора задуматься о смене среды разработки под веб.
Есть и другие пути разработки "толстых" веб-клиентов, не завязанных так жестко на серверную часть. Один из примеров можете найти по ссылке в моем предыдущем сообщении.
Мда - пытатся запихнуть всю логику формирования контента через JavaScript на браузер это жестоко. У меня не сказать что слабая машина, но оба проца проседали неплохо, при отрисовке всех красивых фенечек. Здесь я категорически против всяких украшательств - в моем понимании удобный интерфейс и красивый интерфейс - это совсем не синонимы и рисовать "красоту" на JavaScript, который имеет достаточно низкую скорость выполнения на существующих браузерах и я что то не помню, чтобы хоть кто то пытался занятся его оптимизацией. Мне кажется, что для пользователей вполне достаточно обычных html-таблиц и форм, которые неплохо выглядят при грамотном использовании CSS, главное сам процесс работы сделать логичным и удобным.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441423
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSМинуточку - а кто говорит, что GUI не может выдвигать требования к ПО, например "only IE >= 6",
Потому что тогда теряется столь любимое маркетологами "не требует инсталляции", "работает везде" итп.

Для интранета? Не вижу ни малейшего смысла делать веб-приложение для интранета. Если портальные технологии дойдут до возможности действительно хорошо интегрировать действительно хорошие приложения - будет; сейчас - нет.

Ну и.. что предлагаете, например, мне - то ли обрубить канал в интернет и сидеть на IE6 и интранет-приложении, то ли держать два браузера..
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441432
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSМне кажется, что для пользователей вполне достаточно обычных html-таблиц и форм...
Может быть я отстал от жизни, и обычные html-таблицы уже умеют мышкой ресайзить колонки? Или это интерфейс на уровне Oracle*Forms десятилетней давности?
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441447
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ASCRUS
Минуточку - а кто говорит, что GUI не может выдвигать требования к ПО, например "only IE >= 6", как "требуется .NET/JVM" ? Для интранет приложений это вполне нормальное обоснованное требование, в отличие от Internet-приложений

Не бейте меня до смерти. Я уже и так задолбался поддерживать проги, у которых IE>=6 only.

ASCRUS
А вот это как раз к средству разработки. JavaScript не надо руками постоянно писать, он должен автоматически генерится для браузера компонентами, как это к примеру сделано в ASP.NET. Так что отлаживать JavaScript нужно только при написании и тестировании компонент/библиотек, а не в каждом разрабатываемом приложении. Если это не возможно, значит пора задуматься о смене среды разработки под веб.

Ну, всякие там меню можно и сгенерить. Но кто заморачивается над меню в нормальном построителе GUI?

Меня НИ РАЗУ не удовлетворил автогенерирумый код. Слишком он примитивен. Я без ужаса на него смотреть не могу
========
Подписался под постингом VladiCh [2179919]
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441464
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer VladiCh
Выглядит достойно и профессионально. Хотя, увы..
Да, с Оперой там не срослось пока... Но я думаю они сделают поддержку новых версий Оперы 8.5 - 9.x - там довольно много изменений произошло в лучшую сторону по сравнению с веткой 7.xx. Но Опера и не считается пока к сожалению mainstream-браузером, т.к. доля рынка слишком мала. Обычно считается достаточным поддерживать IE и Mozilla.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441840
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
VladiCh.
Не упоминайте мне Мозиллу на ночь!
Там, где нужно конкретно работать непосредстевенным построением интерфейса через вызовы DOM, глюки Мозиллы становятся кошмаром.

Не упоминайте мне IE на ночь!
Нигде нет инфы, что из CSS2 и DOM2 эта скотина поддерживает, а что нет.

Не упоминайте мне Оперу на ночь! То, что объявлено поддерживаемым в последнй версии, на самом деле не работает так, как надлежит работать.

===========
Примеров не дам. Я не сохраняю неработоспособный код.
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33441906
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> А где написано "проверки только на клиенте"? После того, как сто раз
> повторено строго обратное?
Согласен, недоглядел...

>
> Раз уж Вы привели такой пример, давайте смотреть. Есть таблица, типа
>
> create table Реестр (
> ОбязательноеПоле integer not null,
> Количество integer check (Количество > *0*),
> .... ) ;
>
>
> И чему Вы собираетесь учить свою банковскую выписку? Скривили в ней -
> сервер Вам как разработчику сообщит об этом. А вот для ввода этой
> таблицы на клиенте, мягко говоря, стоит использовать другой механизм
> проверок.
заодно давайте заведем поле типа "Состояние" - нолик - все строки
банковской выписки обработаны, единичка - не все строки обработаны.
А потом повесим чек констрейнт, не позволяющий поставить туда нолик,
пока по каждой строке выписки не создан (и подписан) документ "реестр
квитанций", и не позволяющий поставить туда единичку, когда период, в
котором учтена эта выписка, уже закрыт...
запасёмся триггерами, функциями...
тут, правда, получается ваще весело - процедура есть клиент к таблице, и
проверки сосредоточены в ней.... с другой стороны ни триггер ни чек на
кривой козе не объедешь... а вот написать нового, неправильного клиента
(сиречь - процедуру) - проще паренной репы.
Из чего делаем вывод - проверки должны быть не в процах, а в
чеках/триггерах....
противно, млин....

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33453523
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyзаодно давайте заведем поле типа "Состояние" - нолик - все строки
банковской выписки обработаны, единичка - не все строки обработаны.
Денормализация - отдельный вопрос, впрочем, ложащийся в общую канву.

lockyИз чего делаем вывод - проверки должны быть не в процах, а в
чеках/триггерах....
Полагаю, тут ситуация ровно такова, как в обсуждаемом случае с разделением между сервером и клиентом - нет однозначной жесткой границы.

lockyпротивно, млин....
Что именно? То, что криворукий сотрудник техподдержки, поменяв этот нолик в любимом QA, получит справедливый отлуп?
...
Рейтинг: 0 / 0
Серверная и клиентская логика - где граница?
    #33454057
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> locky
> заодно давайте заведем поле типа "Состояние" - нолик - все строки
> банковской выписки обработаны, единичка - не все строки обработаны.
>
>
> Денормализация - отдельный вопрос, впрочем, ложащийся в общую канву.
хм, денормализация.. ну, может быть... хранение значения, которое всегда
можно вычислить....

>
> locky
> Из чего делаем вывод - проверки должны быть не в процах, а в
> чеках/триггерах....
>
>
> Полагаю, тут ситуация ровно такова, как в обсуждаемом случае с
> разделением между сервером и клиентом - нет однозначной жесткой границы.
+1

>
> locky
> противно, млин....
>
> Что именно? То, что криворукий сотрудник техподдержки, поменяв этот
> нолик в любимом QA, получит справедливый отлуп?
Чисто субъективно противно. Не люблю триггера и сложные чеки. Это у меня
личное :-)
А отлуп - да.. это красиво... а триггера и проч. = противно!

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
72 сообщений из 72, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Серверная и клиентская логика - где граница?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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