
Slava
24.02.2018
20:55:03
можно и так
я лично всё тестирую на реальной базе =) так тупо проще

Nik
24.02.2018
20:55:29
С другой - собирать все окружение на своём компе - гемор

Google

Nik
24.02.2018
20:56:20
Особенно если у тебя есть и каучбейс, и эластик, и редис и мускул
И ещё зоопарк
Вариант 2 - CI собрать
Но тут надо пушить и смотреть результаты
3-5 минут
С моками тупо быстрее
Но как нам сегодня сказали - разработчики драйверов в большинстве своём тесты не пишут

Slava
24.02.2018
20:58:43
тебе в любом случае собирать девелоперское окружение
иначе как разрабатывать? =)
и в нём тесты и сервисы должны подниматься, иначе как они тестируются? =)

Илья
24.02.2018
21:00:37

Nik
24.02.2018
21:00:40
Если я что то зарефактлрил немного, или сделал быстрый фикс - я хочу быстро протестить, а потом уже выплюнуть все в CI и уйти пить кофе. А так надо над ним сидеть и смотреть

Google

Nik
24.02.2018
21:01:29
По идее должны быть админы , которые все поддерживают. Но обычно из нет

Alan
24.02.2018
21:08:27

Slava
24.02.2018
21:09:39
нет

Nik
24.02.2018
21:10:47
Пусть и сами сервера собирают
И сами себе гит на сервера ставят
И сами себе окружение

Alan
24.02.2018
21:11:24
я знаю, кто этим занимается
девопсы)

Nik
24.02.2018
21:11:30
И сами пусть деплоят
И сами админы
Фулстек прогер=девопс

Slava
24.02.2018
21:11:47
почему нет?

Nik
24.02.2018
21:11:48
))
А в остальном проблем нет

Slava
24.02.2018
21:12:22
а смысл прогать, если деплоить некуда? =)

Nik
24.02.2018
21:13:02
Потому я набрал умных стремящихся студентов. Они мне поднимают инфрастуктуру, и деплоят, и ci админист
И им полезно и мне удобно, и они в фоне в код смотрят, иногда пару строк пишут

Google

Slava
24.02.2018
21:14:17
мм, отправлять студентов на самую опасную/сложную часть это правильно =)

Nik
24.02.2018
21:14:44
Не сразу конечно, но результатам за 2 два года очень доволен

Slava
24.02.2018
21:15:24
как же доволен, если девелоперсого окружения нет нормального? =)

Nik
24.02.2018
21:17:01
Работает
Меня огорчает что долго
Именно что надо пушить
А не на своём ноуте

Alan
24.02.2018
21:18:48
ну видимо что-то не то у вас с ci, если на своем ноуте выходит заметно быстрее

Nik
24.02.2018
21:19:20
Нет?

Slava
24.02.2018
21:20:31
обычно время программистов ценнее, если это конечно не умные студенты

Nik
24.02.2018
21:23:36
Кто из пристувующих держит на рабочей машине базу для тестов чистую (не ту, на которой идёт разработка)

Alan
24.02.2018
21:23:47
Нет?
Мне кажется, если все делается одинаково, то разницы быть не должно, где поднимать

Slava
24.02.2018
21:24:30

Никита
24.02.2018
21:27:08

Slava
24.02.2018
21:27:24
почему забавно? =)

Никита
24.02.2018
21:27:35
Ну, весело объясняешь

Nik
24.02.2018
21:27:52

Google

Никита
24.02.2018
21:28:01
И вполне интересно

Slava
24.02.2018
21:28:34
спасибо =)

Nik
24.02.2018
21:28:40

Slava
24.02.2018
21:29:09
к сожалению не знаю, что с каучбейз =)

Nik
24.02.2018
21:29:39
Если мускул пустой более менее норм, то что посерьёзнее уже тяжело поднимать на рабочей тачке
Потому в CI и на серверах тестить
И тесты на чистых инстансах
А пока ты кодишь, играясь с базой, и на ней же тестишь - это уже не совсем чистый тест

