Илья
если не считать основ плюсов, то да
Anonymous
Понятно, а ты замечал какие-нибудь выроженые плюсы или минусы в go над другими яп?
Anonymous
И сколько времени в день ты уделял на изучение go
Илья
Oleksandr
Можете порекомендовать книги по Go для начинающих? Желательно на русском
Oleksandr
А что-то посложнее?
Кіт ✙
Oleksandr
Илья
приятного
Никита
lslave
Может кто нибудь подсказать, почему ругается? В доке написано, что нулевое значение у decimal 0
lslave
Мне надо использовать это в операции сравнения, там вообще имеются такие операции?
lslave
Invalid operation: body.Balance < 0.0 (mismatched types decimal.Decimal and untyped float)
lslave
Кіт ✙
Ваня Гречка
Поэтому я баланс люблю хранить в копейках и по ряде других причин
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
но так тогда я делаю запрос во внешний сервис. мне это смущает, насколько это ок, что у меня в тесте зависимость от десятков внешних сервисов
anhckie
ты имеешь ввиду замокать их респонсы и... что дальше?
anhckie
у меня после их получения просто запись в бд через слой репозиьтория, которые я покрыл тестами)
anhckie
я потому в ступор и впал )
Maks
anhckie
anhckie
реализовывается интерфейс, в рамках которого есть 1 метод, в котором происходит регистрация урла и отправка запроса с необходимыми параметрами, после чего анмаршал респонса и передача на слой репозиотрия
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
Oleksandr
Тоже стало интересно. Может это добавление метки в какой-то аккаунт?
Бузург
в youtube только видео о js
Бузург
хммм
Бузург
железная логика
Oleksandr
Советую изучить основьі фронтенда
Maks
Ты из хоста коннектишься?
Maks
Host localhost или 127.0.0.1 port 5432
Maks
Если ты из системы коннектишься