Д
Дайнеко
• Введение
Данные мысли навеяны следующими обстоятельствами:
1) Я программист с большим стажем. Можно сказать, на моих глазах программирование как профессия прошла путь от удела таинственных бородатых романтиков с распечатками и перфокартами до самостоятельной бизнес-отрасли. И сейчас осваиваю очередной инструмент под название «Платформа 8».
2) Освоение идет не с нуля. Есть многолетний опыт с «семеркой». И этот опыт сильно помогает. Но, чувствуется, иногда и мешает.
3) Я в отпуске. И это самое весомое.
• Вот она — нелюбовь
Про сравнение 7-ки с 8-кой написано многое. Мне же зудит высказаться только об одном аспекте — архитектуре «Клиент-сервер» (далее КС). Я пишу о КС в преломлении 8-ки, но предполагаю, что виновата не она — многие системы построены по такому-же принципу и приемы программирования для них таковы-же.
Мысль 1. Сначала вопрос: для чего она сделана. Ответ звучит так: для работы умного сервера и тупого клиента. Я пытаюсь осмыслить. Если «тупой» - это браузер, то как-то можно понять уровень его интеллекта. А в чем разницы между «толстым» и «тонким» клиентом, точнее сказать их необходимость, понимает только тот, кто их устанавливает. А тот, кто на них работает — ни за что. Идеологи говорят: надо писать по методике КС для решения проблемы «тонкого» канала. Таковы мотивы создания КС.
Мысль 2. Теперь проблема. Почитав материалы, посмотрев примеры КС, я перед всей аудиторией признаюсь: я с ней не справился. Самолюбиво добавлю: я не хочу с ней справляться. Посмотрите, во что превращается программный продукт. Последовательный процесс обработки данных превращается в лоскутное одеяло, перемешанное заголовками «НаКлиенте», «НаСервере». Скажите мне откровенно, у вас не происходит раздвоение личности при просмотре такого текста. Даже глобальные модули 8-ка снабдила этим же признаком, разделив их. Что я и вижу в названиях модулей на примере «Управление небольшой фирмой»: АдресныйКлассификатор (флаги «Сервер», «Вызов Сервера»), «АдресныйКлассификаторКлиент» (флаги «Клиент»), «АдресныйКлассификаторКлиентСервер» (флаги «Клиент», «Сервер»). И в таком стиле почти все. Открываю. В них процедуры: ПередатьФайлыНаСерверПоАдреснымОбъектам(), ПередатьФайлНаСервер(), ЗагрузитьКЛАДРСВебСервера(). Сразу видно чем забита голова программера.
А мне хочется делить по их смысловому назначению. Например: «БлокДляПечати», «БлокДляДуши» и т.д. Процедуры также хочу создавать по душевной необходимости: либо в случае неоднократного применения, либо для читаемости текста.
Мысль 3. Последнее предложение выводит на основную мысль: архитектура КС противоречит основному назначению алгоритмических средств программирования— избавление программиста от знания физического устройства компьютера и сосредоточения на логике обработки данных и их представления.
Для молодого поколения сделаю экскурс в историю. Когда компьютеры были большими, для них вообще существовал только язык машинного кода, или Ассемблера. Писать на нем (пальчиком биты шевелить) считалось крутым занятием, даже после распространения языков высокого уровня (ЯВУ). Появление этих языков: Алгол, Фортран, Кобол, Паскаль, PL/1 вырвало программирование из НИИ космонавтики и военщины на просторы экономического и научного применения. Вольно выражаясь, программист наконец-то мог забыть, сколько бит в байте и просто написать выражение: A=B+C. Результат не заставил себя ждать — сейчас большинство программистов не знает про стек ЦП и для чего он нужен
. Я упомянул эти языки т.к., согласитесь, 1С синтаксисом от указанных ничем не отличается.
Помимо облегчения труда, ЯВУ давали еще одно достоинство — хорошо написанная программа стала читаемой, понимаемой, редактируемой другими специалистами. Это качество породило фразу «программный продукт».
И к чему мы теперь идем? Уже не зная про организацию памяти, ЦП, дискового пространства мы вынуждены принести в жертву. Чему? Проводам, простите, каналам связи. И первое, и второе. И усилия, и красоту программ. Для многих понятие «красота» - архаизм 20-го века, а для меня реальные деньги и железные требования. Вывод: Регресс, товарищи!
Давайте, в качестве примера, возьмем такое задание. Оно возникает у меня на всех справочниках. Человек на форме группы ввел реквизит. Нужно записать его значение во все элементы внутри данной группы. На мое видение, в теле процедуры-реакции я пропишу следующие строки:
- задать вопрос: Будем менять у подчиненных?
- Сделать Запрос для выборки подчиненных
- Цикл по элементам. Внутри него:
- изменить элемент
- записать
- если сбойнуло – выдать сообщение
- Сообщение «Готово».
А теперь я попрошу знающих людей переложить эту задачу в варианте КС. Сколь в ней будет процедур?
• А что делать?
Всласть покритиковав пора и подумать. Я попытаюсь сформулировать, чего бы я хотел.
Задача максимум: программисту вообще не думать. Он пишет код и не занимается изучением в справке каждого метода его область применения. А интерпретатор сам шинкует строки на выполняемые «там» и «тут».
Задача минимум: если КС – зло неизбежное, то хотя бы надо было завернуть его в яркую упаковку. Я бы эту модель больше визуализировал бы. Разделил бы экран по вертикали на две части. Слева сервер, справа клиент. Межу ними ниточки-связи. Кто кого вызывает и что передает. Тогда и не придется напрягать воображение.
Задача компромисс: сама «тонкость» мне не сильно нравится. А не пойти ли в сторону еще большей тонкости в стиле технологии терминального сервера. Сделали бы клиента, который именно в прямом смысле может только картинки воспроизводить. А вся обработка только на сервере. Даже А+Б.
Может еще у кого есть какие соображения или мнения – прошу.
Данные мысли навеяны следующими обстоятельствами:
1) Я программист с большим стажем. Можно сказать, на моих глазах программирование как профессия прошла путь от удела таинственных бородатых романтиков с распечатками и перфокартами до самостоятельной бизнес-отрасли. И сейчас осваиваю очередной инструмент под название «Платформа 8».
2) Освоение идет не с нуля. Есть многолетний опыт с «семеркой». И этот опыт сильно помогает. Но, чувствуется, иногда и мешает.
3) Я в отпуске. И это самое весомое.
• Вот она — нелюбовь
Про сравнение 7-ки с 8-кой написано многое. Мне же зудит высказаться только об одном аспекте — архитектуре «Клиент-сервер» (далее КС). Я пишу о КС в преломлении 8-ки, но предполагаю, что виновата не она — многие системы построены по такому-же принципу и приемы программирования для них таковы-же.
Мысль 1. Сначала вопрос: для чего она сделана. Ответ звучит так: для работы умного сервера и тупого клиента. Я пытаюсь осмыслить. Если «тупой» - это браузер, то как-то можно понять уровень его интеллекта. А в чем разницы между «толстым» и «тонким» клиентом, точнее сказать их необходимость, понимает только тот, кто их устанавливает. А тот, кто на них работает — ни за что. Идеологи говорят: надо писать по методике КС для решения проблемы «тонкого» канала. Таковы мотивы создания КС.
Мысль 2. Теперь проблема. Почитав материалы, посмотрев примеры КС, я перед всей аудиторией признаюсь: я с ней не справился. Самолюбиво добавлю: я не хочу с ней справляться. Посмотрите, во что превращается программный продукт. Последовательный процесс обработки данных превращается в лоскутное одеяло, перемешанное заголовками «НаКлиенте», «НаСервере». Скажите мне откровенно, у вас не происходит раздвоение личности при просмотре такого текста. Даже глобальные модули 8-ка снабдила этим же признаком, разделив их. Что я и вижу в названиях модулей на примере «Управление небольшой фирмой»: АдресныйКлассификатор (флаги «Сервер», «Вызов Сервера»), «АдресныйКлассификаторКлиент» (флаги «Клиент»), «АдресныйКлассификаторКлиентСервер» (флаги «Клиент», «Сервер»). И в таком стиле почти все. Открываю. В них процедуры: ПередатьФайлыНаСерверПоАдреснымОбъектам(), ПередатьФайлНаСервер(), ЗагрузитьКЛАДРСВебСервера(). Сразу видно чем забита голова программера.
А мне хочется делить по их смысловому назначению. Например: «БлокДляПечати», «БлокДляДуши» и т.д. Процедуры также хочу создавать по душевной необходимости: либо в случае неоднократного применения, либо для читаемости текста.
Мысль 3. Последнее предложение выводит на основную мысль: архитектура КС противоречит основному назначению алгоритмических средств программирования— избавление программиста от знания физического устройства компьютера и сосредоточения на логике обработки данных и их представления.
Для молодого поколения сделаю экскурс в историю. Когда компьютеры были большими, для них вообще существовал только язык машинного кода, или Ассемблера. Писать на нем (пальчиком биты шевелить) считалось крутым занятием, даже после распространения языков высокого уровня (ЯВУ). Появление этих языков: Алгол, Фортран, Кобол, Паскаль, PL/1 вырвало программирование из НИИ космонавтики и военщины на просторы экономического и научного применения. Вольно выражаясь, программист наконец-то мог забыть, сколько бит в байте и просто написать выражение: A=B+C. Результат не заставил себя ждать — сейчас большинство программистов не знает про стек ЦП и для чего он нужен

