
Александр
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

Admin
ERROR: S client not available

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

Google

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

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 файлов несколько запутанно
дробить на пакеты - местами удобно, но бывают сложности с тем, чтобы опредилить стоит ли делать новый пакет или пихать в существующий, следить за приватностью и прочие.
кто как делает?

Google

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

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
гусары