Взято по аналогии со стандартами разработки Go (https://github.com/golang-standards/project-layout)
Реализовать декларативное описание библиотеки на основании структуры проекта. Например:
/cmd - определяет "ИсполняемыйФайл".
/pkg (/public) - Классы и модули расположенные определяют публичные объекты аналогично "ОпределяетКласс"/"ОпределяетМодуль"
/bin - регистрирует расположенные внутри аддины.
/internal (/private) - включает в состав пакета, но не публикует классы/модули
/vendor - включает в состав поставляемые библиотеки (текущий аналог oscript-modules)
/docs, /examples, /etc ... - дополнительные файлы библиотеки (документация, примеры, другое)
/tests - содержит тесты проекта. Тесты запускаются в едином с /public+/private контексте.
Для задания псевдонимов реализовать множественную аннотацию @Синоним/@Alias. Например:
/cmd/main.os - имя по умолчанию - создается cmd по имени библиотеки. Для
@Alias vrunner
@Alias runner
Или реализовать alias.json в папке с файлом:
{
"main.os": [ "vrunner", "runner" ]
}
Аналогично, для публичных классов/модулей.
Это позволит:
- Упростить описание проекта, полностью убрав, или разместив декларации объектов максимально приближенно к их определению
- Сделает проекты более структурированными, что повысит их читаемость и сопровождаемость
Взято по аналогии со стандартами разработки Go (https://github.com/golang-standards/project-layout)
Реализовать декларативное описание библиотеки на основании структуры проекта. Например:
/cmd- определяет "ИсполняемыйФайл"./pkg(/public) - Классы и модули расположенные определяют публичные объекты аналогично "ОпределяетКласс"/"ОпределяетМодуль"/bin- регистрирует расположенные внутри аддины./internal(/private) - включает в состав пакета, но не публикует классы/модули/vendor- включает в состав поставляемые библиотеки (текущий аналогoscript-modules)/docs,/examples,/etc... - дополнительные файлы библиотеки (документация, примеры, другое)/tests- содержит тесты проекта. Тесты запускаются в едином с/public+/privateконтексте.Для задания псевдонимов реализовать множественную аннотацию
@Синоним/@Alias. Например:/cmd/main.os- имя по умолчанию - создается cmd по имени библиотеки. ДляИли реализовать alias.json в папке с файлом:
{ "main.os": [ "vrunner", "runner" ] }Аналогично, для публичных классов/модулей.
Это позволит: