Антон
Антон
но держусь, рою, вот совета прошу)
Andrey
ну мне сложно так гадать на кофейной гуще, хотя бы потому что я кофе выпил а гущи там не оказалось, но попытаться поугадывать можно, например ты можешь не обрабатывать урл на который уходит запрос, потом если урл ты обработал ты можешь из боди неправильно доставать, можно попробовать вывести в консоль боди посмотреть что там где лежит, если получилось достать, то что бы передать обратно в форму нужно прокинуть в шаблон переменную и установить ее в нужный текст
Andrey
я уже сто лет не работал с html формами, можешь попробовать поменять post на get и тогда в строке браузера будет видно на какой урл ушел запрос, ну или оставить пост и посмотреть в инструментах разработчика, там должно быть видно на какой урл ушло
Andrey
ну и найти в роутах этот урл и понять отрабатывает он вообще или нет
Антон
mkdr
приветствую!
подскажите пожалуйста, насколько безопасно выносить все структуры и некоторые переменные в отдельный файл.
Есть ли какие-то потери по скорости и тому подобное.
прикрепляю два скриншота, один из файла с структурами и переменными, а второй из мейна
Спасибо!
mkdr
mkdr
Илья
Andrey
mkdr
Кіт ✙
mkdr
Да. Глобалы - зло
а почему, если в крациях. просто не понимаю, неужели кто-то другой может получить к ним доступ
Andrey
mkdr
Илья
mkdr
просто создавать переменные и совсем их не использовать я не собираюсь)
Andrey
Кіт ✙
а почему, если в крациях. просто не понимаю, неужели кто-то другой может получить к ним доступ
Во-первых, если запустить параллельно пару инстансов одного и того же кода, использующего глобалы, то получаем непредсказуемое поведение. Во-вторых, это делает код менее читаемым, ведь непонятно, откуда эта переменная. В-третьих, это затрудняет отладку, ведь глобальную переменную можно мутировать из любого места, и отследить это порой бывает затруднительно
Кіт ✙
Илья
Кіт ✙
КТО СКАЗАЛ АЛЛКАЦИЯ?!
Andrey
mkdr
получается, если я при запуске открываю файл, и из него достаю конфиг, то лучше будет его потом каждый раз передавать, а не загружать его в глобальную переменную
Кіт ✙
Начиная с либеральной паники, как это делает стандартная мапа при конкурентной записи, заканчивая неотслеживаемым импактом друг на друга
Andrey
Кіт ✙
Кіт ✙
Ты, по всей видимости, взял частный случай, и подгоняешь под него весь термин. Нет, у него шире значение
mkdr
Andrey
Кіт ✙
mkdr
Юра (Юрий Александрович)
В двух словах: глобальные переменные использовать нежелательно, т.к. они потом становятся узким местом либо препятствием для расширения.
Если переменная глобальная, то значит она может использоваться неограниченно из нескольких мест кода и из нескольких рутин.
Это закономерно приводит к проблемам совместного доступа, когда разные объекты начинают неожиданно друг для друга в эту переменную что-то писать-читать-писать-читать
Юра (Юрий Александрович)
Почему это становится нерешаемой проблемой:
1) Вы никогда не сможете создать больше экземпляров глобальной переменной. Если какая-то структура у вас существует в единственном экземпляре, и весь код на это завязан, то в будущем все-таки с трудом можно будет перевести код на множественность экземпляров.
А вот глобальная переменная будет в одном экземпляре совершенно безальтернативно. Она в одном экземпляре в пакете, а пакет в одном экземпляре в проекте.
Юра (Юрий Александрович)
2) Вы не сможете настроить или нормализовать доступ к этой переменной. Из-за того, что к этой переменной имеется доступ из неограниченного количества мест программы, вы никак надежно не обложите доступ к этой переменной примитивами синхронизации или другими механизмами разрешения конфликтов совместного доступа.
Юра (Юрий Александрович)
Рекомендуется разрабатывать архитектуру так, чтобы в будущем делать безболезненным переход с единства сущности на их множество. И уж тем более не допускать, чтобы этот переход был невозможным.
Юра (Юрий Александрович)
Например, если вы пишите свой браузер... ну вдруг. То нужно сразу закладывать в него возможность одновременной открытости нескольких веб-страниц. А то потом будет трудно. Если вы пишете свой архиватор - надо сразу учитывать, что нужно обрабатывать в несколько потоков и т.д.
Юра (Юрий Александрович)
kostyaBro
kostyaBro
Хотя там структуры с конфигом можно сказать пох ваще
mkdr
kostyaBro
mkdr
kostyaBro
А откуда конфиги берутся?
mkdr
Из файла
kostyaBro
Но на самом деле лично я не парюсь про такое, с конфигами так проще, и проще в once обернуть
mkdr
Once?
mkdr
Чтоб избежать параллельного вызова?
kostyaBro
нет смысла парсить более одного раза
А сейчас вообще такая ситуация что после первого парсинга env их больше не существует
mkdr
kostyaBro
Кто знает как сделать чтобы не ругался goland, не отключая inspection?
Belka
Может кто подскажет: у меня докер имедж собирается из образа alpine:3.11, мне нужно использовать команду apt-get install, такое решение сработает?
RUN apk add bash
RUN apt-get install ...
kostyaBro
kostyaBro
Что ты хочешь инсталить?
Belka
нужно было шрифты китайские добавить
Belka
нашел решение с apk
kostyaBro
Держать 2 package manager такое себе
Ailab
Ailab
Установив себе пакетным менеджер нужно и пакеты собрать
Ailab
Ключики безопасности
Andrey
kostyaBro
Ну наверное это непоправимо, я подозреваю
kostyaBro
kostyaBro
Просто количество полей динамическое
kostyaBro
Ну в целом да он думают что инъекция походу.
kostyaBro
Ну пусть думает наверное
kostyaBro
Params это '?'