|
![]() |
#1 |
Сенбернар
|
Цитата:
Цитата:
Тут вопрос в другом - есть любители посоздавать объекты непосредственно на Prod... и очень хотелось бы их от этого отучить. Id, ИМХО - один из методов это сделать. Знаю. Мне тоже много, что не нравится в 12-й )))
__________________
Best Regards, Roman |
|
![]() |
#2 |
Участник
|
Цитата:
ну... вот здесь точно мало человеческого фактора. здесь тупой опыт, который сын ошибок трудных. в ранних Аксаптах было принято хранить в базе tableId/FieldId. такого много в настройках складских аналитик, в markup и в других местах. если на проекте также используется метод хранения идентификаторов объектов, то смена идентификаторов в базе - нетривиальная задача. в остальном - совершенно без разницы id или имена объектов. =========== Отвлеченное рассуждение 1: вообще говоря, в других инструментах где практикуется "код как настройка" вполне обходятся без числовых идентификаторов, используются обычные имена Отвлеченное рассуждение 2: вообще говоря, в других IDE есть вполне рабочий инструмент "Рефакторинг \ Переименование". Это переименование вполне находит используемые имена и вполне успешно переименовывает. И в коде, и в конфиг-файлах и в остальных местах. В Аксапте подобный инструмент называется "Синтаксическое переименование" и работает через перекрестные ссылки. Для пользовательских данных в Аксапте есть "Паспорт записи \ переименование кода". Отвлеченное рассуждение 3: вообще говоря, очень интересно как программисты делают себе любимым противоположный по действию инструмент, чем пользователям. так, в ранних Аксаптах для пользователей предлагали естественные ключи, а внутри инструментов разработки были искусственные идентификаторы объектов а в последних Аксаптах наоборот, для пользователей предлагаются искусственные ключи, но объекты AOT наоброт имеют естественные наименования ![]() очень прикольно. Цитата:
С именами (естественными ключами) работать удобнее. Но решение должно быть осознанным. Как и в остальных областях. Цитата:
а есть еще любители посоздавать объекты из кода (в стандартной аксапте всякие модули Зарплат, например. в старой аксапте ProductBuilder) Зря. Понаблюдайте как идет программирование/конфигурирование в других инструментах. Вспомните где используются идентификаторы (SIDы всякие, идентификаторы групп в линуксах, коды тем и сообщений на форумах) а где используются просто имена (url, современные блоги, docker-файлы, nuget-пакеты, npm-пакеты, maven-gradle, электронная почта и много где) Последний раз редактировалось mazzy; 08.07.2020 в 13:47. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
На самом деле при восстановлении вам все равно придется в версии что-то менять(типа различный параметры интеграции и прочее).
Для актуализации ID можно использовать вот такой джоб - если данные АХ отличаются от таблицы SQLDictionary, он корректирует таблицу. https://github.com/TrudAX/TRUDScript...Dictionary.xpo Просто вставьте его одним из шагов |
|
![]() |
#5 |
Участник
|
Цитата:
"параметры интеграции и прочее" надо вынести за аксапту в конфигурационные файлы, которые не будут копироваться ![]() https://github.com/mazzy-ax/SysConfigFile Цитата:
![]() в общем, подходы разные. ![]() |
|
![]() |
#6 |
Участник
|
Интерестно. но я что-то не понял идеи, откуда этот файл возьмется к примеру на новом АОСе. И как гарантируется что у одного окружения(к примеру прод - 3 аоса) будут одинаковые файлы?
|
|
![]() |
#7 |
Участник
|
а откуда берется новый АОС?
кто-то его устанавливает. в рамках установки должен появиться и новый конфигурационный файл. Цитата:
Наводящий вопрос - есть ли что-нибудь общее у одного окружения с кластером АОСов? Ответ - по идее, каталог Application. Поэтому дефолтное расположение конфиг-файлов - %Appl%\Config Однако мы знаем подходы, когда Application для кластера все-таки не делается одним. Ну... для разных специфических целей. Тогда нужно обеспечивать единость или синхронизировать конфигов руками (как и Application-каталоги). Поэтому: сам класс SysConfigFile НЕ занимается этим вопросом, оставляя на откуп архитекторам проекта. Однако по умолчанию используется %Appl%\Config, который в нормальном окружении должен быть единым для разных АОСов Последний раз редактировалось mazzy; 08.07.2020 в 17:46. |
|
![]() |
#8 |
Участник
|
Цитата:
В 2012 вроде кластер - это же настройка в форме, т.е. аосы друг друга не видят с точки зрения файловой системы. Почему не база? ![]() |
|
![]() |
#9 |
Участник
|
наверное стоит выделить в отдельную ветку mazzy: Опубликовал проект SysConfigFile 2.0
Цитата:
![]() обсуждалось. 1. установку аксапты может делать человек, который не знает Аксапты. Этот человек не будет заходить внутрь аксапты, а тем более менять код чего-бы то ни было внутри аксапты. Тем более, если это не человек, а скрипт ![]() 2. использовать какой-либо признак внутри Аксапты - не выход. прежде всего потому что в современных условиях "установка Аксапты" - это не запуск setup.exe, а копирование виртуалки в другую подсетку. (при этом хорошо выделяются базовые образы и изменения. базовые могут быть общими для нескольких экземпляров виртуалок) как бы то-ни было, при копировании стоит избегать модификации чего-бы то-ни было. поскольку в современных условиях копируется не одна аксапта, а большой набор взаимосвязанных систем. изменить инстанс, порт, название базы или что-нибудь в этом духе - это ж кучу всего перенастроить придется. а вот подмонтировать другой storage с другими конфигурационными файлами к новой виртуалке - раз плюнуть. или склонировать файлы из системы контроля версий куда-нибудь внутрь виртуалки. Такую операцию может проделать человек, который аксапты вообще не знает. а также человек, который доступа к Аксапте не имеет. мало того, и не человек даже ![]() мало того, в большинстве случаев именно так виртуалки и разворачиваются - базовый образ, снапшоты и подмонтируются конфиги для разных программ внутри виртуалки или набора виртуалок. конечно, обсуждалось. можно и какую-то внешнюю базу. мало того, такой вариант даже в коде был. но базу не подошьешь к системе контроля версий ![]() а текстовые файлы - запросто. Последний раз редактировалось mazzy; 08.07.2020 в 18:51. |
|
|
|