Vlad
Подскажите, почему паника никогда не вызывается?
https://play.golang.org/p/jbt7lzniCqW
Karey
Потому программа завершается раньше чем успевает выполниться горутина
Vlad
Это справедливо даже если написать i < 100000000?
Vlad
ну, или любое другое большое число
Karey
Вероятно
Karey
Но например вот этот пример у меня стабильно выдает панику - https://play.golang.org/p/nYihXX3GMDn
Vlad
спасибо
Заур
Как интересно работает play.golang
Заур
Каждый раз компилирует код
Заур
Или есть интерпретатор какой-то?
Oleh
Компилирует
Oleh
Как go run
Заур
А как они защищают свою систему от системных вызовов и тп
heavycharged
у них песочница какая-то
Заур
https://play.golang.org/p/u7uwXtxyWaN
Aleksandr
https://eng.uber.com/schemaless-rewrite/
Slava
https://github.com/npm/npm/issues/19883 это просто огонь
Bohdan
Ну там тестовая ветка, и уже закрыли, а так да, провтыкали
Bohdan
5.7.0 - в плане експерементальная
Kirill
Kirill
но вы заценили, да?) 5.7.0 - пререлиз
Kirill
https://semver.org
Vladimir
Vladimir
Всегда
Bohdan
у ниж же типа четная первая релиз, не четная експерементальная
Bohdan
http://www.opennet.ru/opennews/art.shtml?num=48125
Bohdan
для ЛЛ:
Проблема уже решена в обновлении 5.7.1. Массовых проблем удалось избежать благодаря тому, что в репозитории выпуски npm 5.7.x были помечены как экспериментальные и не доставлялись через каналы обновления стабильных релизов. При этом на сайте анонс был опубликован в форме, не отличающейся от объявлений стабильных релизов, что ввело в заблуждение некоторых пользователей, которые попытались перевести на NPM 5.7 свои рабочие системы. Также интересно, что сообщение об ошибке с описанием проблемы было отправлено за неделю до релиза 5.7.0, но осталось без внимания разработчиков.
Bohdan
кто напоролся тот ССЗБ
Vladimir
Vladimir
А npm update npm ставил всегда старшую
Vladimir
Даже если выбран не тестинг
Michael
жесть
Chebyrash
Chebyrash
Pawel
То, что npm придумали идиоты, коственно доказывает существование yarn, который делает тоже самое, но типа правильнее. Фейсбуковцы даже не пошли в npm-репозитории это исправлять, сразу с нуля его запилили. Но корень проблем так не поправить.
Bohdan
Ребята. подскажите, если я бы хотел такую систему:
Имеем конфиг файл, который создает сущность, поля в ней, связки с другими сущностями и тд, переводы и тд и на базе этого файла и вот закинув этот файл в разработанную систему автоматом генерился бы раздел в admin panel.... таблица в db и тд..
Кейс админки или CRM например.
Реально такое? Пример файлика с другой системы.
Bohdan
Kirill
Bohdan
А есть идея какая свзязка пакетов?
Bohdan
А то я только учусь
Kirill
но кодировка да, заставила поностальгировать ;D
Kirill
Pawel
Kirill
Bohdan
Конфиг файл например в json
Bohdan
Потому что может будет DB no SQL
Kirill
Bohdan
Подсмотрел данную систему у php-шника со стажем. он там свой фреймворк запилил и переписывает с симфони и тд крупные сайты когда они уже не справляются, и принцип работы у него такой, дизайнер рисут дизайн, верстальщик клепает шаблон в нужном формате и тупо передает список переменных, которые уже после он описывает в конфиг файле и вуаля, CMS готова.
Правда у него там админка страшненькая, но сказал что если заморочиться можно и на bulma и на material desing любой перенести.
Kirill
последняя фраза - wut?
Kirill
и на *название css фреймворка*, и на *название дизайн гайдлайна*
Mikhail
на main же unittest не пишут?
Kirill
Kirill
Пишут
Mikhail
vld
В принципе есть symfony doctrine где ты описываешь в yaml твои сущности и потом генериш таблицы, идея такая же как Вам надо, можете посмотреть как там реадизовано.
Я думаю можно прикрутить схожим способом генерацию админки, как в джанго)
Вообще смотри исходники и будет счастье
Aleksandr
просто doctrine. К symfony отношения не имеет
G72K
Ого. Там про раст, но к гошечке тоже подходит при случае https://github.com/dtolnay/semver-trick/blob/master/README.md
Bohdan
Bohdan
http://adminify.genyii.com/#/
Bohdan
Например
Bohdan
Wingman
Помогите пожалуйста осознать пути решения проблемы гоу-вей :)
Есть telnet-клиент на гошке, работает примерно так:
"верхняя" функция TopFunc(): запускает горутину ну, скажем, "Execute(chan output)", которая а) читает из некоего net.Conn, б) всё прочитанное отправляет в output<-
Верхняя TopFunc() читает всё из chan output, парсит, ищет то, что нужно.
Ситуация: если TopFunc нашла что-то ей нужное в output — необходимо прервать выполенение горутины.
Насколько я понимаю, это можно сделать ещё одним каналом - например, 'done<- bool' — передать его дочерней горутине и в Execute слушать его примерно так:
for {
select {
case <- done: завершаем работу
default:
conn.Read(buf)
output <- buf
}
}
Однако если в conn.Read не будет более никаких данных - то всё, жопа, горутина залипла навечно?
Daniel
https://golang.org/pkg/net/#TCPConn.SetReadDeadline
Alexander
А можно в "верхней" функции закрыть conn? Тогда Read, наверное, вернёт ошибку и продолжит выполнение
Wingman
Wingman
Wingman
Суть в том, что TopFunc может ждать, например, prompt (приглашения) для ввода команд.
Щас прям скину пример
Wingman
Wingman
вот дождавшись DGS-3650:5# — TopFunc должна не прибить коннекшн, а вернуть себе управление и отправить в net.Conn какую-то команду
Daniel
что такое "вернуть себе управление"?
Daniel
обычно на каждый коннект запускают две горутины
Daniel
одна читает из него и пихает в канал
Daniel
другая читает из канала и пишет в коннект
Daniel
если надо просто пописать в коннект - при чем тут чтение?
Wingman
Daniel
но если прям приспичило завершать чтение - ставите короткий дедлайн, делаете попытку чтения, проверяете ошибку, и, если это дедлайн истек - запускаете по новой