Size: a a a

2020 April 13

а

а кто это in Go-go!
Soul
в Go разве есть глобальные переменные? Они же все локальны для пакетов, в которых лежат
а?
источник

АП

Александр Попов... in Go-go!
Soul
в Go разве есть глобальные переменные? Они же все локальны для пакетов, в которых лежат
если с большой буквы - значит публичные
источник

АП

Александр Попов... in Go-go!
и доступны извне
источник

PK

Phil Kulin in Go-go!
Александр Попов
2020 года мы обсуждаем глобальные переменные в продакшен проектах? рили?
Чем мой бот с блокировками не продакшн? Там есть глобальные переменные
источник

АП

Александр Попов... in Go-go!
Phil Kulin
Чем мой бот с блокировками не продакшн? Там есть глобальные переменные
ну это же pet проект
источник

S

Soul in Go-go!
Александр Попов
и доступны извне
так в этом и прелесть. Они доступны, но не из глобального неймспейса, а только через import и явное указание, что эта переменная вон из того пакета
источник

x

x-foby in Go-go!
а кто это
какой должен быть масштаб у проекта чтоб можно было писать в одном файле с одним хендлером и глобальным коннектом?
Ну вот примерно такой: один файл с одним хендлером.

В принципе допустимо.
источник

PK

Phil Kulin in Go-go!
Александр Попов
ну это же pet проект
А чем pet проект от не pet отличается? Длиной члена пишущего?
источник

МП

Мимо Проходящий... in Go-go!
Soul
в Go разве есть глобальные переменные? Они же все локальны для пакетов, в которых лежат
всё верно. И вот находятся друзья человека, которые на полном серьёзе втирают, что так делать ВООБЩЕ НЕЛЬЗЯ, и надо всё в main-е создавать. ну ну
источник

S

Soul in Go-go!
И как раз функция init() идеальна для инициализации таких переменных
источник

а

а кто это in Go-go!
и тут появляется матное слово сайд-эффект
источник

АП

Александр Попов... in Go-go!
Phil Kulin
А чем pet проект от не pet отличается? Длиной члена пишущего?
размером кодовой базы и длинной поддержки, сложностью БЛ. Вот например ваш бот же завтра не будут пиццу заказывать? А вот в бизнесе такое перепрофилирование это изи
источник

S

Soul in Go-go!
а кто это
и тут появляется матное слово сайд-эффект
оно матное в функциональных языках
источник

МП

Мимо Проходящий... in Go-go!
Soul
И как раз функция init() идеальна для инициализации таких переменных
ну не факт. Как раз init плохо скейлится и её тяжко налаживать. Лучше всё делать явно
источник

S

Soul in Go-go!
Мимо Проходящий
ну не факт. Как раз init плохо скейлится и её тяжко налаживать. Лучше всё делать явно
Ну а что такое "плохо скейлится"? И везде ли этот скейлинг нужен?
источник

x

x-foby in Go-go!
Мимо Проходящий
всё верно. И вот находятся друзья человека, которые на полном серьёзе втирают, что так делать ВООБЩЕ НЕЛЬЗЯ, и надо всё в main-е создавать. ну ну
Зачем вы додумываете за других?
Вам никто не говорил, что вообще нельзя.
И никто не говорил, что надо всё в main создавать (пример был с main, да, но никто не говорил, что надо всё в main создавать).

И после всего этого вы зовёте и жалуетесь админам. Смешно)
источник

AK

Anton Kucherov in Go-go!
Мимо Проходящий
всё верно. И вот находятся друзья человека, которые на полном серьёзе втирают, что так делать ВООБЩЕ НЕЛЬЗЯ, и надо всё в main-е создавать. ну ну
Откуда вы это придумали? Процитируйте про: ‘Вообще нельзя’ и ‘все надо в main’ создавать.
источник

МП

Мимо Проходящий... in Go-go!
Soul
Ну а что такое "плохо скейлится"? И везде ли этот скейлинг нужен?
кода меняешь пакеты, перетаскиваишь с одного на другое расположение или просто что-то добавляешь, нужно следить за порядком инициализации. Проще это делать без init
источник

S

Soul in Go-go!
Мимо Проходящий
кода меняешь пакеты, перетаскиваишь с одного на другое расположение или просто что-то добавляешь, нужно следить за порядком инициализации. Проще это делать без init
порядок зависит от порядка импортов. Что импортируешь в пакет с init - вызывает init зависимостей до того, что в импортирующем пакете. По-моему удобно
источник

S

Soul in Go-go!
Глобального порядка инициализации нету, зато всегда известно, что от всех импортированных пакетов init() уже был выполнен
источник