
undiabler
27.07.2018
11:56:29
ну для сбора метрик можно поизвращаться и сделать типа такого
calcTime(func(){
// your code
})
универсально засчет того что внутрь анонимной функции можно засунуть что угодно, если предварительно обьявить переменные то можно даже из локального неймспейса с ними работать
но вообще это не go way

Pavel
27.07.2018
11:57:46

undiabler
27.07.2018
11:58:17
вот я только начал писать что это не go way и лучше в функции запихать свои метрики =)

Google

Pavel
27.07.2018
11:58:52
И ещё могут быть отдельные метрики на количество ошибок.

Sliva
27.07.2018
13:59:07
Всем привет!
Хочется сделать такую дичь, чтобы можно было залить файл на сервер, а потом взять его оттуда. И все
Но я не имею представления о том, как залить файл на сервер
Как это сделать?

Sergey
27.07.2018
14:00:37
вариантов тыщи
хоть ссш, хоть фтп, хоть сервис свой запилить

Dmitriy
27.07.2018
14:01:32
Чел уже в соседнем чатике уточнил вопрос, ему нужно понимание самых самых азов. Т.е. в данном случае понимание multipart/form-data

Subbotin
27.07.2018
14:02:32
ровно счас пилю заливалку файлов на сервер просто содержимым файла в теле запросто без мультипарт/форм-дата

Dmitriy
27.07.2018
14:04:28

Sergey
27.07.2018
14:04:34
https://gist.github.com/ebraminio/576fdfdff425bf3335b51a191a65dbdb
да вот, например

Subbotin
27.07.2018
14:05:03

Dmitriy
27.07.2018
14:05:39

[Anonymous]
27.07.2018
14:20:20
Потому что в С обход с помощью инкрементации указателя самый быстрый способ
А в го он сосет, судя по вашим бенчмаркам

Google

Denis
27.07.2018
14:22:16
товарищи, а как можно проверить гипотезу

[Anonymous]
27.07.2018
14:22:25
Поэтому напрашивается вывод: не надо пытаться оптимизировать подобные вещи вручную

Denis
27.07.2018
14:22:26
что go работает с сокетами через fs, а не ram как java

[Anonymous]
27.07.2018
14:22:40
Лучше компилятора человек не оптимизирует

Daniel
27.07.2018
14:22:52

[Anonymous]
27.07.2018
14:23:57

Vadim
27.07.2018
14:27:50
Вопрос с закавыркой: Что если я залочу (с помощью LockOSThreads) больше тредов, чем мне позволяет пк?

Daniel
27.07.2018
14:28:16
а что такое "позволяет ПК"?

[Anonymous]
27.07.2018
14:35:46

Vadim
27.07.2018
14:37:22
Или это физически невозможно?

Daniel
27.07.2018
14:42:50

Александр
27.07.2018
14:45:13
а кто ковырял этот гугловский DI?
я про Wire

Daniel
27.07.2018
14:51:35
видимо, нет


Foxcool
27.07.2018
14:55:20
А как решается вопрос внутренней авторизации в микросервисной архитектуре? Ну т.е. некий пользователь юзает апи сервисов разных не таская логин пароль, а используя какие-то временные AccessToken.
Вроде сначала думаешь на реализацию OAuth, но так-то это же получается избыточная вещь.
OAuth - это протокол авторизации, когда клиент с одним приложением хочет дать доступ к своему аккаунты на другом приложении с возможностью контроля прав, отзыва доступа и т.д. Например, я даю право сайту некому к моему фейсбуку с целью получения каких-то данных и заодно меня аутентифицировав средствами самого фейсбука. В каких-то случаях можно давать права даже что-то постить от моего имени.И процесс тут потому и подразумевает работу со всякими токенами, редиректами на аутентификацию и обратно и т.д. Ведь все эти приблуды как рах и наворочены для секьюрности авторизации сторонним фейсбуком, проверки, что юзер тот же самый вернулся и т.д.
В нашем же случае хотим, чтобы генерировался ОДИН токен по нашей же авторизации. И этот токен юзер сам носил, как я понимаю, по всем микросервисам.
Я так понимаю тут вроде проситмся примитивная хранилка аксестокенов с ttl и и экспирацией, выдачей при успешной аутентификации и т.п.
Но как это на практике у пытных команд. Нет ли какого-то архитектурного best practice тут?


Александр
27.07.2018
14:57:49
атата

Google

Александр
27.07.2018
14:57:53
хранить токены не по ресту

Foxcool
27.07.2018
14:58:08
0\

Александр
27.07.2018
14:58:41
вариант - подписывать каждый запрос как строку + логин пасс

