@gogolang

Страница 542 из 1630
Vadiimmm:-)))
29.09.2017
08:35:59
Vadiimmm:-)))
29.09.2017
08:40:56
https://img-9gag-fun.9cache.com/photo/a0pbDeX_460sv.mp4
Каждая ручка прошла юнит тест, но фунциональный в даннм контексте, тест - обе не проходят

живой пример

Google
Anatoly
29.09.2017
08:42:41
Тесты нужны 100%. Чтобы понтоваться уровнем coverage. ?
тесты нужны, чтобы какое-то время пребывать разработчику в комфорте, поскольку его изменения не сломали поведение ранее работающих участком кода. появление ошибки и ее исправление заканчивается добавлением нового теста. тесты по ошибкам - это регрессионные тесты.

странно обсуждать очевидное

Andrew
29.09.2017
08:43:45
странно обсуждать очевидное
Поэтому я и не обсуждал очевидное, а добавил ещё один плюс тестов. ))

Vadiimmm:-)))
29.09.2017
08:43:59
Тесты для кода нужны? Да – 36 ??????? 78% Что это такое? – 7 ? 15% Нет – 3 ? 7% ? 46 people voted so far.

пока никто не ответил - "нет", странно

я ожидал хотябы одного ответа "нет" ???

Anatoly
29.09.2017
08:44:40
Поэтому я и не обсуждал очевидное, а добавил ещё один плюс тестов. ))
Сорри, Андрей, это добавка к твоему сообщению.

Anatoly
29.09.2017
08:46:17
Не только, также с помощью тестов можно представлять как работает любой набор данных
а это tdd или bdd, чего может и не быть. но регрессионные обязаны быть в развивающейся системе.

Pawel
29.09.2017
08:48:05
А я и не говорил, что эт юнит тесты
тогда что хочешь доказать? для библиотек не пишут других тестов кроме -юнит. или у тебя есть пример функ. тестирования гуи-либы?

Google
Vadiimmm:-)))
29.09.2017
08:49:14
Не только, также с помощью тестов можно представлять как работает любой набор данных
Зачем??? 1. Берём фронтэндщика (можно 2шт) 2. Просим отправлять на ваш апи запросики 3. Смотрим логи. Всё (если ваши правки сломали чужой рабочий код, сидим на попе тихо, не ваша проблема)

Vadiimmm:-)))
29.09.2017
08:50:35
Если нет не апи ни интерфейса - кто будет это смотреть?
Просим фронтэндиков попинать компутер))

Mush
29.09.2017
08:50:47
Чушь какая-то )

Alexander
29.09.2017
08:51:34
я ожидал хотябы одного ответа "нет" ???
А ты по другому спроси: вы пишете тесты? :) И опрос анонимный :)

Mush
29.09.2017
08:51:38
Демон который периодически гребет данные из стороннего интерфейса попробуй в своё мировоззрение поместить

Vadiimmm:-)))
29.09.2017
08:51:59
Если при пинании компутера что-то отваливается, отпиливаем ногу фронтэнщику)))

Alexander
29.09.2017
08:52:43
а то конечно, все считают что они нужны. Я тоже. Но чтобы понтоваться тестами, они должны быть и функциональными, и и нтерграционными. А столько тестов я писать не собираюсь )

Мерлин
29.09.2017
08:55:20
не пишут тесты @ тратят недели на отладку принтами @ после каждого изменения повторять заново

такое

Vadiimmm:-)))
29.09.2017
08:55:56
???

Alexander
29.09.2017
08:56:01
Скиньте кто нибудь mysql.cnf с какого нибудь боевого сервера, plz

о да, а кто пишет тесты, не дебажат, вахахахах )

Vadiimmm:-)))
29.09.2017
08:57:28
зачем дебажить, когда есть fmt.Println))))

Димка
29.09.2017
08:57:30
Дали приложение, исправить багу. Нужно было в нескольких местах исправлять и добавить 1 канал. Тестов не было, исправлять отказался, поставил костыль, рядом комментарий.

