Игроман
Вместо книжек по 500 страниц нужна просто одна синтаксическая диаграмма. Уже устал по крупицам из разных источников собирать полную картину.
George
Какая задача решается?
Игроман
Задача -- найти ЕДИНОЕ и ПОЛНОЕ описание языка, не рассыпанные по разным книжкам и сайтам
xasai.denet
https://golang.org/doc/
George
https://golang.org/ref/spec На здоровье
xasai.denet
А если прям кратенько, то первая глава книги "Black Hat Go" закроет ваши вопросы по синтаксису
George
https://golang.org/ref/spec На здоровье
Если ещё конкретнее про упомянутый пример с функциями и по сорцам не ясно - вот https://golang.org/ref/spec#Function_types
George
А если прям кратенько, то первая глава книги "Black Hat Go" закроет ваши вопросы по синтаксису
Товарища интересует формальное описание синтаксиса, насколько я понимаю. Которое можно для формирования абстрактного синтаксического дерева использовать
Игроман
xasai.denet
А по-моему, человек просто запутался в различиях методов от функций
Игроман
Я запутался во всяких книжках, похожих на Детгиз.
Игроман
Каждая книжка рассчитана на детскую аудиторию.
Maks
Так ты просто начни что то делать а потом разбирайся
Maks
Го довольно простой для этого
xasai.denet
Прочитайте effective go, по ссылке выше
Maks
Там из сложного это наверное каналы
Maks
И то что есть несколько способов создать объект или просто выделить под объект память обнуленную
Maks
И есть мэйк
George
Лично мне отличным стартом показался интерактивный туториал A tour of go. Там и про функции, и про методы, и про всё. Читать "детские" книжки и туториалы - это нормально, если не знаешь "детских" основ языка. Все там были. https://tour.golang.org/welcome/1
George
Если детскость - это объяснение что такое переменная, а что такое цикл - то там такого нет, всё лишь про синтаксис и особенности
Игроман
Если ещё конкретнее про упомянутый пример с функциями и по сорцам не ясно - вот https://golang.org/ref/spec#Function_types
Спасибо! Очень помогло. А то я уж не надеялся найти для Go что-нибудь простенькое типа Страуструпа
Maks
какой сейчас промышленный стандарт в го конфигурирования?
Maks
типо у меня есть класс отвечающий за коннект к дб
Maks
и есть конфиг для него
Maks
вариантов тьма
Maks
биндиться на томл, енв, ямл прям в описании полей
Maks
или заполнять при создани экземпляра через конструктор условно и передавать параметры
Maks
или еще что то
Maks
viper?
Vitaliy
viper?
Ща все стремится перейти на env var.
Vitaliy
Контейненизация приложений к тому подталкивает
Vitaliy
И кубер
Maks
А там есть биндинг из енва как в томл?)
Vitaliy
А там есть биндинг из енва как в томл?)
Думаю, для типов, в том числе сложных, надо кастомизировать парсер-демаршализатор
Vitaliy
А там есть биндинг из енва как в томл?)
Есть либы для переменных окружения
Maks
https://github.com/caarlos0/env
Maks
Типа такой
Maks
ок. Вообще мне кажется ямл удобнее
Maks
со своими вложенностями
Maks
уровнями
Maks
Но да ладно
Vitaliy
ок. Вообще мне кажется ямл удобнее
Ну, кажется, что удобнее и то, что пртменяется в этих ваших-наших энтерпрайзах - две разные вещи, увы.
George
У всего своё применение, одно другому не мешает. У нас, к примеру, конфиг в ямле, но всё то же с более высоким приоритетом можно задать через переменные окружения. Нам в пайплайнах для тестов удобнее через окружение, в реальном бою через файл.
Maks
Я просто на пыхе прывык локально енв конфижить который при сборке докера юзается, а в проде у меня были енвы через сиайку. Но как в го делают не знал
Maks
видел что в го есть биндинг удобный вот щас с ним разбираюсь
Maks
похоже что везде одно и то же)
Maks
Я тут подумал что бы не костылить дев и прод/стейдж/тест сборки - лучше локально доже в докер запихать и пересобирать контейнер когда енвы меняешь и запускать приложение го в докер контейнере.
Maks
Что бы енвы брать из переменной окружения
Maks
и не делать godotenv.Load()
Maks
Вообще
Vitaliy
В докере можно при запуске контейнера указать, из какого dotenv файла обогатить окружение приложухи.
Maks
дак я потому и говорю, я с докером работаю
Maks
мне правда пока не до конца понятна работа с сетью между разными контейнерами. У меня есть 3 сервиса и они между друг другом общаются, находясь внутри одной докер сети (одна создает другие екстернал). И там приходится указывать для обращения имя контейнера и внутренний порт. Это немного сегодня меня запутало.
Maks
а как у вас деплоятся го приложения? просто берется голанг образ, вызывается гобилд и потом cmd app
Maks
или в одном контейнере билдится приложение а потом скретчится в другой контейнер с минимальным весом?
Inellok
Как в gomobile экспортнуть в .aab?
Таршиш
Мне непонятен смысл идеи связки с докером. Это такой режим тестирования? Или Вы сразу клиенту образ докера поставляете? А клиент типа должен быть спецом и уметь работать с докером. Кто-нибудь слышал что-нибудь про "Коридорное тестирование" или все ломанулись в докер, забыв про классику?
🔥
Контейнеризация штука классная
Vitaliy
а как у вас деплоятся го приложения? просто берется голанг образ, вызывается гобилд и потом cmd app
Да, run go mod download, run go build - o /path/to/bin/folder/app /path/to/cmd/app/main.go, cmd /path/to/bin/folder/app
Vitaliy
Где-то так
Игроман
Компилятор gccgo не понимает os.ReadFile А если компилить с помощью go build ... то проект прекрасно компилится В чем фишка?
Null
Golang Online Meetup в Mail․ru Group! 5 августа в 19:00 Mail․ru Group проводит онлайн-встречу по GO. В программе — три технических доклада от коллег из inDriver, Delivery Club, ВКонтакте. Расскажут про перенос сервиса из монолита, опыт разработки микросервисов и разные пути написания парсеров. Участие бесплатное, зарегистрироваться и просмотреть программу можно по ссылке. ➖➖➖ 5 августа, 19:00 по мск Регистрация на мероприятие
Vitaliy
Мне непонятен смысл идеи связки с докером. Это такой режим тестирования? Или Вы сразу клиенту образ докера поставляете? А клиент типа должен быть спецом и уметь работать с докером. Кто-нибудь слышал что-нибудь про "Коридорное тестирование" или все ломанулись в докер, забыв про классику?
С одной стороны, прямо клиенту поставляется услуга, а во что её заворачивают, то это проблема провайдера услуг. Или “клиент” — это что-то другое? Кто такой “клиент” в процитированном сообщении? А вот заказчик. Заказчик сам устанавливает, как ему предоставлять сорцы. Но у нас обсуждение про то, что делать с сорцами дальше. Деплоить вручную через ssh + vim, ансайбл, папет, женкинс, или завернуть в контейнер, хэльмы написать — и в кубер… Вот про это говорим
DI
Добрый день. buf := make([]byte, 7, 7) r := bufio.NewReader(connector.udpConn) _, err := io.ReadFull(r, buf) fmt.Println("Error: ", err) При вызове ReadFull, поток падает, если отсутствуют данные в r(по UDP всегда приходят данные, если устройство в сети. в доках не нашел ничего, как проверить это) В документации не нашел ничего, что связано с этим. Подскажите, если кто знает как лучше читать данные в таком случае
Dmitry
Emil
Хочу бота написать для телеги, но библиотеки что-то доверия не вызывают те, что я нашел. Лучшее без библиотек или может кто знает хорошую?
Maks
К тому же сырцы не обязывают использовать докер
Maks
точнее код. Код завязан на переменных окружения. А это уже задача заказчика указать их такими, какие ему нужны
Игроман
Что не так с этим кодом: package main import ( "encoding/json" "fmt" ) func main() { type MyId struct { id int json:"id" } var id MyId fileText := {"id":1357} jsonParsingError := json.Unmarshal([]byte(fileText), &id) if jsonParsingError != nil { panic(jsonParsingError) return } else { fmt.Printf("ID: %d", id.id) } }
Игроман
Тег Джейсону нужно наверное в ``
Там стоят кавычки, только при попипасте в Андроиде почему-то пропали
Игроман
Дык у меня есть готовый json-формат и в нем поле "id" написано на нижнем регистре
Игроман
Спасибо, помогло!
Null
Тест Насколько хорошо вы разбираетесь в Go? https://nuancesprog.ru/p/2254/ @Golang_google
Айдар
Если тут есть новички, кто начал осваиваться в Go, отпишите в лс. Я создал беседу из нескольких человек, где мы сможем расти вместе).