Встречи, форумы и вебинары по Domino

04.06.2019
135
19
BIT
0
А когда-то было по-другому?
увы, нашему брату ничего не заходит. даём инфу про крутые решения - "голимая реклама", проводим технические вебинары - смотрят единицы. в этой связи накатал тут в телеге. сюда решил репостнуть


товарищи сподвижники! в эфире викторина по выходным. ит-специалист из Санкт-Петербурга Иван интересуется:
18 февраля 2021 года прошёл вебинар Ускорение баз Domino (2й сезон) под эгидой HCL, докладчиком выступил Владислав Татаринцев из компании CYONE / САЙУАН (Объявление было в этом канале: HCL Software RU). а запись выложена на Ютубе:
внимание вопрос: через одну минуту ответьте, пожалуйста, Ивану, почему данное видео с разбором наиболее частых ошибок в проектировании приложений с реальными примерами за 8 месяцев набрало всего 26 просмотров? неужели тема ускорения приложений ни для кого не актуальна? или кому актуальна и руки из плеч, уже это знают, а кто в 21м году так и не озаботился ускорением своих БД Domino, никакие видео не помогут?
 
Последнее редактирование:

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
увы, нашему брату ничего не заходит. даём инфу про крутые решения - "голимая реклама", проводим технические вебинары - смотрят единицы. в этой связи накатал тут в телеге. сюда решил репостнуть

внимание вопрос: через одну минуту ответьте, пожалуйста, Ивану, почему данное видео с разбором наиболее частых ошибок в проектировании приложений с реальными примерами за 8 месяцев набрало всего 26 просмотров? неужели тема ускорения приложений ни для кого не актуальна? или кому актуальна и руки из плеч, уже это знают, а кто в 21м году так и не озаботился ускорением своих БД Domino, никакие видео не помогут?

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

Вот для примера - говорит, что какой-то "один клиент в Финляндии нашёл...", что проверка строк на длину в разы быстрее, чем на пустоту строки. В отличие от оратора меня этот вопрос заинтересовал лет 15 назад как, я тогда же провёл эти тесты (правда на 6.5.1), которые выложил на сайте нотес.нет. Результат таков - никакого существенного прироста проверка Len не даёт, - выигрыш менее 1%.
Я сам, естественно, всегда использую Len, потому что перфекционист, но я не буду никому рассказывать о каких-то там приростах, потому что пробовал эти устрицы. Если же в более поздних версиях что-то поменялось в лучшую сторону, то я уже точно ничего от этого не выиграю, т.к. весь код у меня и так на Len-проверках.

Или про цикл, что For быстрее.
Для случаев частого изменения данных в ходе работы с циклом документ может "исчезнуть" с разной "степенью тяжести" - от того, что может быть просто удалён (будет Nothing) либо пользователь резко может потерять к нему доступ (в случае выполнения кода на клиенте и наличии некоторых процессов, предполагающих это). К примеру, у нас такие случаи бывают нередко.
Хорошо, делаем код на For, но документ-то, учитывая вышеизложенное, всё равно нужно проверить как минимум на Nothing, и если мы это делаем, то потерялось всё преимущество от For, наоборот - мы выделили дополнительную память на переменную-счётчик. А ещё нужно проверить док, полученный из коллекции на IsValid и IsDeleted, для которых предварительная проверка на Nothing просто обязательна...

Ну и так далее, - можно комментировать по каждому пункту.
Мне это чем-то напомнило тесты для разработчиков Lotus от IBM, которые я ни разу так и не смог пройти, т.к. большая часть вопросов предполагала массу уточнений (на какой среде выполняется код, какие при этом были настройки клиента/сервера, и т.д.), которых в вопросах не было, потому ответить было невозможно.

И вот на таких выводах (что где-то что-то услышали) они сделали утилиту, которая оценивает код...
Ну даже если и покажет, что формулы в колонках видов неоптимальны, мы это и так знаем, но не будем переделывать, т.к. в среде, состоящей из более чем 50 баз, и сотни форм/подформ это очень трудоёмко и грозит большими неприятностями, если вдруг что-то такое затронешь. В итоге чем может нам помочь эта утилита? Ничем, т.к. ничего нового мы не узнаем, но нужно будет заплатить денег ребятам за труды.

Возвращаясь к производительности. Рассказанное и так понятно и немеряно раз пережёвано.
Скажу больше, - если нет явных таких косяков, на производительность больше влияет правильное проектирование системы.
Пример-1: Если создать вместо одного поля с доступами в документах, к примеру четыре - 'AcsAUsers', 'AcsAServers', 'AcsAGroups', 'AcsARoles', то ненужно будет перебирать огромный массив данных, для начала пытаясь понять, что это, пользователь, группа, сервер или роль, а соответственно можно взять чисто группы и применить разворачивание чисто к ним. Либо взять сервера и сделать какую-либо операцию для них.
Пример-2: На этапе проектирования заложиться на то, что в группах АК сервера не делать смешанного содержимого (пользователи+группы), а только что-то одно - либо то, либо другое.
Естественно такой подход очень сильно сэкономит ресурсы и увеличит скорость исполнения кода.
Вот это реально полезные вещи, которые приходят, когда ты построил одну СЭД, переписал её раз, два, три. А потом ещё на основе полученного опыта написал вообще новую, с полной параметризацией, начиная от вычисляемых имён видов, форм, полей, агентов и т.д.. А не то, что перечислять азы довольно-таки низкого качества с сильно однобокой подачей. Поэтому лично мне такой материал малоинтересен, по моему он непригоден для разработчиков. Ну, разве что, для админов, чтобы дополнительно было пару вопросов из перечисленных пообщаться на курилке))

Прошу прощения, но Вы хотели отзыв. Это максимально честно.
 
  • Нравится
Реакции: NetWood

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
464
несколько про "другое"
чем занимаются обычно скрипты - описывают логику работы с БД нотус
что может ускорить серьёзно
- вынос в память некоторых выборок, по навигатору (если обращение будет в цикле и неоднократно), с управлением временем жизни таких объектов
- если что-то конкурентно обновляется - надо попытаться разнести данные по юзерам (чтобы данные как можно меньше пересекались), вынести в РСУБД (если логика позволяет)
- уход от всех вызовов КОМ от МСО - они очень тормозные и вызывают блокировки в ФС, а порой и ненужный интерактив (вопреки ожидаемому)
- если есть что-то сложное по логике и архитектуре и требует внешних библиотек (особенно это касается java) - вызывать внешние сервисы/приложения (с выносом кода "туда"). Обмен: файлами, stdin/out, запросами
- отчеты - все снаружи, реализация "зависит" (типа запрос в домину или в РСУБД, после прогрузки данных из домины)
- джава агенты, чем их меньше - тем лучше, что можно в ЛС2Ж, а лучше наружу
- из форм - убрать максимально CFD и переписать на ЛС. Тогда проще будет работа и с инмемори доками (с формулами это почти исключённый вариант)

из очевидного - избегать загрузки "тяжёлых" доков, создавать "коллекции" с унидами и данными из навигаторов, разумеется этот вариант д.б. подготовлен архитектурно
ряд "особенностей" от @rinsk - например ридерс поля для юзеров с малой областью видимости даёт тупки на вьюшках
 
Последнее редактирование:
  • Нравится
Реакции: VladSh
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!