Foxcool
27.07.2018
14:58:45
я тебе еще больше скажу. OAuth сервер нормальный аутентифицирует, редирект утда сюда и все делает с ХРАНЕНИЕМ СЕССИИ. И вертел он на срамном уде твои представления о ресте (: ПОтому что он вроде как не рест ваще

Александр
27.07.2018
14:58:48
+ приватный ключ


Artem
27.07.2018
15:11:15
А как решается вопрос внутренней авторизации в микросервисной архитектуре? Ну т.е. некий пользователь юзает апи сервисов разных не таская логин пароль, а используя какие-то временные AccessToken.
Вроде сначала думаешь на реализацию OAuth, но так-то это же получается избыточная вещь.
OAuth - это протокол авторизации, когда клиент с одним приложением хочет дать доступ к своему аккаунты на другом приложении с возможностью контроля прав, отзыва доступа и т.д. Например, я даю право сайту некому к моему фейсбуку с целью получения каких-то данных и заодно меня аутентифицировав средствами самого фейсбука. В каких-то случаях можно давать права даже что-то постить от моего имени.И процесс тут потому и подразумевает работу со всякими токенами, редиректами на аутентификацию и обратно и т.д. Ведь все эти приблуды как рах и наворочены для секьюрности авторизации сторонним фейсбуком, проверки, что юзер тот же самый вернулся и т.д.
В нашем же случае хотим, чтобы генерировался ОДИН токен по нашей же авторизации. И этот токен юзер сам носил, как я понимаю, по всем микросервисам.
микросервисы не торчат наружу -> внутренняя авторизация не нужна
а если с другой стороны, то мне кажется ты хочешь сказать слово JWT но не решаешься


Foxcool
27.07.2018
15:12:04
хм

Daniel
27.07.2018
15:17:16
авторизация таки или аутентификация?

Foxcool
27.07.2018
15:23:47
ну предполагается сервис аутентификации. Он сверяет тот же логин пасс, например. А далее другие сервисы могут узнать, что этот юзер аутентифицирован и имеет соответствующую роль.
Вроде как JWT похож, ведь получается, что сервису даже не нужно стучать к аутентификатору для проверки годности токена и соответствия роли. Все в JWT записано и подписано ключом. Т.е. меньше лишних запросов

Daniel
27.07.2018
15:28:54
Да

Alan
27.07.2018
15:31:07
Думаю, можно подсмотреть идею у проекта Keystone в опенстеке

Demian
27.07.2018
17:38:33
может кто сталкивался как их слайса сделать сет(слайс уникальных элементов)?
может есть готовые функции

Zver
27.07.2018
17:40:46

Demian
27.07.2018
17:41:09
типа по ключу
чет подобное вспоминается в питоне

Zver
27.07.2018
17:41:22
Да.

Demian
27.07.2018
17:41:37
ок, спс за идею

Человек
27.07.2018
20:00:48
Здравствуйте, кто знает крипт-либы с возможностью расшифровки при помощи ключа? (AES не указывать)

Mikalai
27.07.2018
20:01:45

Google

Человек
27.07.2018
20:02:15

Mikalai
27.07.2018
20:05:03
симметричная
Ну там в этом случае лучший вариант это децствительно crypto/aes. Или вам нужно что-то экзотическое типа ГОСТ ?

Человек
27.07.2018
20:10:57

Mikalai
27.07.2018
20:13:13

Человек
27.07.2018
20:18:52

Mikalai
27.07.2018
20:19:26
https://godoc.org/golang.org/x/crypto/pbkdf2

Человек
27.07.2018
20:20:51

Mikalai
27.07.2018
20:21:19
Если у вас не такой - юзайте PBKDF

Человек
27.07.2018
20:24:35
Такой вопрос поднялся, что делать если конфликтуют пакеты "math/rand" и "crypto/rand", для rand.Reader нужен crypto/Rand, дял всего остального нужен пакет math/rand

Mikalai
27.07.2018
21:28:42
import ( mathRand "math/rand" )

Человек
27.07.2018
21:29:00

Макс
28.07.2018
07:16:28
добрый день
подскажите есть кто проходил курсы майла по го на курсере

Anton
28.07.2018
07:17:50
тут вроде был тот, кто приложил руку к их созданию

Макс
28.07.2018
07:22:22
не могу разобраться со 2 заданием в целом что надо сделать

Daniel
28.07.2018
07:28:19

Google

Макс
28.07.2018
07:29:31
понял спасибо
я уже нашел

Zarif
28.07.2018
07:34:13
ребята, context.Context реально удобный? часто юзаете?

Daniel
28.07.2018
07:35:44
Никогда. Это редкий кейс, когда оно нужно

Zarif
28.07.2018
07:38:42
Никогда. Это редкий кейс, когда оно нужно
да, я тоже за столько лет часто видел/слышал, но не находил полноценного применения,
я так понимаю, дедлайны и таймауты хороши в нём для сервисов с большим кол-во реплик, где важна скорость и контроль

Pawel
28.07.2018
07:46:49

Daniel
28.07.2018
07:52:15
Ну вот длительный процесс с возможностью оборвать его - это редкий кейс

Pawel
28.07.2018
07:52:36
Это касается приложений с вебсокетами, управляющих прогрессбаром. Кейс отнюдь не редкий