Мерлин
29.09.2017
08:58:17
о да, а кто пишет тесты, не дебажат, вахахахах )
но меньше надо просто понимать, что юнит тесты — это та же отладка принтами, только автоматизированная

Pawel
29.09.2017
08:58:32
а то конечно, все считают что они нужны. Я тоже. Но чтобы понтоваться тестами, они должны быть и функциональными, и и нтерграционными. А столько тестов я писать не собираюсь )
функциональные, и интерграционные тесты в 99% случаев не нужны, ибо они неоправданно сложные и дорогие. Достаточно -юнит - дёшево и сердито

Google
Pawel
29.09.2017
09:01:50
зачем дебажить, когда есть fmt.Println))))
иногда delve спасает от 100 кратного перезапуска и переписывания print

Vadiimmm:-)))
29.09.2017
09:02:13
не в обиду если че)

пятницо

все мои подколы без злого умысла

Andrey
29.09.2017
09:04:59
был проект, небыло тестов, все хорошо работало и все были довольны, проект рос, и в какой-то момент начал ломатся, разработчики вместо внедрения фич чинили баги, когда баги починили решили не внедрять новых фич, а покрыть хоть как-то проект тестами, первые тесты которые были, это просто функции которые запускали другие функции, не ожидая какого-то ответа (просто проверяли не вылетело ли все в панику) и даже такие тесты нашли кучу багов в проекте, хз зачем я это пишу :)

ну в общем какой-то мало-мальски большой проект написать без тестов просто не реально (возможно я и все мои коллеги просто туповаты, такой вариант тоже не стоит исключать)

Димка
29.09.2017
09:08:40
Есть другая сторона медали. Мой коллега, каждой структуре пишет интерфейс. Каждое поле структуры приватное, и для неё написан геттер. И для каждого геттера написан юнит-тест. Хотя в большинстве они просто возвращают значение поля.

in favor
29.09.2017
09:09:26
Это странные тесты, на мой взгляд

Anatoly
29.09.2017
09:10:47
get/set отличный способ отлова несанкционированного изменения значения поля структуры.

при командной разработке иногда сокращает в разы время поиска проблемы, для одиночек неактуально

Anatoly
29.09.2017
09:12:19
не знаю

Andrey
29.09.2017
09:12:48
в других языках гетеры и сетеры часто используются, и в той-же идеи генерируются автоматически

странно что для го такого нету

Michael
29.09.2017
09:14:16
протестил кнопку нет - работает

Vadiimmm:-)))
29.09.2017
09:14:40
функциональные, и интерграционные тесты в 99% случаев не нужны, ибо они неоправданно сложные и дорогие. Достаточно -юнит - дёшево и сердито
я пока имел в опыте больше фунциональных, дабы гарантировать работу живущего проекта при запиле новых фич. Вот хотелось бы побольше опыта в юнит тестах, есть к чему стремиться

Pawel
29.09.2017
09:18:04
я пока имел в опыте больше фунциональных, дабы гарантировать работу живущего проекта при запиле новых фич. Вот хотелось бы побольше опыта в юнит тестах, есть к чему стремиться
попробуй по книжке роя ошерова втянуться, она не плохой считается. жаль нет аналогичной для гошечки - в дотнэте ужасные фреймворки для тн=естирования, в Го всё с этим хорошо

Google
Vadiimmm:-)))
29.09.2017
09:18:05
Помню на таком проекте запилил фичу, запустил тесты, 2 теста не прошли Смотрю, блин да они вообще не связанны с моей фичией, ну никак, почему ломаются. Начал смотреть в код, бац очень очень косвенно зависиость была таки. Без тестов я бы думал что все ок, и только на бою когда бы стали отваливаться клиенты, только тогда бы узнал что-то то не так, по логам, звонкам в тех поддержку, это же ппц

Pawel
29.09.2017
09:22:28
я - крайне редко. у меня ни когда не было 100% покрытия и я к этому не стремился.

Maxim
29.09.2017
09:23:38
Не понимаю пока с интерфейсами Могу ли я не вывести, а получить отсюда Id??? Как это сделать? func(c *routing.Context) error { fmt.Printf("%+v\n", c.Get(apis.User).Id) c.Write(c.Get(apis.User)) return nil } //&{Id:1}

