@proGO

Страница 1665 из 1674
Crypt
29.08.2018
00:10:45
а вот если в логику отдать мокнутые значения и посмотреть выхлоп - будет куда лучше уже

Александр
29.08.2018
00:15:22
ну в примере вообще дао не содержал никакой логики

тупо обертка над select

потому что по тз приложение вообще очень простое

Google
Александр
29.08.2018
00:16:11
поэтому оно и было мокнуто, а протестированы уже хедлеры (с мокнутым DAO)

Crypt
29.08.2018
00:23:24
тупо обертка над select
сложно без кода представить, только гадать если.

Александр
29.08.2018
00:23:36
https://github.com/ruelephant/MailRuTestApp

код еще остался ?

Crypt
29.08.2018
00:29:05
https://github.com/ruelephant/MailRuTestApp
ну видимо допом придется тестировать еще EventDaoMongo, а если вкинуть туда мокнутый драйвер, то не придётся

единственное, что на ум приходит

Александр
29.08.2018
00:32:42
хз, в текущем проекте только итеграционные и то они внешние

не понятно зачем юнит вообще

Crypt
29.08.2018
00:33:36
хз, в текущем проекте только итеграционные и то они внешние
да и у монги не интерфейс же по идее, хз как они туда драйвер хотели воткнуть, пришлось бы еще раз всё завернуть

Александр
29.08.2018
00:34:02
ну там любая бд типо на выбор

Crypt
29.08.2018
00:34:03
жаль, конечно, что они сами пояснения не дали. интересно было бы узнть

Александр
29.08.2018
00:34:32
ну пояснение дали

Для того чтобы реализовать универсальный механизм "моков" при тестировании, необходимо сделать врапер непосредственно для работы с базой. Для выполнения тестового задания можно, конечно, пойти по Вашему пути и спрятать все хэндлеры за интерфейсы, но тогда в сложных приложениях придется писать кучу дополнительного кода для тестировании каждого кейса, которых внутри каждого хэндлера может быть достаточно много. В этом случае также теряется удобство go, когда можно рядом с пакетом сразу делать тестовый файл. В текущей реализации для проведения тестирования приходится делать глобальный тестовый main_test, в то время как точечное юнит тестирование двух методов апи AddEvent и CountByType можно было бы сделать условно в файле EventDaoMongoDb_test.go. Для этого надо сделать свою обертку над mgo.Database, которая подменяется только в локальном юнит тесте, а не запускается глобальная тестовая версия всего приложения. Этот подход также показывает более правильные результаты при оценке покрытия кода тестами и практически автоматом дает возможность сделать бенчмарк, о котором написано в задании.

Google
Crypt
29.08.2018
00:39:29
да, в принципе я с ними согласен, мне стало понятно

я так уже делал, когда SQL драйверы сравнивал, которые не вписывались в стандратный database/sql

Александр
29.08.2018
00:41:42
я как понял они предлагают похерить dao_mock и обернуть уже базу

типо структура с select и прочее

и в dao_mongo написать тест который бы проверял правильность селекта O_o

Crypt
29.08.2018
00:42:41
да, и для этого интерфейса еще сделать реализацию для монги/.../мокнутую

Александр
29.08.2018
00:42:43
с 0 логикой причем

мне кажется это лишняя абстракция

я же под задачу таки делал

а задача там даже "не достоина" отдельного dao

поэтому и тесты над handlers

Crypt
29.08.2018
00:44:09
видимо бенчмарк был намёком на это

Александр
29.08.2018
00:44:33
ну про бенч вообще забыл ?

возня с докером все прибило блин

(у нас все делает devops)

мне пришлось с нуля вникать в докер

Crypt
29.08.2018
00:45:24
бывает, я на последнем собесе от волнения не смог 2 переменные местами поменять без введения третьей... стыд

Александр
29.08.2018
00:46:31
да просто закипаешь на одном месте

уже 5 год в один компании

Wingman
29.08.2018
07:14:11
Народ, добрый день Подскажите плз способ сплитнуть регекспом текст (мультилайн) так, чтобы сохранить и сам разделитель :) Разделитель - повторяющийся, "кусочков" должно получиться много. Учитывая, что в гошке нет лукэхэда, вообще непонятно, что делать, кроме построчного перебора текста =\

Google
Foxcool
29.08.2018
07:22:54
+

github.com/dgrijalva/jwt-go

Lesha
29.08.2018
07:50:45
нет. на 15% быстрее становилась работа относительно работы приложения в целом. тест не синтетический, на продовом коде обкатывался.
немного некро, но подтверждаю увеличение производительности после того как разнес приложение по отдельному инстансу на ядро с taskset'ом и GOMAXPROC=1

проц у меня такой: Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz на графиках увидел снижение context switch'ей в > 1.5-2 раза

hh
29.08.2018
09:11:21
Всем привет. Почему я в срез помещаю 100млн int и памяти расходуется в 7 раз больше, чем 4 байта за элемент?

Александр
29.08.2018
09:13:33
time.Parse почему не хочет работать с таким форматом - 2006-01-02T15:04:05.000Z07:00 ?

дата на входе 2018-08-29T08:12:52.977878+00:00

cannot parse "878+00:00" as "Z07:00" - ошибка

в чем может быть затык?

Artem
29.08.2018
09:14:29
в 3х знаках под милисекунды?

Georgij
29.08.2018
09:14:56
@hhprod, а как срез объявлен? И как добавляются элементы? Лучше, конечно, на playground, gitst, etc. минимальный пример скинуть.

Илья
29.08.2018
09:15:52
Александр
29.08.2018
09:16:02
hh
29.08.2018
09:16:20
var arr []int arr = append(arr, 1)

Илья
29.08.2018
09:16:53
var arr []int arr = append(arr, 1)
arr := make([]int,0,100000)

Александр
29.08.2018
09:20:03
мой вопрос снят

Илья
29.08.2018
09:20:21
time.Parse почему не хочет работать с таким форматом - 2006-01-02T15:04:05.000Z07:00 ?
в формате милисекунды, в строчке наносекунды

hh
29.08.2018
09:26:55
arr := make([]int,0,100000)
Спасибо. А в чем отличие от var x [10000]int ?

Google
Georgij
29.08.2018
09:27:07
arr := make([]int,0,100000)
Вот это вот. А так у append growing policy и всё такое. Можно 4fun самому чекнуть методом cap() в цикле добавления элементов. https://blog.golang.org/go-slices-usage-and-internals growslice - https://golang.org/src/runtime/slice.go // не уверен, что то, но очень похоже.

Илья
29.08.2018
09:31:37
Спасибо. А в чем отличие от var x [10000]int ?
[10000]int - это array - со всеми плюсами и минусами, мой пример - это слайс с заранее определенной capacity, при ручном заполнении capacity, растет большими шагами, чтобы гарантировать амортизированную сложность вставки

4aegolik
29.08.2018
11:15:48
Всем привет

народ есть какой нить способ вытянуть список идентификаторов или любой другой информации, о предыдущих горутинах?

Mykyta
29.08.2018
11:17:08
у рутины есть номер

4aegolik
29.08.2018
11:18:49
у рутины есть номер
это да, нужен получается тогда номера рутин, которые были вызвани до него т.е. что то типа call tree

Daniel
29.08.2018
11:19:06
что такое "до него"

и что такое рутина, кстати?

4aegolik
29.08.2018
11:23:04
что такое "до него"
нужен просто call stack

c id гоурутин, вызванных до текущей горутины

Daniel
29.08.2018
11:25:24
горутины не имеют иерархии

4aegolik
29.08.2018
11:25:48
это жаль, понял вас. вот тоже ничего толкового найти не мог

Daniel
29.08.2018
11:26:17
если вам это зачем-то нужно - надо делать самому, передавая в горутину параметр parent, и сохраняя его там

Foxcool
29.08.2018
12:32:00
а как правильно поступают в таком случае? Есть ссылка на какой-то обычный типа. Строка, например. zalupa *string надо по ходу дела ей присвоить строку zalupa = "zalupa lupa" но низя. Бест практис только через создание переменной под эту строку и передачу рефа на переменную?

или есть менее громоздкий варик типа с стандантной либе корфертер какой?

Foxcool
29.08.2018
12:33:09
не zalupa?

или не рефка?

Google
Aleksandr
29.08.2018
12:33:26
это какой-то перформанс? думаешь тут оценят шутку? или это твоя позиция?

Foxcool
29.08.2018
12:33:31
не могу, потому что go-swagger так кодогененрирует обызательные и nullable поля

Aleksandr
29.08.2018
12:33:53
твои посты генерирует сваггер? ты бот?

Foxcool
29.08.2018
12:34:35
такс, будем считать что я не нагрубил тебе, чтобы меня не побанили за хамтво

отстать. ПОдожду пацанстрэ, которые по делу че скажут

Aleksandr
29.08.2018
12:35:47
можно банить за неуважение коллег

Foxcool
29.08.2018
12:36:36
ага, т.е. это не плохо, спасибо. А то меня грызло сомнение. По идее понятно, что всякие строки надо сразу в константы оформлять. но константы тоже такой операции не поддаются

Daniel
29.08.2018
12:36:52
такс, будем считать что я не нагрубил тебе, чтобы меня не побанили за хамтво
но высокомерными мудаками ты почему-то считаешь меня и алекса

Foxcool
29.08.2018
12:37:12
что со школьника взять (;

Daniel
29.08.2018
12:41:37
вот про генерики хайп. про обработку ошибок прям подгорает у всех. а нужна-то нам иммутабельность!

и для "переменных", и для параметров...

Foxcool
29.08.2018
12:42:33
а что, частый кейс, когда то, что не должно изменяться, изменяется?

Daniel
29.08.2018
12:42:49
не очень

но самый непрятный для отладки

Страница 1665 из 1674