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

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

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

12 ответов

36 просмотров

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

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 со строковыми ...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта