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

@Onokonem, а на самом деле - почему не желательно формировать

структуру настроек в init() ?

20 ответов

14 просмотров

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

Неубедительные причины, если честно. Как отказ от инита в своем приложении в таком случае, защитит от инитов в импортируемых? Т.е. получается, что если человек контролирует то, что он пишет и что импортирует, то один инит на приложение - норм?)

Artem (☞゚ヮ゚)☞ Bortnikov
Неубедительные причины, если честно. Как отказ от ...

Мне не очень понятны ваши доводы. Какая-то дилемма заключенных получается — если не я, то мне

Batyr TokenEcho.com
Мне не очень понятны ваши доводы. Какая-то дилемма...

Никакой дилеммы. Вот пишу я приложуху и добавляю в нее инит, чтобы на старте она что-то сделала. Что в этом плохого? Ответ - ничего. Никакой цепочки инитов, дебажить - сколько влезет

Artem (☞゚ヮ゚)☞ Bortnikov
Никакой дилеммы. Вот пишу я приложуху и добавляю в...

А потом джун дописывает код и внутри internal в каком-нибудь пакете вставляет свой инит

Batyr TokenEcho.com
А потом джун дописывает код и внутри internal в ка...

И получает по рукам. С тем же успехом можно отказаться от использования конкарренси, потому что какой-нить джун устроит гонку данных

Artem (☞゚ヮ゚)☞ Bortnikov
И получает по рукам. С тем же успехом можно отказа...

С аргументом, что инит можно использовать только для загрузки конфига?

В чем проблема тогда загрузить все, что нужно загрузить, в мейне?

Batyr TokenEcho.com
В чем проблема тогда загрузить все, что нужно загр...

Нет проблемы. Но и с инитом нет проблемы. По крайней мере пока что аргументы против него такие себе

Artem (☞゚ヮ゚)☞ Bortnikov
Нет проблемы. Но и с инитом нет проблемы. По крайн...

Приведите свои контраргументы, будет интересно обсудить

Batyr TokenEcho.com
Приведите свои контраргументы, будет интересно обс...

Я привел - если контролируешь, что пишешь и используешь, то проблем с отслеживанием инита и кго дебагом нет. Потому что он один на проект

А как вы контролируете?

Batyr TokenEcho.com
А как вы контролируете?

Если поведение отличается от ожидаемого - читаю код

Batyr TokenEcho.com
А как вы контролируете?

Встречный вопрос - а как вы коетролируете, что инитов нет?

Batyr TokenEcho.com
Линтер

Он пробегает по всей импортируемой кодовой базе?

Artem (☞゚ヮ゚)☞ Bortnikov
Он пробегает по всей импортируемой кодовой базе?

Он линтерит код проекта, не импортируемые модули, которые загружаются с гитхаба. Если вы про это

Batyr TokenEcho.com
Он линтерит код проекта, не импортируемые модули, ...

Да, про это. То есть по факту нет гарантий, что инитов нет

Batyr TokenEcho.com
Он линтерит код проекта, не импортируемые модули, ...

И все еще - если в коде проекта есть один кдинственный инит, то что в нем плохого?

порядок инитов в разных пакетах невозможно контролировать, и вообще порядок не интуитивен. а еще в одном пакете может быть больше одного инита, и тоже фиг поймешь, в каком порядке они отработают в общем, или в нем что-то тривиальное, и тогда можно и обойтись без функции, или в нем что-то сложное, и тогда поведение неочевидно и иногда непредсказуемо

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта