Current time: 01.07.2025, 14:45 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
FunLib
» Мод - библиотека функций для ERA
Author Message
Zur13 Offline

Posts: 223
Post: #22

(22.04.2020 10:29)Algor Wrote:  
(22.04.2020 10:23)Algor Wrote:  Berserker, хм, выглядит вкусно, надо переползать на 2.9.13 (я ща на 2.9.12 сижу)

Zur13, глянул только одно место, есть пара вопросов (Click to View)

Кстати, общестратегический вопрос по функциям:
если в функцию передаются неверные параметры, что лучше делать?
а) ничего не делать, пусть вылетает ошибка и моддер чешет репу
б) молча отфильтровывать некорректные параметры и пусть моддер чешет репу
в) выводить предупреждение через IF:L/IF:M
г) выводить сообщение через спец.функцию Fun_Warning, которая на основании какого-нить значения типа Warnings=# в ini/json действует по одному из вышеперечисленных правил

2) Список это массив размера М у которого первый элемент хранит количество элементов в списке L, причем всегда M > L, так как есть нулевой элемент недоступный модеру. В данном случае initial size задает изначальный размер массива М, там кстати недоработка нужно бы так:

Code:
!!VRy1&x1>0:Sx1 +1;   [y1, initial array size]

Далее при операциях вставки размер массива периодически увеличивается чтобы он был на 20-30 элементов больше чем размер самого списка (не при каждой вставке а с шагом по 10 элементов), при удалении наоборот уменьшается шагом по 10 элементов, плюс перекрытие (threshold) между добавлением и удалением чтобы избежать ресайзов когда модер добавляет/удаляет приграничный элемент несколько раз, тут еще надо проверить и подкрутить если что.

По ошибкам и варнингам, а) не очень пдходит, потому что у меня например есть кастомные ошибки, например попытка доступа к нулевому элементу массива/списка, сама по себе ошибку не выбросит. Я тут пошел по сценарию, что некритичные ошибки отфильтровываются, а для остальных ситуаций есть статус операции, сложно сказать что более правильно. Возможно Fun_Warning более правильное решение, но при разбивке по файлам модеру нужно будет к себе забирать не только нужный файл но и базовый файл в котором описана Fun_Warning.

Правка: если товарищ Berserker, добавит АПИ для выброса кастомных исключений, то всё станет намного проще, выбрасываем исключения для ошибок и всё, это самый правильный подход, потому что тогда модер сразу видит где он лажает. Эх если бы еще в окне ЕРМ ошибки показывали кусок стека вызовов функций ЕРМ, цены бы ему не было. Вот такое небольшое дополнение к окошку с ЕРМ ошибкой намного всё упростило бы:
Code:
!?CM5;(fun_lists.erm:403)
!?FU(Fun_ListAppend)(fun_lists.erm:248)
!?FU(Fun_ListSize) (fun_lists.erm:55)
(This post was last modified: 22.04.2020 13:39 by Zur13.)
22.04.2020 12:54
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
FunLib - Algor - 20.04.2020, 17:18
RE: FunLib - Zur13 - 20.04.2020, 18:04
RE: FunLib - Algor - 20.04.2020, 18:33
RE: FunLib - Zur13 - 20.04.2020, 18:53
RE: FunLib - Zur13 - 20.04.2020, 21:28
RE: FunLib - Algor - 20.04.2020, 23:21
RE: FunLib - igrik - 20.04.2020, 23:40
RE: FunLib - Algor - 21.04.2020, 01:57
RE: FunLib - Berserker - 21.04.2020, 06:10
RE: FunLib - Algor - 21.04.2020, 10:21
RE: FunLib - Algor - 21.04.2020, 10:14
RE: FunLib - Berserker - 21.04.2020, 16:14
RE: FunLib - Zur13 - 21.04.2020, 16:25
RE: FunLib - Algor - 21.04.2020, 17:36
RE: FunLib - Berserker - 21.04.2020, 18:06
RE: FunLib - Zur13 - 21.04.2020, 19:01
RE: FunLib - Algor - 21.04.2020, 21:51
RE: FunLib - Berserker - 21.04.2020, 22:30
RE: FunLib - Zur13 - 21.04.2020, 23:20
RE: FunLib - Algor - 22.04.2020, 10:23
RE: FunLib - Algor - 22.04.2020, 10:29
RE: FunLib - Zur13 - 22.04.2020 12:54
RE: FunLib - Zur13 - 25.04.2020, 03:03
RE: FunLib - Berserker - 22.04.2020, 16:50
RE: FunLib - ElfbI - 22.04.2020, 19:36
RE: FunLib - Berserker - 22.04.2020, 19:52
RE: FunLib - ElfbI - 22.04.2020, 21:13
RE: FunLib - igrik - 23.04.2020, 10:33
RE: FunLib - XEPOMAHT - 23.04.2020, 11:06
RE: FunLib - igrik - 23.04.2020, 10:52
RE: FunLib - Algor - 23.04.2020, 15:08
RE: FunLib - igrik - 23.04.2020, 11:16
RE: FunLib - Bes - 01.06.2020, 07:03
RE: FunLib - Berserker - 23.04.2020, 16:59
RE: FunLib - Raistlin - 23.04.2020, 23:48
RE: FunLib - Berserker - 25.04.2020, 06:12
RE: FunLib - Zur13 - 25.04.2020, 20:24
RE: FunLib - Berserker - 25.04.2020, 21:37
RE: FunLib - Zur13 - 01.05.2020, 17:38
RE: FunLib - Algor - 05.05.2020, 03:25
RE: FunLib - Algor - 18.05.2020, 16:39
RE: FunLib - slater777 - 12.12.2022, 11:48

Forum Jump:

Powered by MyBB Copyright © 2002-2025 MyBB Group