Size: a a a

1С, БСП, DevOps и Архитектура

2021 May 10

D

DitriX in 1С, БСП, DevOps и Архитектура
ну поэтому я и говорю, что оно вот вроде как и модульно, а местами - не очень
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Чем нехорошо?
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Тем, что это не до конца модульность. :)
Если уж делать по уму, то должен быть интерфейс/провайдер настроек на форму и в конфигурационный файл. Чтобы накидал плагинов в каталог/задал в списке плагинов, а у тебя интерфейс настройки VA сам по строился на основании описанных требований. Создались бы реквизиты, элементы, события формы, обработчики событий ядра
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
А какая (в абсолюте) цель преследуется от стремления к модульности конкретно в этой подсистеме тестирования?
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Как, например, сделана библиотека cli в оскрипте. Ты описываешь структуру настроек, а библиотека тебе и хелп выплюнет, и аргументы командной строки разберёт, и переменные среды прочитает, и нужную команду вызовет. Все сама.
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Да вроде бы как всегда. Удобство расширения новым и удобство поддержки старого
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Но это ведь и без модульности достигается - просто качественным АПИ интеграции модулей, который могут быть и слитыми всегда
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Сейчас, например, в механизме хранения настроек можно найти верёвку, мыло и табуретку, даже не смотря на то, что его относительно недавно рефакторили (сломав все нахер к чертям собачьим, но это другая история)
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Слитыми - имеешь ввиду в одном месте все описано? Можно, конечно. Но на мой вкус удобнее редактировать 10 файлов по 200 строк, чем один на 2 тысячи. А если вспомнить, что основная форма VA приближается к 40к строк по размеру, то добавлять туда что-либо совсем не хочется. Да и открывать её тоже
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Слитыми = неотторгаемыми в дистрибутиве. Я так понял за эту модульность (отторжение) выше топят.
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Не, для начала хотя бы внутри дистрибутива порядок навести)
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Т.е. выше про "плагин" и "ядро" - это все сейчас внутри единой конфигурации / расширения / набора обработок (или что там является дистрибутивом)?
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Набора обработок, да
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Я просто на примере ИР представляю - ну вот была бы у меня возможность скачать портативный вариант не в виде 50 обработок, а выбрать нужные мне допустим 25. Разница 5 Мб.
Вот и интересовался.
А оказывается речь о наведении порядка в АПИ, ок.
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Я не знаю, как реализован портативный вариант в ИР, все руки не доходят посмотреть. Но если он сможет запустится с частичным набором обработок, аккуратно перестроив интерфейс при этом и не падая в рантайме на каждый чих, то вот хочется чего-то такого :)
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Старых вообще любитель смелых и неординарных решений
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Правда портативный вариант вроде делал не он сам, а помогли сбоку
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Не, частичный набор обработок там точно сознательно не поддерживается. Упадет на первом же каком-нибудь действии, затрагивающем интеграцию.
Но я вот и не понимаю, а какова вообще цель стремления к поддержанию работоспособности без полного состава.
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Это все про coupling и cohesion. Чем меньше неявных (или вообще каких-либо) зависимостей у отдельно взятого программного модуля, тем проще его разрабатывать и поддерживать.
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Это как применять паттерн Service Locator вместо передачи зависимостей в констуктор. Вроде и удобно, в любом месте кода можно вызвать нужный сервис и использовать его. Круто же. А через некоторое время код в такую жуткую лапшу превращается, что проще выкинуть и заново написать
источник