Null
⁉️ Как проводить тестирование программ на Go?
📌 Обсудим это на открытом уроке 9 ноября в 20:00, на котором мы:
— Рассмотрим процесс тестирования программ на Go;
— Поговорим про понятие табличных тестов;
— Затронем тему пакета testing и библиотеки testify.
🦾 В результате вы сможете писать юнит-тесты к программам на Go. Также на занятии познакомитесь с преподавателем и программой онлайн-курса "Golang Developer. Professional" от OTUS.
💣 Проходите вступительный тест и регистрируйтесь на открытый урок
Реклама. Информация о рекламодателе на сайте www.otus.ru
Null
🔧 Сайт-шпаргалка по языку Go
https://devhints.io/go
#go #cheatsheet
Null
Roman
добрый день, есть какие-то способы закрыть го рутину? у меня там ws соединение, не могу закрыть
Илья
Добавить канал или контекст для отмены
Vladislav
можно еще завершить main 😆
Roman
Emin Zalaev
ctx.Done
Илья
Roman
спасибо
Peter
Привет.
Подскажите, кто-нибудь решал вопрос boilerplate приложений на Golang? В частности меня интересует вопрос обновления.
Например, я запилил шаблонное приложение, команда на базе этого сделала себе сервис, а потом я внес в шаблонное приложение апдейт и хочу, чтобы этот апдейт получила команда.
Илья
Зачастую такие проблемы решаются командным фреймворком, куда летят все аптейды
Peter
В такой фреймворк и всякие middleware для авторизации закидываются?
Peter
Пока, честно, сложно представить это именно как фреймворк.
Peter
Я недавно в technical radar от Thoughtworks видел тулзу https://cruft.github.io/cruft/, которая решает проблему обновления шаблонных приложений, но пока не видел опыт использования.
Konstantin
Всем привет! Кто-нибудь знает, как работать с форматом даты
DD/MM/YYYY
?
Илья
Konstantin
Пытаюсь перевести, выдаёт 0001-01-01 00:00:00 +0000 UTC
Илья
Konstantin
Konstantin
А если
time.Parse("21/02/2006", data)
Илья
тогда 02/01/2006
Илья
Илья
Это форматы
Roman
ребят, получаю вот такое предупреждение в функции this return statement may be reached without using the cancel var defined on line 37lostcancel
на 37й строке ctx, cancel := context.WithCancel(context.Background())
ctx передаю в функцию
func some(ctx){
for {
select {
case <-ctx.Done():
log.Printf("stopped the search in")
return
}
Dmitry
Roman
Dmitry
есть просто cancel()
этого мало. нужно его в defer еще вызывать, чтобы если в обычном случае нет вызова cancel, был вызов cancel, чтобы освободить ресурсы
Roman
спасибо
Roman
Добавить канал или контекст для отмены
вообщем перепробовал все что в моих силах, может еще что-то придумаю, но го рутину не закрывает, case <- ctx.Done(): и `cancel()` работают, но рутина продолжает работать. Если есть у кого возможно посмотрите пожалуйста, https://pastebin.com/2tJvdfan
Andrey
Andrey
Roman
Rostislav
ну типа так
https://go.dev/play/p/LsRcqTygz0S
Сори за тупой вопрос. Я новенький в го. Но почему здесь нужно юзать дженерик, а не прописать в 27 строке просто
func testFunc(i []testInterface) {
Не понимаю, в чем проблема привести структуру к интерфейсу без прибегания к дженерику
Выглядит как код ради кода
Чем такой подход можно объяснить в го
Roman
Илья
Илья
testFunc([]testInterface(str)) выдаст ошибку
Andrey
Rostislav
🔫
Rostislav
Я ставлю на полиморфизм)
kostyaBro
Эмм причём тут полиморфизм
kostyaBro
А ну с натяжкой
Илья
А чем отличается абстракция от полиморфизма?
kostyaBro
Вообще да, каст массива интерфейсов к строке например, к сожалению не сделать
kostyaBro
Из за того как типы устроены и хранятся даже unsafe мне не помог помню
kostyaBro
Но ты мог заранее сделать именно массив интерфейсов
kostyaBro
Вообще такое.. придумывать задачу из пальца
Rostislav
Я прост пришел с джавы, и там можно сделать метод, который принимает лист (аналог слайса)интерфейсов, а в него можно передать лист с объектами, реализующими этот интерфейс. Приседания с дженериками в го чет не понял
kostyaBro
kostyaBro
Я тоже пришёл с java, приятно познакомиться
Кіт ✙
я пришёл с питона, досведания
Eugene
Кіт ✙
kostyaBro
Илья
Это соль или снег?
Rostislav
kostyaBro
Кіт ✙
это настоящий суслик я был снегом задавайте свои вопросы
kostyaBro
Илья
Rostislav
Rostislav
kostyaBro
Сорян)
Это как придти в java после Haskell и сказать что у вас лямбды не те
kostyaBro
А вообще 5 минут написать если тебе надо
kostyaBro
Но вопрос, тебе действительно надо?
kostyaBro
В том плане, что, ты сейчас пишешь софт и там вот ну очень не хватает именно java's array
Rostislav
Ок, я понял, что в го нужно приходить по принципу «забудь все, что было до»)
kostyaBro
Юра (Юрий Александрович)
В чужой язык со своим синтаксисом не ходят.