@proGO

Страница 459 из 1674
Daniel
07.02.2017
10:11:56
как, впрочем, и питоно-паттерны

Quet
07.02.2017
10:12:51
точнее паттернов-то много, но какие из них именно “жаба-паттерны”

Google
Daniel
07.02.2017
10:13:19
а о каких именно паттернах идет речь?
ну, например, каждый раз, когда мне нужен тред-пул - я понимаю, что что-то делаю не так. каждый раз, когда мне нужен routine id - я понимаю, что что-то елаю не так

Dmitry
07.02.2017
10:13:43
или даже так, "какие куски кода в твоем проекте на самом деле широкоизвестный паттерн"

Maxim
07.02.2017
10:13:59
ну видимо так и придется делать. Подумаю как это "покрасивше" завернуть..
А чего покрасивше сувать? Просто тупо передавай дополнительным аргументом, в той функции добавь её тип с алиасом. Так и передавай дальше, делов не больше пары минут дописать

Quet
07.02.2017
10:14:18
ну, например, каждый раз, когда мне нужен тред-пул - я понимаю, что что-то делаю не так. каждый раз, когда мне нужен routine id - я понимаю, что что-то елаю не так
ну это разве жаба паттерны? в го условно “тред пулл” тебе дает рантайм, поэтому понятно что отдельный не нужен

Dmitry
07.02.2017
10:16:35
везде передавать, везде возвращать.

короче, я уже смирился :)

всем спасибо

Daniel
07.02.2017
10:25:19
он есть уже

если он тебе явно потребовался - ты что-то делаешь не так

Roman
07.02.2017
10:26:25
он есть уже
это который GOMAXPROCS или отдельно?

Daniel
07.02.2017
10:27:41
этот

Google
Phil
07.02.2017
10:28:40
как ни странно - фил прав. интуитивно?
Я очень много читал Ритчи по языку. Даже переводить пытался. Они очень много с Пайком об этом в 90-ых писали и говорили

как, впрочем, и питоно-паттерны
Кстати да. Мне сильно мешает. Переключаться - это вообще крышеснос

Roman
07.02.2017
10:30:23
как, впрочем, и питоно-паттерны
а какие именно? я сходу так и не смог вспомнить

Alexander
07.02.2017
10:33:44
если логгер у тебя контекстной-зависимый, то что плохого в том, что ты его явно и передаешь? или строишь стуктурку, заранее передавая туда логгер

если у кода, метода, функции есть какая-то зависимость, то очень неплохо, что она выражена в сигнатуре этого кода

Phil
07.02.2017
10:34:48
Я кстати прямо сейчас борюсь с reflection. Не понимаю, хорошо это, плохо, и где его можно, а где нельзя. И вообще, насколько плохо interface{}. Опять же - где уместен, где нет. Нет этого понимания. Вот это проблема да

Alexander
07.02.2017
10:35:56
ну создатели языка очень расстраиваются, когда в библиотеку языка добавляют interface{} и во многих постах пишут, что типа "ребята, ни-ни! хорошо подумайте действительно ли оно вам надо"

Daniel
07.02.2017
10:36:23
interface{} - это задел на будущий пиздец

Alexander
07.02.2017
10:37:08
sort.slice (или как-то так) сейчас же добавили в 1.8 и вот там первый параметр как раз interface{}. в обсуждении фичи на гитхабе по этому поводу немало слез пролили

Phil
07.02.2017
10:37:26
ну создатели языка очень расстраиваются, когда в библиотеку языка добавляют interface{} и во многих постах пишут, что типа "ребята, ни-ни! хорошо подумайте действительно ли оно вам надо"
Ну однако в книге они целую главу под reflection отвели и даже вполне спокойно дышат на encoding/json и encoding/xml, которые я понимаю внутри весь из себя reflection и interface{}

Daniel
07.02.2017
10:37:44
а нет же выбора

Alexander
07.02.2017
10:37:55
не понимаю, как это противоречит тому, что я написал :)

тем более, что для этих пакетов по-моему иначе и нельзя

Phil
07.02.2017
10:38:20
везде плохо но иногда приходится но редко
Вот меня расстраивает отсутствие у меня понимания когда это "иногда"

Roman
07.02.2017
10:42:07
а вот да, расскажите про сериализацию. я правильно понимаю, что ради всяких json используется рефлексия итп?

Alexander
07.02.2017
10:42:24
ну да

Quet
07.02.2017
10:42:33
в языках где система типов помощнее можно обойтись без рефлекшена ну а в го не обойтись )

Google
Alexander
07.02.2017
10:43:50
ну вот подумай как бы ты решал сам задачу. наверно посмотрел бы список полей в JSON, потом для каждого попытался бы найти на что бы его в целевой структуре замапить и вот пожалуйста - рефлексия нужна. т.к. целевая структура и json ничем не регламентированы

хотя чисто теоретически, можно было бы, чтобы компилятор при формировании кода, смотрел на поля твоей структурки и для нее делал код, который читает и пишет ее в JSON или как-то другой формат

Phil
07.02.2017
10:56:20
в языках где система типов помощнее можно обойтись без рефлекшена ну а в го не обойтись )
а я не уверен, что в этих языках с развитыми типами под еапотом не тоже самое

Quet
07.02.2017
10:57:30
а я не уверен, что в этих языках с развитыми типами под еапотом не тоже самое
мощное обобщение ) ну ок, ты ничего не знаешь про эти языки и не уверен

Phil
07.02.2017
11:06:53
мощное обобщение ) ну ок, ты ничего не знаешь про эти языки и не уверен
но да, я ничего не знаю про них. это был в том числе и вопрос

