
Александр
15.10.2018
08:18:11
на больших проектах будут проблемы
ибо голова дело темное

Foxcool
15.10.2018
08:18:56
Надеюсь понятно сказал. Тестить функции надо в либах переиспользуемых. А не дрочить функции конечного бизнес сервиса
Большие проекты - много сервисов

Google

Foxcool
15.10.2018
08:19:44
Ну или монолит с идеально разделенными пакетами
Но там надо бить по рукам за связи порочные
А я не люблю насилие

Subbotin
15.10.2018
08:20:14
а то из идеальных шурупов и гаечек можно собрать неработающую поделку всегда

Foxcool
15.10.2018
08:21:05
Но первичны тесты снаружи
Постман прекрасен

Ilya
15.10.2018
08:29:23

Александр
15.10.2018
08:29:37
это не вопрос

Ilya
15.10.2018
08:29:46
Тогда утверждения

Александр
15.10.2018
08:30:00
я к тому что у тебя нет прокси между тому что отдаешь пользователю и слоем бд

Ilya
15.10.2018
08:30:25
Есть уровень можелей

Google

Ilya
15.10.2018
08:31:03
Это внутреннее представление
Он ровно между хттп и дб

Maksim
15.10.2018
08:44:08
Я пример почти вычленил, интернет накрылся скинуть нормально не могу, но скоро будет)

Elenhil
15.10.2018
08:47:13
Привет вссем! Есть в го бестпрактисы по логированию потоков? Например веб-сервер, хочется понимать какая ошибка к какому реквесту относится. Gouroutine id я так понимаю без грязных хаков не достать, остается только контекст таскать везде с собой?

Илья
15.10.2018
08:52:14
Ага, и в контексте request id

Даниил
15.10.2018
08:54:57
Если например logrus используешь, то удобно в миделваре создавать логер с WithFields request-Id и дальше по контексту передавать этот логгер.

David
15.10.2018
09:29:48
Доброго всем дня. Кто-то пробовал gRPC поверх QUIC?

Foxcool
15.10.2018
09:30:07
Звучит интересно

David
15.10.2018
09:31:30
Хотелось бы попробовать сделать имплементацию. Допустим если клиент не поддерживает QUIC откатиться к http2 на tcp
Я загуглил, но не нашел реализации

Daniel
15.10.2018
09:33:38
а зачем?

Евгений
15.10.2018
09:36:53
а через http2 гоняли? С какими проблемами столкнулись и что хотите решить переходом на UDP?

Daniel
15.10.2018
09:37:19
он же тольео поверх http/2 и существует, насколько я понимаю

Евгений
15.10.2018
09:42:26
мне тоже так кажется
или имеется ввиду самостоятельный обмен protobuf-кодированными сообщениями через QUIC?

Daniel
15.10.2018
09:44:25
grpc - это не только протобуф

Mike
15.10.2018
10:07:16

Евгений
15.10.2018
10:08:39
тогда не очень понятно, что от него остается
http2? схемы сообщений?

Subbotin
15.10.2018
10:09:52
а в чем модно хранить дату рождения человека?
в плане типа данных

Google

Евгений
15.10.2018
10:10:13
в ЗАГСе :)
timestamp

сын подруги
15.10.2018
10:10:36
Привет всем
Мне вот интересно, можно ли писать веб-сайт на Go, и если да, сколько будет стоит он?

Daniel
15.10.2018
10:11:25
можно, но не нужно

Евгений
15.10.2018
10:11:34
Сколько стоит автомобиль?

Denys
15.10.2018
10:12:18
если в аргумент нужно передать bool flag, то лучше предварительно флаг в переменную кинуть чтобы понятно было или нет?

Foxcool
15.10.2018
10:12:18
можно, но не нужно
ну почему. Сочетание какого-то реакт сервиса или аналога + гошный с бизнес-логикой вполне ок
если там логики нет, а только веб, тот конечно не стоит

Daniel
15.10.2018
10:12:41
это не вебсайт же будет

