• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Мысли по оптимизации кода

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Здравствуйте!

Хочу поделится парочкой мыслей.

1. Название функций в скриптовых библиотеках писать в формате [имя библиотеки]_[имя функции], для тех функций, которые используются извне.
2. Для скриптов обработки формы задать скриптовую билиотеку в формате [имя формы]FormLib
3. Соответственно в форме подключается одна скриптовая библиотека и обозначается одна функция

31094


а сама библиотека выглядит примерно так

31095


где все события формы вынесены в библиотеку в виде приватных функций.
 

savl

Lotus Team
28.10.2011
2 601
312
BIT
216
окей...
одна форма - одна библиотека?
а подформы? что если они будут?
что если одна подформа на разных формах?
работа с back-документом в отдельной библиотеке?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
2. Для скриптов обработки формы задать скриптовую билиотеку в формате [имя формы]FormLib
для этого "есть" классы и наследование, уже выкладывал здесь примеры перехвата событий в формах, инициализация на PO (или QO от контекста применения)
 

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
а можно ссылочку?

окей...
одна форма - одна библиотека?
а подформы? что если они будут?
что если одна подформа на разных формах?
работа с back-документом в отдельной библиотеке?
форма - отдельная библиотека
подформа - отдельная библиотека (если надо)
работа с доками - отдельная библиотека
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
не нашел на форуме (но точно постил что-то по теме) вот либа
 

Вложения

  • FormHandler.lib.lss.zip
    2,6 КБ · Просмотры: 177

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
открой в какомнить профильном редакторе, напр VSC (VisualStudioCode)
а как ее грузануть в читаемы вид?
или в
пример подключения к форме .... Set formObj=New FormBase .... Sub Queryopen(source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant) Continue=False On Error Goto ErrH InitUILoan source 'инициализация PostRecalc Dim act_PR As New LoanPRPayment, act_QS As New PaymentQS', act_PS As New LoanPSPayment Call formObj.Register(act_PR) Call formObj.Register(act_QS) 'Call formObj.Register(act_PS) ' Call InitObjectsUILoan(PAYMENT_FRM, Source, Mode, Isnewdoc, Continue) Continue=True Quit: Exit Sub ErrH: Error 1024, RaiseError Resume Quit End Sub
 
Последнее редактирование:
  • Нравится
Реакции: Gandliar

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
С классовым подходом интересно! Буду пробовать, спасибо.

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
С классовым подходом интересно! Буду пробовать, спасибо.

Но тем не менее, идея была вынести Всю обработку из формы в библиотеку, оставив только одну инициализирующую функцию в форме и одну подключенную библиотеку.
В библиотеке ко всему удобнее писать код (быстрая подстановка, быстрый переход по функциям, подсветка описания функций), чего в форме нет.
Отдельная библиотеку для формы легко скопировать для другой формы, изменив ее название и инициализирующую функцию.
именно это и сделано в моей библиотеке и цель была идентичная ;)
менять ф-цию инициализации не нужно - просто унаследовать нужные классы (или скопировать/изменить приватные Templ*), регистрация нужных событий для глобальной переменной As FormBase
др. словами - все уже сделано... и работает в т.ч. с подформами, для чего есть chain в классах
 
Мы в соцсетях:

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