В контекст записал, вывести могу, значит доступ к свойствам для дальнейшей работы с ними тоже должен иметь. Верно ведь?

Maxim
29.09.2017
09:27:38
@ruzzke_mir Я имею структуру type User struct { Id int `json:"id" db:"id"` } func (u *User) GetId() int { return u.Id } Как передать сюда мой параметр Id из контекста, что выше?

Mikhail
29.09.2017
09:31:16
Привет! Никто не юзает эту либу для тестов веб- и неочень- сервисов? https://github.com/stretchr/testify Нравится как выглядит, читаемо, кмк.

Maxim
29.09.2017
09:32:02
@ruzzke_mir что-нибудь вроде user := new models.User{"Id": c.Get(apis.User).Id} Но это не работает

Pawel
29.09.2017
09:34:51
@ruzzke_mir что-нибудь вроде user := new models.User{"Id": c.Get(apis.User).Id} Но это не работает
то есть ты спрашиваешь - как получить юзера по его ID? в таком случае при чём здесь контекст?

Michael
29.09.2017
09:34:58
вместо new может амперсанд &

Maxim
29.09.2017
09:35:07
Я извиняюсь за свои вопросы, но прошу помочь решить этот вопрос

@ruzzke_mir В контексте у меня находится данные пользователя, которого я получил по токену из db "Аутентифицировал" так сказать. Однако чтоб дальше получить какие-то объекты этого пользователя мне нужен хотя бы его id. А это уже находится в контексте, потоу что в процессе аутентификации я поместил пользователя в пустой интерфейс Identify token := parseBearerAuth(c.Request.Header.Get("Authorization")) identity, e := fn(c, token) if e == nil { c.Set(User, identity) return nil }

здесь в identify я передаю models.User, который получил по токену из бд. Как мне теперь получить его из контекста?

Pawel
29.09.2017
09:42:03
естественно это очень схематичный ответ

Google
Maxim
29.09.2017
09:43:25
вот кстати мой routing.Contect func (c *Context) Get(name string) interface{} { return c.data[name] } // Set stores the named data item in the context so that it can be retrieved later. func (c *Context) Set(name string, value interface{}) { if c.data == nil { c.data = make(map[string]interface{}) } c.data[name] = value }

Nikolay
29.09.2017
09:47:29
Что-то как-то сложно

лучше: user := c.Get(apis.User).(models.User)

Maxim
29.09.2017
09:47:57


@nuqzz не катит

Nikolay
29.09.2017
09:48:29
@nuqzz не катит
ну еще бы new без скобок

и вообще злобный микс из литерала и new

Maxim
29.09.2017
09:51:36
@nuqzz level=error msg="interface conversion: interface {} is *models.User, not models.User"

Nikolay
29.09.2017
09:53:13
@nuqzz level=error msg="interface conversion: interface {} is *models.User, not models.User"
это значит там указатель на структуру лежит, надо приводить к указателю: user := c.Get(apis.User).(*models.User)

очевидно, что даже gotour не был пройден на эту тему)

Maxim
29.09.2017
09:56:27
@nuqzz дружище, спасибо большое!!! наконец-то получил данные из контекста. Пошел дальше изучать go на примере создания микросервиса

Michael
29.09.2017
10:15:05
го тур не читай - микро сервисы клепай)

Maxim
29.09.2017
10:15:42
???

тогда все будет точно по феншую)))

Pawel
29.09.2017
11:14:48
господа, кто нибудь gopherjs использует? я уже тут как-то спрашивал. не ужели по нулям?

Valentin
29.09.2017
11:19:08
вчера на митапе про него вещали

Anatoly
29.09.2017
11:19:22
господа, кто нибудь gopherjs использует? я уже тут как-то спрашивал. не ужели по нулям?
на митапе • Алексей Акулович "Golang по обе стороны баррикад"

Valentin
29.09.2017
11:19:31
Общий вывод- все работает, но писать фронт на нем это изврат

Страница 542 из 1630