169 похожих чатов

Есть библиотека из ядра и аддонов некоторые аддоны используют только ядро,

но некоротые зависят от других аддонов
сейчас делается сборка простой конкатенацией аддонов, а все зависимости "в голове"
реально ли заменить сборку конкатенацией на import-export при этом автоматически учитывать зависимости и избегать дублирования?

12 ответов

13 просмотров

Ну так просто импорты/экспорта и юзай в чем проблема? Главное чтобы циклических зависимостей небыло

Sergiy-Shatunov Автор вопроса
Denis Deniskov
Ну так просто импорты/экспорта и юзай в чем пробле...

цикличиских само собой не будет, проблема в повторных зависимостях

Sergiy Shatunov
цикличиских само собой не будет, проблема в повтор...

Так это не проблема же, зависимость подключается один раз не зависимо от количества импортов. При первом импорте она инициализируется, при последующих импорт будет возвращать ссылку на объект зависимости.

Sergiy-Shatunov Автор вопроса
Denis Deniskov
Так это не проблема же, зависимость подключается о...

если приложение будте выглядеть так: import Core from "core"; import Addon1 from "addon1"; import Addon2 from "addon2"; Core.setAddons(Addon1, Addon2); /* и собственно код*/ то как лучше организовать addon1 и addon2 если они включают addon0 ?

Sergiy Shatunov
если приложение будте выглядеть так: import Core f...

Импортировать дважды аддон0, внутри аддон1 и внутри аддон2, ну и setAddons тоже 2 раза делать надо, внутри аддднов 1 и 2. Ну только в сетАдонс проверку добавить что аддон подключен уже

Sergiy-Shatunov Автор вопроса
Sergiy Shatunov
проверку в стиле сишных #ifdef?

Нет, у тебя же аддоны в массиве хранятся я так понял? Так вот проверь что в массиве есть объект аддона. Мне кажется ты не до конца понял про импорты. Сколько бы не было импортов в приложении файл с зависимостью исполняется только при первом вызове импорта, результат исполнения записывается в обьект. При последующих импортах возвращается только этот объект без повторного исполнения кода. Ты можешь просто проверить добавил ли ты уже аддон в коллекцию, т.к. у каждого импорта будет одна и та же ссылка на объект Import aaa from 'dep' // dep инициализируется и запишется в ааа Import bbb from 'dep' // деп уже инициализирован, просто запишется ссылка на него в ббб Bbb === aaa //вернёт true, даже в разных файлах

Sergiy-Shatunov Автор вопроса
Denis Deniskov
Нет, у тебя же аддоны в массиве хранятся я так пон...

каждый аддон при добавлении модифицирует ядро, вот именно повторной модификации надо избежать, при этом сделать это понятным и очевидным способом

Sergiy Shatunov
каждый аддон при добавлении модифицирует ядро, вот...

Ну при добавлении аддона сделай проверку на то модифицировал он ядро или нет

Sergiy-Shatunov Автор вопроса
Denis Deniskov
Ну при добавлении аддона сделай проверку на то мод...

покачто придумал держать в ядре Set со строковыми названиями(скорее ссылками) аддонов и при добавлении так проверять их наличие

Sergiy Shatunov
покачто придумал держать в ядре Set со строковыми ...

Да, я тебе выше как раз про это писал, только я там про массив писал

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта