Илья
если не считать основ плюсов, то да
Anonymous
Понятно, а ты замечал какие-нибудь выроженые плюсы или минусы в go над другими яп?
Anonymous
И сколько времени в день ты уделял на изучение go
Илья
Понятно, а ты замечал какие-нибудь выроженые плюсы или минусы в go над другими яп?
а как я мог их замечать, если не писал на других языках?
🅞leksiy
Понятно, а ты замечал какие-нибудь выроженые плюсы или минусы в go над другими яп?
Есть же куча статей, где можно ознакомиться с плюсами и минусами. Опять же все зависит от того, с каким языком сравнивать
Valeriy
че за термины сраные
FIFO First in first out - очередь LIFO Last in first out - стэк
Oleksandr
Можете порекомендовать книги по Go для начинающих? Желательно на русском
MDWIT
Можете порекомендовать книги по Go для начинающих? Желательно на русском
golang-book.ru Если прям новичок После этой книги другие нет смысла читать, имеет смысл находить себе задачи и решать их
Oleksandr
А что-то посложнее?
Кіт ✙
Можете порекомендовать книги по Go для начинающих? Желательно на русском
go.dev/tour, гугл переводчик с радостью переведёт тебе целую сраничку
Oleksandr
go.dev/tour, гугл переводчик с радостью переведёт тебе целую сраничку
Все не настолько плохо, чтобы переводить всю страницу)
Илья
приятного
Никита
lslave
Может кто нибудь подсказать, почему ругается? В доке написано, что нулевое значение у decimal 0
MDWIT
Может кто нибудь подсказать, почему ругается? В доке написано, что нулевое значение у decimal 0
decimal.Zero вроде нужно указывать Я могу ошибаться, щас за 5 сек в интернете посомотрел https://www.itcodet.com/golang/golang-decimal-class-examples.html И еще в доке написано так "The zero-value is 0, and is safe to use without initialization" Мне кажется его безопасно вообще не указывать. То есть достаточно указать тип, если ты ждешь там 0
lslave
Мне надо использовать это в операции сравнения, там вообще имеются такие операции?
lslave
Invalid operation: body.Balance < 0.0 (mismatched types decimal.Decimal and untyped float)
lslave
Кіт ✙
Invalid operation: body.Balance < 0.0 (mismatched types decimal.Decimal and untyped float)
значит, низлежащий тип decimal.Decimal не является флоатом
lslave
значит, низлежащий тип decimal.Decimal не является флоатом
При захвате данных из Постргреса(поле decimal) во флоат без ошибки передасться? Если тут изменю на флоат
Ваня Гречка
Поэтому я баланс люблю хранить в копейках и по ряде других причин
lslave
Из за неточности в работе с деньгами, вот сейчас использую флоат, посмотрим, что выйдет, если что перейду на копейки, всем спасибо за помощь
lslave
Мб порты стоит указать?
lslave
docker run --name testdb -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=root -e POSTGRES_DB=habrdb -p 5432:5432 -d postgres
lslave
При запуске докер контейнер
lslave
Тогда не знаю
Andrey
запусти докер контейнер добавив ключ --net=host
Andrey
ты убедился что докер и база в нем поднялась?
Andrey
не работает
Andrey
ну а теперь зайди сам в контейнер и ручками внутри попробуй в базе подключится, кли там всегда имеется в комплекте
Andrey
я вроде все дословно описал
Andrey
дай скрин хотя бы
Andrey
Ну хз. Выведи хотя бы список имеющихся баз
Andrey
Ну смотри. Без того ключа, что я написал вышел, ты не смог был обращаться к контейнеру. Если это не помогло, надо проверить, а все ли у тебя в порядке с базой самой.
Andrey
Ну понимаешь, я даже не вижу чтобы ты базу создал через миграцию (например), а уже к ней коннектишься
Andrey
Так просто не выйдет.
Andrey
Я уже спать пошел, так что "Окей Гугл" в помощь
anhckie
гайз, вопрос по тестированию. у меня на борту аппки fiber, реализация паттерна стратегия для подбора внешнего api, в который я по крону хожу за получением данных. этих внешних API оптенциально может быть большое кол-во - от 10 до 100
anhckie
нужно ли тестировать писать каждой стратегии тесты? кажкется, что да, но с другой стороны, что тестировать?
anhckie
типа, слать реальзные запросы - ну я ж свою аппку тестирую, а не их сервисы
anhckie
проверять статус ответа? ну а если у них 500, я ж не задеплоюсь, бо тесты упадут)
anhckie
проверять логику того, что я потом делаю? так я просто в бд складирую, на репы я тесты отдельно писал
MDWIT
сохрани семплы ответов из этих сервисов, и тестируй на них, тебе главное понять что твой код работает. Ну и в том числе негативные сценарии нужно проверить
anhckie
а лично свои эндпоинты я уже тоже описал тестами
anhckie
типа проверять, что у них респонс не изменился?
anhckie
но так тогда я делаю запрос во внешний сервис. мне это смущает, насколько это ок, что у меня в тесте зависимость от десятков внешних сервисов
MDWIT
но так тогда я делаю запрос во внешний сервис. мне это смущает, насколько это ок, что у меня в тесте зависимость от десятков внешних сервисов
так тебе и не нужно на них запросы делать, тебе нужно сделать тест таким образом, чтобы ты мог без них проверить работу, через моки, семплы, это уже сам выбирай)
anhckie
ты имеешь ввиду замокать их респонсы и... что дальше?
anhckie
у меня после их получения просто запись в бд через слой репозиьтория, которые я покрыл тестами)
anhckie
я потому в ступор и впал )
MDWIT
у меня после их получения просто запись в бд через слой репозиьтория, которые я покрыл тестами)
а оно у тебя идет сразу в базу без изменений? Или ты все же меняешь данные под струтуру твоей базы?
Maks
у меня после их получения просто запись в бд через слой репозиьтория, которые я покрыл тестами)
а ты юнит тест чего именно делаешь? Если это юнит тест то тебе в базу писать не надо по идеи
anhckie
а оно у тебя идет сразу в базу без изменений? Или ты все же меняешь данные под струтуру твоей базы?
анмаршал в структуру и все, в бд пишутся сырые данные по сути, расчеты будет производить другой сервис
anhckie
реализовывается интерфейс, в рамках которого есть 1 метод, в котором происходит регистрация урла и отправка запроса с необходимыми параметрами, после чего анмаршал респонса и передача на слой репозиотрия
MDWIT
анмаршал в структуру и все, в бд пишутся сырые данные по сути, расчеты будет производить другой сервис
Я бы покрыл тестами всю эту логику: Сделал запрос -> получил данные -> анмаршал -> запись в мок базу -> проверка данных в мок базе Запрос тут на мок, либо можно без запроса и получешие семпла ответа из файлика)
Grigorij
угу наверно 2 теста будут 1 рабочий замоканный респонс и 1 сломанный
Maks
рабочий тест должен покрывать все граничные значения и средние. Не рабочие тесты должны покрывать все поломанные значения (которые не граничные и которые в успешные не входят). При этом не успешный должен показывать что на каждом этапе может быть сломан и вернет разные ответы возможно в зависимости от того где сломано, если такое возможно
anhckie
1. респонс на мок или семпл - ок 2. дальше просто анмаршалинг 3. дальше просто забись в бд (через репозиторий, который уже покрыт тестом)
anhckie
мне тестить анмаршалинг? ))
anhckie
не вкурю никак
anhckie
req.SetRequestURI(value.url + value.t + t) if err := a.Parse(); err != nil { panic(err) } _, body, errs := a.Bytes() var resp bncResponse if err := json.Unmarshal(body, &resp); err != nil { panic(err) } if resp.ip == "" && resp.Time == 0 { continue } lp, err := strconv.ParseFloat(resp.ip, 64) if err != nil { panic(err) } _, err = edp.CreateED(context.Background(), repo.CreateEDP{ EID: exchID, CDID: value.ID, LP: lp, }) if err != nil { l.Error(err) }
anhckie
вот пример одной из стратегий, для наглядности
anhckie
edp.CreateED - протестирован соответственно в пакете репозиториев
anhckie
так, кажется, я придумал. надо тестить последовательность действий
anhckie
что ожидается отправка, ожидается конвертация и потом вызов метода репы
anhckie
вдруг кто-то что-то заккоментит в одной из стратегий и похуевит. вопрос - это из коробки в го делается или либа нужна какая?
Anonymous
Бузург
люди кто знает есть ли туториалы как с помошью golang добавить в яндекс карту, по координатам добавить обьект?
Илья
Смотри документацию их API
Dmitry
люди кто знает есть ли туториалы как с помошью golang добавить в яндекс карту, по координатам добавить обьект?
возможно вопрос не по теме, так как яндекс карта на фронте отображается, а golang про бекенд
Oleksandr
Тоже стало интересно. Может это добавление метки в какой-то аккаунт?
Бузург
в youtube только видео о js
Oleksandr
в youtube только видео о js
Потому что єто только на js и делают!
Бузург
хммм
Бузург
железная логика
Oleksandr
Советую изучить основьі фронтенда
Maks
Ты из хоста коннектишься?
Maks
Host localhost или 127.0.0.1 port 5432
Maks
Если ты из системы коннектишься