Foxcool
15.10.2018
10:12:41
тем более пихать в го шаблонизаторы и вот это все

Denys
15.10.2018
10:12:52
some(true)
или
isSomeshit := true
some(isSomeshit)

Foxcool
15.10.2018
10:13:44
голэнд показывает имя переменной, куда упадет аргумент

Daniel
15.10.2018
10:14:19

Denys
15.10.2018
10:14:29
?
для удобночитаемости, лучше для одного аргумента присваивать значение переменной или нет

Tweek
15.10.2018
10:15:21
Лучше не использовать флаги вообще

Илья
15.10.2018
10:15:35
и передавать их

Denys
15.10.2018
10:15:47
у меня 2 хендлера и обработка данных отличается только в 1 строке

Google

Denys
15.10.2018
10:15:59
я не могу пробросить обработку реквеста выше, потому что там у меня одна сущность

Daniel
15.10.2018
10:16:16
ага
const MyTrue bool = true
я вот не понимаю - откуда это безумие?..

Foxcool
15.10.2018
10:16:58
в смысле ты осуждаешь константы вот такие?

Илья
15.10.2018
10:17:11
ну, когда возникает такой кейс, const WithValidation bool = true const WithouValidation bool = false
хотя можно просто делать 2 функции враппера, а внутри уже иметь эти флаги

Foxcool
15.10.2018
10:17:41
константы или переменные важны для строк. Ибо в строках можно накосячить и опечататься, а валидатор не спалит
а вот опечатку в true спалит
потому наверное нах надо

Илья
15.10.2018
10:18:29
тоже правда, но с именоваными флагами может быть понятнее, что происходит

Foxcool
15.10.2018
10:18:29
ну и не только строк. Мэджик числа тоже не очень хорошо. ИЛи очень нехорошо даже

Denys
15.10.2018
10:25:21
ой все

Nikolay
15.10.2018
10:41:39
Можно как альтернативу viper использовать
Но он маленько слишком глобальный

Darwin
15.10.2018
10:43:32
ребятки, а если у меня есть ченнел с типом слайс (прим. chan []string) можно как-то одним for range и слушать этот чан и тут же его разбирать на элементы из слайса?
или все таки придется вложенные for лупы делать?

Denys
15.10.2018
10:51:37
мне кажется тебе нужен chan string
*если нет то ты сам ответил на свой вопрос

Darwin
15.10.2018
10:53:16
:)

Zarif
15.10.2018
11:01:19
ребята, поделитесь опытом: как лучше всего размещать файлы go в проекте?
читал несколько статей, пробовал как делать монолитную структуру - когда все файлы go в одной директории, так и выводить по функционалу в отдельные папки-пакеты, но так и не пришло понимание, как лучше.
в монолите - не упрешься в ошибку зациклинности импорта, но иметь 20-30 файлов несколько запутанно
дробить на пакеты - местами удобно, но бывают сложности с тем, чтобы опредилить стоит ли делать новый пакет или пихать в существующий, следить за приватностью и прочие.
кто как делает?

SkyCoffee
15.10.2018
11:06:29
в go ведь папки являются и пакетами. Лучше всего код размещать соответственно придуманной математической модели решения задачи, то есть без контекста задачи не получится найти алгоритм разбиения программы на части, не бывает универсальной модели

Google

Artem
15.10.2018
11:06:54
~/go/src/myapplication/ и там уже подпапка libs и отдельно одна папка для каждого сервиса. Хз насколько это правильно, но все работает

Pawel
15.10.2018
11:19:01
единственный нюанс - всё размещать в папке internal, чтобы не засерать GOPATH и не нагружать goland лишней работай по анализу пакетов, которые ни где не будут использованы


Foxcool
15.10.2018
11:24:52
internal по соглашению не индексируется никем?

Pawel
15.10.2018
11:24:53
математическая модель круд сервиса - ХА ХА ХА

Foxcool
15.10.2018
11:26:03
гусары