@gogolang

Страница 826 из 1630
Vasily Romanov
15.02.2018
15:45:11
130 метров? что же там такое ?

John
15.02.2018
15:45:28
130 метров? что же там такое ?
"Программист-прагматик"

Kirill
15.02.2018
15:46:04
"Программист-прагматик"
он с квартирой там?

John
15.02.2018
15:46:16
он с квартирой там?
Нет, просто сканы страниц )

Google
Pawel
15.02.2018
15:46:33
Daniel
15.02.2018
15:53:57
Нет, просто сканы страниц )
для таких вещей http://www.djvu.org/ хорошо подходит

John
15.02.2018
15:54:30
для таких вещей http://www.djvu.org/ хорошо подходит
Да, согласен. Но мопед не мой (с)

Pawel
15.02.2018
15:55:30
по чём купил по том продал

Andrey
15.02.2018
16:46:26
@rvasily , а насколько сейчас модно следовать Clean Architecture в проектах на Go? Пишу тестовый проект для собеса, хочу выпендриться

Александр
15.02.2018
16:46:53
в смысле без фрейворков?

или я не в теме

Aleksandr
15.02.2018
16:47:02
не в теме

Andrey
15.02.2018
16:47:33
спс

BlastPy
15.02.2018
16:50:40
Всем привет .Кто видел гит проект с микросервиса с мин 2 сервисами на голанг?

Google
Vasily Romanov
15.02.2018
16:58:57
@rvasily , а насколько сейчас модно следовать Clean Architecture в проектах на Go? Пишу тестовый проект для собеса, хочу выпендриться
пишите так, словно ваш код будет ревьювить склонный к насилию психопат, который знает где вы живёте

Никита
15.02.2018
17:05:56
а мне заходит CA..

Алексей
15.02.2018
17:13:55
Не, я про изначальную формулировку этой фразы. Это вроде Макконнелл

Sergey
15.02.2018
17:19:25
Всем привет, интересует такой овпрос, в 2 словах, как лучше организовать роли пользователя в api, например есть база данных и в ней каждый пользователь после аутонтефикации может получать доступ только к своим данным, как это рализуется вообще интересует(какие то отдельные поля в таблице, отдельная таблица или еще что). Мне нужен именн толчек в правельном направлении, там разберусь

Marlik
15.02.2018
17:32:19
Интересный вопрос, я такой видел несколько лет назад. На Perl в частности Mojolicious предлагалось ограничивать пользователей через роуты. С удовольствием послушаю гоферский вариант.

Daniel
15.02.2018
17:42:26
погодите

в чем вопрос-тио?

authentication - тема большая и сложная

Илья
15.02.2018
17:43:14
про фреймворки вопрос, помоему ?

Daniel
15.02.2018
17:43:30
про фреймворки нзна ничего

Илья
15.02.2018
17:43:58
ну приходят люди из джанг/что там у пыхеров, и хотят чтобы было уже что-то

решений много готовых, разной степени готовности

искать по golang auth middleware

Marlik
15.02.2018
17:50:49
authentication - тема большая и сложная
Там не просто аутентификация, тама ещё и раздельный доступ. Что бы не писать везде: if userID == vasya { // позволяем } else { // это не vasya }

Kirill
15.02.2018
17:52:38
Я бы взял разве что готовый rbac и орму, но с отдельными подключениями для принципиально разных ролей, чтобы ограничить и в плане прав доступа в базу, если база позволяет, конечно

Но - спасибо за идею, надо будет прикрутить в грэйм версию для особо ленивых

Marlik
15.02.2018
17:56:33
Да, роли. Авторы, модераторы, админ к примеру.

Илья
15.02.2018
17:59:07
Но - спасибо за идею, надо будет прикрутить в грэйм версию для особо ленивых
Админку же ты не будешь прикручивать, если будет время могу слепить мидлварь для того же рбака

Google
Roman
15.02.2018
18:06:04
Есть ли смысл в структурах указывать не тип, а указатели? по сути это должно сэкономить память когда мы заполняем структуру ?

Например вместо этого type User struct{ Id int Name string } Писать так type User struct{ Id *int Name *string }

Александр
15.02.2018
18:09:03
это еще вариант как при сериализации в json получить null на пустых значениях

память на 1 экземпляре не экономите

Roman
15.02.2018
18:09:38
Точно, спасибо

Let Eat
15.02.2018
18:09:47
Там не просто аутентификация, тама ещё и раздельный доступ. Что бы не писать везде: if userID == vasya { // позволяем } else { // это не vasya }
Можно еще open policy agent глянуть: на каждый чих спрашиваем сервис "этому вот это можно?" по ответу решаем прекращать запрос или дальше обслуживать

Roman
15.02.2018
18:11:42
На GC нагрузки больше
указатели обычно же на хипе аллоцируются ?

Let Eat
15.02.2018
18:13:11
Вот именно, а значит их GC собирать придется.

Илья
15.02.2018
18:16:16
Roman
15.02.2018
18:16:57
google golang escape analysis
Да, спасибо, читал про это )

Let Eat
15.02.2018
18:19:04
google golang escape analysis
И? Значение поля структуре гарантированно не попадет в GC, указатель _может_ не попасть в GC

Илья
15.02.2018
18:20:05
И? Значение поля структуре гарантированно не попадет в GC, указатель _может_ не попасть в GC
эмм, и? утверждение было: указатели обычно же на хипе аллоцируются ?

Let Eat
15.02.2018
18:21:01
Вы этот escape analysis видели? Он ш, чахлый, чуть что сразу в хип сует

Так что обычно да, в хипе

Roman
15.02.2018
18:21:12
Насколько помню не всегда, может и на стеке

Если переменная никуда не передается из функции

Let Eat
15.02.2018
18:22:35
Если переменная никуда не передается из функции
Вопрос то про тип поля в создаваемой структуре. Если структуру создаем, то уж почти всегда ее куда то передаем

Let Eat
15.02.2018
18:24:43
Вобщем, value types сила, нечего джаву тут разводить и по указателю на значение держать :)