Quet
07.02.2017
11:07:31
нет, если типы позволяют — можно без рефлекшена под капотом

i
07.02.2017
11:09:17
Про какие языки с развитыми типами вообще речь?

Quet
07.02.2017
11:13:55
Про какие языки с развитыми типами вообще речь?
по сравнению с го — почти любые ну вон в elm можно посмотреть на json кодек на aeson еще

i
07.02.2017
11:15:20
Roman
07.02.2017
11:15:40
Rust?

Phil
07.02.2017
11:16:22
по сравнению с го — почти любые ну вон в elm можно посмотреть на json кодек на aeson еще
расскажи вкратце в отличиях. не, действительно интересно

Serge
07.02.2017
11:18:08
Какой операционной системой вы пользуетесь для разработки на Go? GNU/Linux – 12 ??????? 63% Mac OS – 6 ???? 32% Windows – 1 ? 5% другая ▫️ 0% ? 19 people voted so far.

Phil
07.02.2017
11:19:33
хорошая голосовалка. я во всех чатиках проголлсовал

Serge
07.02.2017
11:20:49
Maxim
07.02.2017
11:21:29
Недавно угарали же с чувака, который пытался накатить го в линукс винды и ещё удивлялся почему всё так плохо

i
07.02.2017
11:22:12
Rust?
И там разбор json без рефлексии с *void?

Phil
07.02.2017
11:34:20
по сравнению с го — почти любые ну вон в elm можно посмотреть на json кодек на aeson еще
ну просто рефлексия это некая ручная штука, я не уверен, что в конечном итоге код-то не такой же +-. но да, я не знаю. хотел бы тезисно наверное узнать чо как

corpix
07.02.2017
11:39:35
ну просто рефлексия это некая ручная штука, я не уверен, что в конечном итоге код-то не такой же +-. но да, я не знаю. хотел бы тезисно наверное узнать чо как
Рефлексия это динамический код и лишь один из приёмов метапрограммирования. Теже самые дженерики могут служить лишь инструментом кодогенерации, который обрабатывается компилятором и на выходе никакой рефлексии не будет(в машинном коде).

Phil
07.02.2017
11:55:39
Рефлексия это динамический код и лишь один из приёмов метапрограммирования. Теже самые дженерики могут служить лишь инструментом кодогенерации, который обрабатывается компилятором и на выходе никакой рефлексии не будет(в машинном коде).
это мне понятно. вне зависимости от того, что я не боюсь спрашивать и дураком прикидываюсь, я начинал с мк61 и Macro11. не то чтобы я с потолка свалился. тут мой вопрос скорее в том, насколько сильно отличается итоговый код рефлексии от итогового кода в тех местах, где это впрямую сделано

Google
Admin
ERROR: S client not available

Phil
07.02.2017
12:38:03
А тут нет общего ответа. Надо брать и смотреть в каждом конкретном языке
Естественно. Но есть может у кого-нибудь какой-то пример. Хуже/лучше/потери/преимущества

corpix
07.02.2017
12:49:02
Естественно. Но есть может у кого-нибудь какой-то пример. Хуже/лучше/потери/преимущества
Ну вот например мой любимый пост про zero cost abstractions в rust https://ruudvanasseldonk.com/2016/11/30/zero-cost-abstractions

Maxim
07.02.2017
13:07:40
Чёт с гофера проиграл. Думаю мне надо скоро пойти отсыпаться

Alexandr
07.02.2017
14:32:16
а кто нибудь пользуется bazel, для сборки go проектов?

Phil
07.02.2017
14:57:29
это наверное пятый заход по теме, но я так ничего и не определил для себя. 1. Нужна простая KV база. Данные небольшие - ключ например там вообще можно фиксировать на 16 или 32 или 64 байта, значения - ну пусть пара килобайт максимум. Требования -простота, скорость, персистентность, репликация. Желательно - мастер мастер. 2. Усложняем задачу. Все что в 1, но нужно, чтобы у записей был атрибут datetime, относительно которого делать выборку. Или както обыграть это?

Daniel
07.02.2017
14:58:36
количестово записей?

Phil
07.02.2017
15:06:21
количестово записей?
Думаю единицы миллионов. В далеко проектном максимуме.

Daniel
07.02.2017
15:07:07
я бы взял аэроспайк

Phil
07.02.2017
15:07:26
количестово записей?
Давай на самом деле возьмём 100000. Но они будут достаточно регулярно удаляться и апдейтится

Maxim
07.02.2017
15:17:31
Данные конфига hjson пишутся в переменную типа map[string]interface{}. Как мне заместо интерфейса указать структуру в мапе?

Denis
07.02.2017
15:18:33
map[string]MyType же

Maxim
07.02.2017
15:18:54
map[string]MyType же
Не-а, тогда паника если прям напрямую

Denis
07.02.2017
15:19:12
где паника?

Maxim
07.02.2017
15:19:24
Или предлагаете накатить переменную с типом интерфейса на переменную с известной структурой?

Daniel
07.02.2017
15:19:45
а?

Maxim
07.02.2017
15:20:09
где паника?
panic: reflect.Set: value of type map[string]interface {} is not assignable to type map[string]main.Configuration

Может не я тупой, а пакет hjson кривой, но мне правда лень сейчас заниматься его патчем что б работало.

@kirilldanshin ты ж мне это рекоммендовал - выручай чо как

Google
Denis
07.02.2017
15:27:24
а зачем тебе human json?

Maxim
07.02.2017
15:28:10
а зачем тебе human json?
Привычка. Меньше вероятность очепятаться лишней/отсутствущей запятой например

Constantine
07.02.2017
15:28:15
?

причина!

ну ты Макс даешь

Страница 459 из 1674