@gogolang

Страница 1393 из 1630
Alexander
12.09.2018
09:38:25
а почему именно нет? :)

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

Oleksandr
12.09.2018
09:49:10
Привет всем. Нормально ли делать такое? type time.Time MyTime // custom method on built-in type alias func (t MyTime) DayBefore() MyTime { // code } Или лучше просто в функцию, принимающую time.Time сделать?

Alexander
12.09.2018
09:51:09
Если ты из типа не делаешь интерфес с его собственными методами, то не стоит. Будет проще использовать тип time.Time в стандартном виде

Google
Jack
12.09.2018
09:53:08
Oleksandr
12.09.2018
09:53:37
Спасибо

Jack
12.09.2018
09:53:39
наверное, нет так выразился про сущности)

Alexander
12.09.2018
10:01:58
хотя, func (t MyTime) DayBefore() MyTime это вполне себе метод. Но заключается в том, что `return time.Duration(84_килосекунды) * time.Second

Есть ли смысл огород городить?

почему тогда именно в гочате)?
Вот до таких размышлений UNIX пользователей доводит. Это не продвинутый пользователь винды тебе! :)

Alexander
12.09.2018
10:12:16
ужос кокой!

Jack
12.09.2018
10:12:17
Есть ли смысл огород городить?
сахар всегда вкусный)

Alexander
12.09.2018
10:12:29
не всегда :(

Dmitry
12.09.2018
10:26:40
кто пользуется gb, вы делаете мейкфейл чтобы этот гб поставить?

Илья
12.09.2018
10:27:02
да

Dmitry
12.09.2018
10:27:27
да
можно глянуть?

Google
Илья
12.09.2018
10:27:46
под рукой нет, давно gb не пользую

можно глянуть?
но суть простая go_dep := $(go_path)/bin/dep $(go_dep): $(go_path) go get -u github.com/golang/dep/cmd/dep

меняешь на gb :) и вот собранный gb у тебя будет

andrew
12.09.2018
10:31:59
День добрый. Пытаюсь тестировать приложение, структура приложения такая: - src - tests Соответственно пакет main и пакет tests, в тестах пытаюсь импортировать main но получаю ошибку import "../src" is a program, not an importable package Есть ли какой-то способ не совмещать файлы тестов и самой программы? Либо каким образом можно в тесты прокинуть структуры и функции из main?

Dmitry
12.09.2018
10:32:45
но суть простая go_dep := $(go_path)/bin/dep $(go_dep): $(go_path) go get -u github.com/golang/dep/cmd/dep
ну просто я сделаю вот сначала go get github.com/constabulary/gb/... потом мне надо будет его собрать и бинарь кинуть куда то в /usr/bin там или что-то вроде этого

так?

Илья
12.09.2018
10:33:15
если ты про ci - то в go_path/bin собираешь и его в path добавляешь

Илья
12.09.2018
10:33:23
хотя и не про ci аналогичный совет

Dmitry
12.09.2018
10:33:45
если ты про ci - то в go_path/bin собираешь и его в path добавляешь
ну я просто хочу чтобы можно было сделать make install и ничего предварительно не ставить

andrew
12.09.2018
10:34:14
Artem
12.09.2018
10:35:35
это как? вынести все из main package?
https://github.com/golang-standards/project-layout

andrew
12.09.2018
10:42:17
https://github.com/golang-standards/project-layout
кажись понял, а как тогда тестить сам main.go, интеграционные тесты например?

Andrei
12.09.2018
10:43:58
кажись понял, а как тогда тестить сам main.go, интеграционные тесты например?
компилировать бинарь, запускать приложение и тестировать чем-нибудь извне, в папке test должны лежать только unit тесты

Artem
12.09.2018
10:44:47
Но остальное так

Юнит как раз лучше рядом класть, так ты сможешь тестить не только публичные, но и привытные функции

andrew
12.09.2018
10:47:24
значит в тестс создам 2 папки, для юнит тестов и для интеграционных

Artem
12.09.2018
11:24:19
Не надо тестить приватные
и микросервисы которые не торчат наружу тоже не надо?

Google
Daniel
12.09.2018
11:36:26
Микросерисы - это не юнит-тесты

Artem
12.09.2018
11:38:21
Не надо тестить приватные
Я пропустил возможно, но почему не надо ?

Roman
12.09.2018
11:43:23
Не надо тестить приватные
зависит от того что написано.. но я бы и приватные проверял, в них тоже баг может запрятаться

Alexy
12.09.2018
11:44:30
Я пропустил возможно, но почему не надо ?
Потому что юниты должны покрывать интерфейс а не детали реализации. Единственное о чем можно парится это о степени покрытия.

Roman
12.09.2018
11:48:39
Потому что юниты должны покрывать интерфейс а не детали реализации. Единственное о чем можно парится это о степени покрытия.
юнит тесты вообще-то должны дать вам уверенность в том, что написанный код функционирует корректно. Добиться этого можно только 100% (в идеале) покрытием тестами. Если некоторые внутренние функции по какой-либо причине не покрываются тестами экспортированных функций, вы по прежнему уверены что код корректен?

Sergey
12.09.2018
11:49:23
100% покрытие тестами это то ещё дерьмо...

Artem
12.09.2018
11:50:09
Потому что юниты должны покрывать интерфейс а не детали реализации. Единственное о чем можно парится это о степени покрытия.
В случае если у вас два ошибочных метода в сумме дают верный результат. Вам тест интерфейса будет говорить что все хорошо. А тесты приватных, что есть ошибка.

Alexy
12.09.2018
11:50:10
Так или иначе есть код, который использует приватные функции. С их помощью и можно добиться 100% покрытия

Vasilii
12.09.2018
11:50:22
да, прям очень важно покрыть тестами кусок кода if err != nil { panic(err) }

без этого никогда не будешь уверенным

Roman
12.09.2018
11:52:19
Ну чушь же. Для начала - в тестах тоже есть ошибки
это уже утверждение на тему "who tests the unit tests?". Начинать надо с того, что тесты должны быть максимально простыми, дабы в них не допускать ошибок. Если спонтанно взять числа с потолка основываясь на интуиции то у меня где-то 50% вероятность допущения ошибки в коде и 5-10% в тесте

Alexy
12.09.2018
11:52:32
Ясно. В го по видимому свои правила покрытия приватных и публичных функций. Хотелось бы посмотреть как вы пишите тесты для Java или php. Через рефлексию?

Daniel
12.09.2018
11:54:08
В go те же правила, что везде

Roman
12.09.2018
11:54:16
100% покрытие тестами это то ещё дерьмо...
поэтому я и добавил в скобках (в идеале). Идеала как известно обычно мы не достигаем, потому-что он зачастую и не нужен. Главное протестировать все острые угли об которые можно случайно порезаться

Google
Alexy
12.09.2018
11:56:14
да, кстати
Вы же в курсе что есть «ожидаемое поведение»?

Kirill
12.09.2018
11:56:20
а вы протестировали свои тесты?

Nyan
12.09.2018
11:56:32
а вы уже осознали бесполезность тестов?

Sergey
12.09.2018
11:56:33
0% покрытия тестами это идеал)
0% это только для истинных ниндзицу, познавших мастерство кунг фу

Alexy
12.09.2018
11:56:55
Как можно пропустить такой кейс если полностью в тесте контролируется выполнение?

Roman
12.09.2018
11:57:27
а вы уже осознали бесполезность тестов?
да, настолько что добровольно трачу время на тщательное тестирование. Они настолько бесполезны что неоднократно спасли мне жопу в жизни))

Alexy
12.09.2018
11:57:38
В том числе поведение приватных функций.

Admin
ERROR: S client not available

Artem
12.09.2018
11:59:02
В го тестирование это чёрный ящик, данные на входе и результат на выходе, в большинстве случаев. Где тут контролируемое выполнение ?

Artem
12.09.2018
12:00:57
Всем привет помоги со свагерром ставлю на мак ось - не хочет работать ставлю так brew cask install homebrew/cask-versions/java8 brew install swagger-codegen далее пытаюсь выполнить команду swagger-codegen generate server -f example.yaml -t test и получаю Exception in thread "main" io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpected parameters: [server, -f, example.yaml] at io.airlift.airline.Cli.validate(Cli.java:148) at io.airlift.airline.Cli.parse(Cli.java:116) at io.airlift.airline.Cli.parse(Cli.java:97) at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)

Artem
12.09.2018
12:03:15
Ну может в других языках иначе, и там переменные на лету подменяются

В го я не ощущаю контроля над выполняем теста, что можно опускать тестирование приватных методов

b0000000000000t
12.09.2018
12:06:48
В го я не ощущаю контроля над выполняем теста, что можно опускать тестирование приватных методов
Если у вас тестирование экспортируемых методов затрагивает работу приватных и никакого хитрого внутреннего стейта нет, то зачем тестить эти приватные методы?

Alexander
12.09.2018
12:09:42
Тестируй не тестируй программно, а все равно в серьезных контонрах дошли до того, что держат тестировщиков. И да, они правы!

Roman
12.09.2018
12:10:20
у вас может быть коллективная ошибка, которую может раскрыть тест отдельных приватных функций. Но это всё сильно зависит от ситуации.

Google
Alexander
12.09.2018
12:11:02
главное, чтобы тестировщик этого кода не писал, а только тестировал! Чтобы думал не как "писатель"

Roman
12.09.2018
12:11:27
Тестируй не тестируй программно, а все равно в серьезных контонрах дошли до того, что держат тестировщиков. И да, они правы!
нужны и тестировщики и автоматизированные acceptence тесты и unit тесты и CI. Вопрос лишь в желании быть уверенным в своём коде

Alexander
12.09.2018
12:18:39
В Go нет приватных методов. Просто хочешь сделать черный ящик - сделай. И все. Никаких приватных методов нет.

Artem
12.09.2018
12:19:50
со свагерром не работаете?

Alexander
12.09.2018
12:20:31
мы?

Artem
12.09.2018
12:20:48
кто-нибудь кто может по проблеме подсказать

Alexander
12.09.2018
12:21:25
Неэкспортируемые будет корректнее?
нет, не будет. Конкретнее будет просто не путать Go и плюсы с питоном, в смысле конкретно терминологии и методологи

никого нет...

Ну, или подскажите парню "по проблеме", хотя он даже не осилил ее хотя бы описать...

Alexander
12.09.2018
12:27:23
дык, в том и делло!

Foxcool
12.09.2018
12:27:42
что за проблема-то?

Dk
12.09.2018
12:27:42
Можно непростой вопрос? Вот за 1.5 года на python я выяснил почти все его направления использования: data science/web/администрирование/чуть науки. Понятно куда лезть и как. А какие основные направления у golang?

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