@gogolang

Страница 824 из 1630
Daniel
15.02.2018
11:42:38
то есть - у вас есть нетривиальный код (тривиальный тестирования не требует), и есть представления о том, как он должен работать, недокументированные, и вы на их основании написали тесты, и веруете, что это поможет в поиске ошибок? я ничего не упустил?

Daniel
15.02.2018
11:43:48
на основании спеки

Vladislav
15.02.2018
11:44:20
на основании спеки
То есть вы весь код в Публичных функциях пишете?

Google
Daniel
15.02.2018
11:44:48
нельзя считать тесты документацией

То есть вы весь код в Публичных функциях пишете?
я тестирую только то, что могу оттестировать. только то, для чего определен эталон

а вот что тестируете вы - я пока не понял

Vladislav
15.02.2018
11:46:13
я тестирую только то, что могу оттестировать. только то, для чего определен эталон
Ну вы когда приватную функцию пишете вы же вкладываете в нее какой-то смысл?

Pawel
15.02.2018
11:46:20
нельзя считать тесты документацией
докой для прикладного кода - нельзя конечно. для себя и колег по проекту - почему нет?

Илья
15.02.2018
11:48:59
то есть - у вас есть нетривиальный код (тривиальный тестирования не требует), и есть представления о том, как он должен работать, недокументированные, и вы на их основании написали тесты, и веруете, что это поможет в поиске ошибок? я ничего не упустил?
если есть спека, касающаяся внутренней реализации, что мешает ее тестировать? публичный интерфейс может быть очень высокоуровневым, тест сьют не удобно собирать, и вполне можно протестировать все во внутренней реализации

Vladislav
15.02.2018
11:49:06
при чем тут тесты?
Ну при том, что если вы вынесли что-то в независимый кусок кода, значит, то ожидаете от этого куска какого то поведения.

Vladislav
15.02.2018
11:50:18
и что я тестировать-то буду?
Что эта функция выполняет ваши ожидания.

Google
Vladislav
15.02.2018
11:52:23
если спека содержит детали реализации - это говно, а не спека
Если мне только http api опрделено, то мне не тестировать go код. Только внешний интерфейс?

Daniel
15.02.2018
11:52:37
Что эта функция выполняет ваши ожидания.
какие-то из моих ожиданий, полное покрытие даже самых простых алгоритмов стоит очень дорого

Pawel
15.02.2018
11:53:26
потому, что тесты - это не дока
пусть будет не дока. Но даёт достаточно представления о коде чтобы его сопровождать и читать. Пойнт в том, что (иногда) нет мне смысла делать нетривиальный код отдельным пакетом и писать на него документацию, поскольку не будет он повторно использоваться. Но какие-то гарантии что он работает - таки хочется иметь

Daniel
15.02.2018
11:53:42
смотрите

самые серьезные ошибки - это неправильно понятая спека

именно с тестирования кода на соответствие спеке и надо начинать

где заканчивать - ваше дело

Daniel
15.02.2018
11:55:14
но обычно заканчивать надо там, где достигнут минимально приемлемый результат

а это ровно там, где закончилась спека

Vladislav
15.02.2018
11:56:39
для других тестов у вас нет оснований
Отлично. Вашей команде пришло задание на целую систему. Мобильное приложение и бэкенд. По факту у вас есть утвержденный дизайн в спеке и логика. Что тестируем?

Daniel
15.02.2018
11:57:27
с этого места мы не то, что тестировать - мы разрабатывать не можем начать

Vladislav
15.02.2018
11:57:59
Можете.

Заказчику все равно какое api у вас там.

Daniel
15.02.2018
11:58:32
сейчас архитектор разрисует нам структуру и напишет спеки на интерфейсы - и можно будет начинать. тесты на соответствие интерфейсам мы напишем на основании этих спек

при чем тут заказчик вообще?

Daniel
15.02.2018
11:59:13
более того - это я сам

Google
Daniel
15.02.2018
11:59:15
и что?

Vladislav
15.02.2018
11:59:53
Вы и архитектор и программист. Вы разрисовываете интерфейс и тестируете его?

Daniel
15.02.2018
12:00:16
и что?

Vladislav
15.02.2018
12:00:49
Что вы тестируете? свои ожидания от того что вы напроектировали?

Daniel
15.02.2018
12:01:05
документированные ожидания

Vladislav
15.02.2018
12:01:40
Эта документация живет только среди вашей команды.

Daniel
15.02.2018
12:01:50
и что?

Vladislav
15.02.2018
12:02:05
Я также могу задокуметировать внутреннее устройства пакета. Мало того это и нужно делать.

Daniel
15.02.2018
12:02:18
зачем?!

Vladislav
15.02.2018
12:02:24
Просто когда я пишу пакет я и архитектор его и реализатор.

зачем?!
Чтобы когда кто-то в него полез он понимал что происходит.

Daniel
15.02.2018
12:02:55
он и так поймет, не беспокойтесь.

Daniel
15.02.2018
12:03:14
если уж до деталей реализации доберется

Vladislav
15.02.2018
12:04:19
Если там нетривиальный код, то с доками проще.

Daniel
15.02.2018
12:04:31
рили?

код я все равно прочту, потому, что дока врет все время

Vladislav
15.02.2018
12:05:05
Ну то как вы пишете доки это уже ваш опыт.

Или комменты внутри реализации вы тоже не пишете?

Daniel
15.02.2018
12:06:30
при чем тут комменты? при чем тут дока на детали реализации? вы помните, о чем разговор?

Pawel
15.02.2018
12:06:44
он и так поймет, не беспокойтесь.
понять то поймёт, но с юнит тестами боли меньше кмк

Google
Daniel
15.02.2018
12:07:07
конечно, меньше

безусловно

Илья
15.02.2018
12:07:22
так почему не стоит писать тесты?

если есть время и желание

Daniel
15.02.2018
12:07:35
стоит, конечно! на все, на что есть спека

Vladislav
15.02.2018
12:08:16
при чем тут комменты? при чем тут дока на детали реализации? вы помните, о чем разговор?
Доки в го генерятся из комментов. Коммены я пишу и они почти что дока описывающая что я пишу. И я это тестирую.

Daniel
15.02.2018
12:08:33
хотите тест - напишите спеку сначала

Илья
15.02.2018
12:09:02
хотите тест - напишите спеку сначала
спеку на внутреннюю реализацию? это же говноспека!

Admin
ERROR: S client not available

Daniel
15.02.2018
12:09:40
тогда не пишите

но и тестов тогда тоже не надо

Илья
15.02.2018
12:10:09
т.е. у вас в комманде так, ок

Daniel
15.02.2018
12:10:12
потому, что тесты без спеки - это просто способ убить время

Vladislav
15.02.2018
12:10:20
Знаете для заказчика все то что вы как архитектор там наваяли тоже детали реализации.

Daniel
15.02.2018
12:10:43
у вас заказчик юнит-тесты пишет?

Vladislav
15.02.2018
12:11:01
Нет конечно.

Daniel
15.02.2018
12:11:21
вы с какой-то простой мыслью спорите

для тестирования нужен эталонный вход и эталонный выход

они должны быть документированы и каким-то образом проверены

Google
Vladislav
15.02.2018
12:12:32
Отлично. Для заказчика эталон это кнопку в приложении и получить сообщение на экране.

Pawel
15.02.2018
12:12:36
хотите тест - напишите спеку сначала
да, это бесспорное утверждение. То есть грубо говоря на каждую тестируемую функцию писать осмысленный Го-стайл коммент

Daniel
15.02.2018
12:13:02
вообще, конечно, я от этого разговора устал

Vladislav
15.02.2018
12:13:21
именно это и будет тестировать заказчик
Ну тогда не имеет смысла тестировать все что внутри.

Daniel
15.02.2018
12:13:54
опилки

Vladislav
15.02.2018
12:13:58
Ибо отношение заказчик комманда отлично отбражается в потребитель библиотеки и разработчик.

Илья
15.02.2018
12:19:07
подитожим, по сути вы утверждаете что "но обычно заканчивать надо там, где достигнут минимально приемлемый результат", является абсолютом, почему "обычно" превратилось в "всегда", неясно, насчет тестирования публичного АПИ никто не спорит, но вы продолжаете гнуть свою линию

Daniel
15.02.2018
12:19:31
илья, у вас тимлид есть?

Илья
15.02.2018
12:19:38
да

Daniel
15.02.2018
12:19:47
вот ему этот вопрос и задайте :)

Vladislav
15.02.2018
12:19:50
нет, go-style comment это не спека.
А что тогда спека в go для пакета?

Daniel
15.02.2018
12:20:12
он или пошлет вас, или рассказет, что рабочих рук нехватка, и делать лишнее - граничит с саботажем

Pawel
15.02.2018
12:20:21
нет, go-style comment это не спека.
в каком же виде надо писать спеку тогда?

Alex
15.02.2018
12:20:40
Товарищи, привет! Кто sqlx юзает? Когда в функции стартуешь транзакцию, надо ли по defer ее роллбечить, если вдруг случится что? Паника, например?

Alex
15.02.2018
12:21:36
А как он понимает, что надо отменить транзакцию?

Daniel
15.02.2018
12:21:37
а?!

обычно, ели транзакция не прошла успешно - ее надо ролбечить

но штука в том, что транзакция держит коннект к базе

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