Vitaly
А почему для найма он плох? Много компаний, ведь, на него переходят...
Не, я не говорю что плох. А о том, что как только наберется много опыта, можно начать делать свои проекты
Кіт ✙
подскажите, в чём принципиальная разница между chan bool и chan struct?
Илья
каналы разных типов
Юра (Юрий Александрович)
подскажите, в чём принципиальная разница между chan bool и chan struct?
В первом случае ты из канала сможешь вычитывать булеановые переменные, у которых будет значение. Во втором случае, ты будешь вычитывать пустые структуры, у которых значения никакого нет. Т.е. в первом случае, читая из канала ты получаешь информацию о том, что там что-то есть, и информацию о том, что именно там есть. Во втором случае ты получаешь только информацию о том, что там что-то есть.
Юра (Юрий Александрович)
т.е. каналы типа struct используются не для передачи информации, а для управления выполнением. А каналы всех остальных типов и для управления выполнением, и для передачи информации.
Юра (Юрий Александрович)
а есть ли под капотом какая-либо разница? Например, дополнительные оптимизации?
передача пустых структур требует меньше ресурсов, т.к. у пустой структуры нулевой размер.
Anonymous
Кіт ✙
почему key здесь использует женерик any, но не использует comparable? Ему в прикол рефлексию трогать, чтобы потом за 38нс отрабатывать?
Юра (Юрий Александрович)
почему key здесь использует женерик any, но не использует comparable? Ему в прикол рефлексию трогать, чтобы потом за 38нс отрабатывать?
А это точно дженерик? Могу предположить, что этот код родился раньше, чем родился констреинт Comparable Т.е. проверка типа через рефлексию уже тогда была, а вот констреинтов типов еще не было.
Кіт ✙
хотя, может, в 1.19 починили. Надо посмотреть
Юра (Юрий Александрович)
до 1.18 да, any был алиасом на interface{}. Но почему ж не пофиксили, в таком случае? У меня 1.18 стоит, если что
скорее всего он до сих пор является алиасом к interface{} в таком контексте использования.
Илья
это же не так работает
Юра (Юрий Александрович)
Кіт ✙
Обратная совместимость. Нельзя ж менять сигнатуры функций.
так non-comparable ключи всё равно паникуют, разве что делают это в рантайме, а не компайл-тайме
Илья
а зачем тебе non-comparable ключ в контексте?
Кіт ✙
а ты хочешь создавать типизированный контекст?
я хочу, чтобы WithValue не был таким медленным мне не в кайф брать этот код и фиксить, кладя субпэкеджем для пользователя
Юра (Юрий Александрович)
Есть некий старый код, который передает ключи приемлемого типа. Если изменить сигнатуру функции, то вообще компилиться может перестать. Например эта функция может где-то передаваться как параметр, сохраняться в какую-то переменную и т.д.
Кіт ✙
pprof и вперед
спасибо за совет, когда-нибудь обязательно им воспользуюсь
Илья
гений
Кіт ✙
я хочу, чтобы WithValue не был таким медленным мне не в кайф брать этот код и фиксить, кладя субпэкеджем для пользователя
ладно, просто скопипиздил context.go, убрал интерфейс Context, оставил всю остальную мишуру. Поправил сигнатуру. Только думаю теперь, как назвать, чтобы не было коллизий - в интерналы засунуть, что ли. А в целом, доволен
Илья
А этот контекст не получится несовместимым с "настоящим" контекстом, и его нигде не будут принимать?
тут нужно понимать что он оптимизирует 100% НЕ узкое место в его коде
Кіт ✙
А этот контекст не получится несовместимым с "настоящим" контекстом, и его нигде не будут принимать?
неа, везде принимаю context.Context. Я это делаю только для внутреннего использования
Кіт ✙
у меня сейчас в сервере вообще нет контекстов. И раз уж их вводить - я для начала забенчмаркал ту часть функционала, которую использует фреймворк. Увидел, что медленно - увидел, что легко поправить - поправил. Я не понимаю, почему ты пытаешься доебаться. Чаю завари, что ли
Кіт ✙
нет, 38нс на фоне парсера, который простейшие запросы за 100нс+ парсит, и по 2к на всякие посложнее - это действительно мелочь. Но если я сейчас начну забивать на это, то что будет потом?
Vitaly
кто-нибудь может объяснить, почему тут выводится что угодно, но не "ABCD"? https://play.golang.com/p/l1Iv7o7MSLV вопрос о синхронизации вызовов. для этого добавлен мок, но от него нет толку
Илья
почитай как работает шедулер
Кіт ✙
очень даже очевидно. Если надо - на каналах синхронизируй момент старта горутины
Emin Zalaev
почему ) это как-то не очевидно
Ты хочешь асинхронные функции последовательно запустить?
Илья
синхронизируй с помощью каналов
Кіт ✙
главное, chan struct{}, а не bool.
Emin Zalaev
Кіт ✙
iostream
как скомпилировать .exe под винду чтобы оно при запуске требовало права админа?
iostream
я не умею
iostream
короче
iostream
у меня служба под винду, она устанавливается, но не запускается
iostream
и почему-то в файлы ничего не пишет, хотя если запустить не как службу то пишет
iostream
The service did not respond to the start or control request in a timely fashion
iostream
почему........
Vladislav
ну тогда научись для начала правильно задавать вопрос, в первоначальном ничего про службы не сказано
iostream
да эт новый уже
iostream
имеется программа, при запуске читает конфиг: data, err := ioutil.ReadFile("config.json") при обычном запуске всё отлично клубнично читает при запуске программы как службы windows возвращает ошибку (не могу записать ее в файл, а консоли нет, посмотреть тоже не знаю как) почему? и как фиксить?
iostream
os.Open() вместо ioutil.ReadFile() также выкидывает ошибку
и вообще видимо любые операции с чтением файлов
Null
🈯 Регулярные выражения в Go https://medium.com/@hrosch/regular-expressions-in-go-c90ebedf58d6 @Golang_google
Алекс
Evgeny
не, в смысле, там логические ошибки
Anonymous
🈯 Регулярные выражения в Go https://medium.com/@hrosch/regular-expressions-in-go-c90ebedf58d6 @Golang_google
Я недавно неделю втыкал на этих регулярках, так шо статья норм раздупляет
aaalitvinov
Кто нибудь решает озоновские задачки? Что-то на мой взгляд они переборщили с их сложностью ))
aaalitvinov
Кому этот озон нужен?
Чтоб туда - теперь надо весь литкод прорешать
Alexey
Кто нибудь решает озоновские задачки? Что-то на мой взгляд они переборщили с их сложностью ))
а что там за задачи? Не участвовал даже, можно в личку если что. Из интереса, что там они такое выдумали
Артем
Всем привет. Подскажите, лучше реализовывать загрузку файлов server - server через форм дату?
Мирон
есть ли разница между, если есть то какая var a struct .. func(){ }() и func(a struct){ }(a)
Мирон
я же и так и так получаю доступ к ней