Admin
ERROR: S client not available

Alan
24.02.2018
21:33:23
можно держать 2 инстанса - дев и тест

Nik
24.02.2018
21:34:05
Если это два тонких sql то да. Если базы тяжеловаты, или само хранилище более требовательно - то уже нет

Alan
24.02.2018
21:35:50
ну как то же тестят терабайтные базы ?

Slava
24.02.2018
21:36:00
наверное не тестят =)

Nik
24.02.2018
21:36:11

Slava
24.02.2018
21:36:25
ну или тестят только производительность/верность данных
у нас девелоперское окружение работает в амазоне
на 16гб инстансах
на локальной машине всю память голанд съедает на пару с хромом )

Nik
24.02.2018
21:37:53

Google

Nik
24.02.2018
21:38:06

Slava
24.02.2018
21:41:32
в тестах не обязательно все данные тащить ведь
ну и другой момент, не обязательно все тесты запускать при разработке. а в CI они могут и час отрабатывать

Nik
24.02.2018
21:56:56
И все объём надо крутить на ci перед деплоем на чистом окружении
И разойтись спать?

Slava
24.02.2018
21:58:03
не понял последнего аргумента =) но не важно

Nik
24.02.2018
21:58:26
))

Zaur
24.02.2018
22:25:19

The
24.02.2018
22:57:00
подскажите, как правильней всего организовать мапу с TTL?
мне нужно, чтобы каждое значение мапы жило допустим около 60 секунд, а потом удалялось. как это делается? создается горутина, которая делает слип и потом удаляет элемент мапы?

DimenSi
24.02.2018
23:10:37

Vladimir
24.02.2018
23:10:54

The
24.02.2018
23:12:15
Мне пока нужно для понимания работы, есть где применить в принципе, но пока обходился без этого.

Vladimir
24.02.2018
23:12:43

DimenSi
24.02.2018
23:13:17
к счастью исходники go пакетов читабельны

The
24.02.2018
23:20:52
я просто вижу пару решений:
1) на каждый элемент мапы - спящая горутина, которая по таймауту удалит по ключу значение из мапы. мне кажется, самое плохое решение.
2) при добавлении элемента, пишем в какую-то другую мапу значение когда нужно удалить элемент, а по ней итерируемся и лочим через мьютексы её, если нужно удалить, при этом можно иногда ложить в сон эту горутину, до близжайшего элемента который нужно удалить.
3) нагромоздить что-то вроде очереди, в которой первый элемент это всегда самый ближний на удаление, а при добавлении собственно добавляем в то место, где элемент -1 удалится раньше, а элемент +1 удалится позже.
и это только то, что удалось придумать мне.
какая из этих реализаций лучше, черт его знает.
у меня иногда проблемы с чтением чужих сурцов
Хорошо когда есть комменты, а то вот допустим:
type Cache struct {
*cache
// If this is confusing, see the comment at the bottom of New()
}


Александр
24.02.2018
23:30:40
я просто вижу пару решений:
1) на каждый элемент мапы - спящая горутина, которая по таймауту удалит по ключу значение из мапы. мне кажется, самое плохое решение.
2) при добавлении элемента, пишем в какую-то другую мапу значение когда нужно удалить элемент, а по ней итерируемся и лочим через мьютексы её, если нужно удалить, при этом можно иногда ложить в сон эту горутину, до близжайшего элемента который нужно удалить.
3) нагромоздить что-то вроде очереди, в которой первый элемент это всегда самый ближний на удаление, а при добавлении собственно добавляем в то место, где элемент -1 удалится раньше, а элемент +1 удалится позже.
и это только то, что удалось придумать мне.
какая из этих реализаций лучше, черт его знает.
есть еще стандартные таймеры в гоу
https://golang.org/pkg/time/#After

The
24.02.2018
23:32:22
да, но это ж на каждый элемент горутину нужно