Google
Pawel
15.02.2018
19:09:06
Например вместо этого type User struct{ Id int Name string } Писать так type User struct{ Id *int Name *string }
вот конкретно так как у вас написано никогда не надо делать. Id должен быть всегда интом потому, что это значение, а не объект. Если не знаете разницу, рекомкндую загуглить.

Roman
15.02.2018
19:12:20
вот конкретно так как у вас написано никогда не надо делать. Id должен быть всегда интом потому, что это значение, а не объект. Если не знаете разницу, рекомкндую загуглить.
Разницу между значением и указателем я понимаю. Вероятность схватить nil при сериализации подсказали, в чем проблема еще ?

Pawel
15.02.2018
19:18:13
Разницу между значением и указателем я понимаю. Вероятность схватить nil при сериализации подсказали, в чем проблема еще ?
между значением и объектом. указатель как правило предназначен для объектов в ООПшном смысле проблемы две, и они оч досадные 1) доп. бойлерплейт на копирование 2) перед дереференсом при использовании надо тестить на nil. В данном конкретном случае, который вы привели, никаких бонусов нет, по этому оно не нужно

Pawel
15.02.2018
19:19:58
Admin
ERROR: S client not available

Pawel
15.02.2018
19:21:29
но опять таки - это всё относится к значениям и не относится объектам Для объектов - указатели

Roman
15.02.2018
20:24:15
Нормально ли использовать такую конструкцию для десереализации ? или есть варианты изящнее ? var curRequest struct{ Query string `json:"query"` } На каждый запрос предопределенными структурами не напасешься , а map[string]interface{} с рефлектом то еще удовольствие

Daniel
15.02.2018
20:25:32
какую задачу решаете?

Roman
15.02.2018
20:27:29
какую задачу решаете?
Принимаю запрос с фронтенда, десереализую и бывают кастомные поля, в структуру модели эти кастомные поля тащить не хочеться. PS это не вы делали доклад на хайлоаде PostgreSQL vs MySQL ? )

Я делаю структуры на каждый запрос
Разница получается только в том, что я объявляю структуру не через type , и в локальном скоупе функции

Roman
15.02.2018
20:29:58
Кастомные поля можно сделать опциональными с помощью указателей
Т.е. если значения нет, то nil не будет занимать памяти в отличии от default value?

Roman
15.02.2018
20:31:03
что смущает?
После скриптовых языков такие кульбиты )

Мерлин
15.02.2018
20:34:42
Т.е. если значения нет, то nil не будет занимать памяти в отличии от default value?
Конечно будет Вообще вы пытаетесь оптимизировать потребление памяти до того, как эта проблема стала для вас актуальной. Не нужно этого делать

Google
Мерлин
15.02.2018
20:36:17
Хочется узнать best practice , чтобы потом не переделывать в случае чего
Лучше всего — запилить модели на все случаи, и использовать указатели только для опциональных полей

Denis
15.02.2018
20:49:54
Коллеги, подскажите, пожалуйста. Как в Golang сделать map с глобальной областью видимости (за пределами функции main)? Насколько я понял, ее (map)нельзя объявить без инициализации. А инициализировать вне функции нельзя.

Или как вернуть map из функции?

Denis
15.02.2018
20:55:49
https://tour.golang.org/moretypes/19
Спасибо, догадывался что уже туго соображаю)

The
15.02.2018
22:42:29
господа, два вопроса: есть ли какая-то вероятность, что тикер перестанет тикать, или начнет это делать слишком часто/слишком редко? и второй вопрос: если тикер тикает, а приложение где-то запаниковало и сделало recover, тикер сохраняет временной интервал, когда была паника? не начнет ли он заново отсчет?

Alex
15.02.2018
22:52:14
господа, два вопроса: есть ли какая-то вероятность, что тикер перестанет тикать, или начнет это делать слишком часто/слишком редко? и второй вопрос: если тикер тикает, а приложение где-то запаниковало и сделало recover, тикер сохраняет временной интервал, когда была паника? не начнет ли он заново отсчет?
В теории ограничений нет. Можно тикать хоть каждую наносекнду. На практике зависить от железа. Если не будет успевать, то будет гонка. Если паника отловлена, и она случилась не в горутине тикера, то на тикер никак не повлияет.

The
15.02.2018
22:56:35
Мне нужно делать одну и ту же задачу как по крону каждый час.

Но стабильно и регулярно.

Вот думаю, тикер присобачить, или цикл и time.Sleep.

Alex
15.02.2018
23:01:37
Вот думаю, тикер присобачить, или цикл и time.Sleep.
По сути - одно и то же. Разница лишь в том, будете вы останавливать выполение текущей горутины или запускать отдельную.

The
15.02.2018
23:02:16
Все в одной горутине планировал сделать, просто for { ... time.Sleep(time.Minute * 60)}

Страница 826 из 1630