F
fedotxxl
Задача: Написать систему логирования LS кода, подсчета производительности (как долго исполняется LS код) и учета ошибок.
Цель: получить удобную среду контроля исполнения кода. Среда будет использоваться только разработчиком, так что нужно решить, какие функции нужны, какие нет и как делать
Что нужно получить на выходе: отчет вида (это мой вариант, может вы придумаете более информативный отчет) :
Саб1 "Зашел в агент"
Саб1 "Получение документов" 12мс
Саб1\Саб2 "Зашел в Саб2"
и т.д.
Вот тут-то и возникает несколько вопросов:
1. Как делать?
1.1 Можно в начале и в конце каждого саба написать wf.SubStart(Title), wf.SubEnd(Title). Преимущества - строится в памяти дерево сабов, запоминается в каком сабе мы находимся. Недостатки - в начале и конце каждого саба нужно что-то писать
1.2 Можно при исполнении каждого события считывать в каком сабе мы находимся и вызываемые ранее сабы (Lsi_info(14)). Преимущество - не требуется дополнительный код в начале и в конце саба. Недостатки - сложно построить и контролировать дерево сабов (имеет ли смысл его строить?)
2. Как хранить данные?
Я набросал быстро класс, в который можно положить любой объект по айдишнику и получить обратно соотв.
2.1. В случае, когда у нас построено дерево сабов (каждому сабу соотв объект "Саб") логично в каждом объекте "Саб" хранить объект "Коллекция"
2.2.1 Когда у нас нет дерева сабов, можно это дерево составить из "Коллекция", вложенных друг в друга. Т.е. в коллекция "Саб1" буду вложены события "Зашел в агент", "Получение документов", а также коллекция "Саб1\Саб2". Таким образом для каждого саба создается своя коллекция
2.2.2 Но насколько просто построить дерево из коллекций? Проще хранить все в одной коллекции и айдишниками "Саб1\Саб2\Название_События". Это гораздо проще, но может быть медленее и в памяти не строится дерево сабов
3. Делать ли "дочерние действия"
В событии "Получение документов", которое занимает, предположим, 10 строк, может быть собите "Подключение к представлению". Делать ли так, что событие "Подключение к представлению" было ответным к событию "Получение документов" или же сделать плоско?
Никто базу от меня не требует, хочется написать для себя... Так что помогите определиться с функционалом и с реализвацией
Цель: получить удобную среду контроля исполнения кода. Среда будет использоваться только разработчиком, так что нужно решить, какие функции нужны, какие нет и как делать
Что нужно получить на выходе: отчет вида (это мой вариант, может вы придумаете более информативный отчет) :
Саб1 "Зашел в агент"
Саб1 "Получение документов" 12мс
Саб1\Саб2 "Зашел в Саб2"
и т.д.
Вот тут-то и возникает несколько вопросов:
1. Как делать?
1.1 Можно в начале и в конце каждого саба написать wf.SubStart(Title), wf.SubEnd(Title). Преимущества - строится в памяти дерево сабов, запоминается в каком сабе мы находимся. Недостатки - в начале и конце каждого саба нужно что-то писать
1.2 Можно при исполнении каждого события считывать в каком сабе мы находимся и вызываемые ранее сабы (Lsi_info(14)). Преимущество - не требуется дополнительный код в начале и в конце саба. Недостатки - сложно построить и контролировать дерево сабов (имеет ли смысл его строить?)
2. Как хранить данные?
Я набросал быстро класс, в который можно положить любой объект по айдишнику и получить обратно соотв.
2.1. В случае, когда у нас построено дерево сабов (каждому сабу соотв объект "Саб") логично в каждом объекте "Саб" хранить объект "Коллекция"
2.2.1 Когда у нас нет дерева сабов, можно это дерево составить из "Коллекция", вложенных друг в друга. Т.е. в коллекция "Саб1" буду вложены события "Зашел в агент", "Получение документов", а также коллекция "Саб1\Саб2". Таким образом для каждого саба создается своя коллекция
2.2.2 Но насколько просто построить дерево из коллекций? Проще хранить все в одной коллекции и айдишниками "Саб1\Саб2\Название_События". Это гораздо проще, но может быть медленее и в памяти не строится дерево сабов
3. Делать ли "дочерние действия"
В событии "Получение документов", которое занимает, предположим, 10 строк, может быть собите "Подключение к представлению". Делать ли так, что событие "Подключение к представлению" было ответным к событию "Получение документов" или же сделать плоско?
Никто базу от меня не требует, хочется написать для себя... Так что помогите определиться с функционалом и с реализвацией