Помимо облегчения труда, ЯВУ давали еще одно достоинство — хорошо написанная программа стала читаемой, понимаемой, редактируемой другими специалистами. Это качество породило фразу «программный продукт».
И к чему мы теперь идем? Уже не зная про организацию памяти, ЦП, дискового пространства мы вынуждены принести в жертву. Чему? Проводам, простите, каналам связи. И первое, и второе. И усилия, и красоту программ. Для многих понятие «красота» - архаизм 20-го века, а для меня реальные деньги и железные требования. Вывод: Регресс, товарищи!
Давайте, в качестве примера, возьмем такое задание. Оно возникает у меня на всех справочниках. Человек на форме группы ввел реквизит. Нужно записать его значение во все элементы внутри данной группы. На мое видение, в теле процедуры-реакции я пропишу следующие строки:
- задать вопрос: Будем менять у подчиненных?
- Сделать Запрос для выборки подчиненных
- Цикл по элементам. Внутри него:
- изменить элемент
- записать
- если сбойнуло – выдать сообщение
- Сообщение «Готово».
А теперь я попрошу знающих людей переложить эту задачу в варианте КС. Сколь в ней будет процедур?
• А что делать?
Всласть покритиковав пора и подумать. Я попытаюсь сформулировать, чего бы я хотел.
Задача максимум: программисту вообще не думать. Он пишет код и не занимается изучением в справке каждого метода его область применения. А интерпретатор сам шинкует строки на выполняемые «там» и «тут».
Задача минимум: если КС – зло неизбежное, то хотя бы надо было завернуть его в яркую упаковку. Я бы эту модель больше визуализировал бы. Разделил бы экран по вертикали на две части. Слева сервер, справа клиент. Межу ними ниточки-связи. Кто кого вызывает и что передает. Тогда и не придется напрягать воображение.
Задача компромисс: сама «тонкость» мне не сильно нравится. А не пойти ли в сторону еще большей тонкости в стиле технологии терминального сервера. Сделали бы клиента, который именно в прямом смысле может только картинки воспроизводить. А вся обработка только на сервере. Даже А+Б.
Может еще у кого есть какие соображения или мнения – прошу.