@gogolang

Страница 1301 из 1630
Антон
21.08.2018
19:37:35
Ой, это ведь Го

Slava
21.08.2018
19:37:52
Можно через функциональные аргументы

Alexey
21.08.2018
19:38:42
Google
Kirill
21.08.2018
19:42:52
Ой, это ведь Го
ну да, ведь типам не хватает значения empty. булю, например. true, false, null и empty — охуенно же

блеванул
плюсую.

Alexey
21.08.2018
19:44:44
а метод какого api вы реализуете?
Конкретно сейчас https://www.livecoin.net/api/userdata Метод /exchange/trades

Kirill
21.08.2018
19:45:19
запили, может, структурку с опциями

как @toby3d делал в клиенте TG bot api

получается довольно удобно

но — это если я правильно задачу понял

Alexey
21.08.2018
19:48:28
как @toby3d делал в клиенте TG bot api
Можно ссылочку на код? Я находил подобное решение в статьях (если мы об одном и том же). Но в таком случаи клиентский код все равно должен заморичитсья с созданием структуры с параметрами

Kirill
21.08.2018
19:48:58
не, смотри, тип структуры предоставляешь ты сам

а чтобы дать возможность не задавать опции вовсе — можно использовать rest arguments

например: package a type SomeOpts struct {} // ... func DoSomeReq(options ...SomeOpts) SomeResult { opts := defaultOpts if len(options) > 0 { opts = options[0] } // ... }

в итоге валидным будет и a.DoSomeReq(), и a.DoSomeReq(customOptions)

Google
Kirill
21.08.2018
19:51:59
а лишних аллокаций не будет

Daniel
21.08.2018
19:52:13
тогда возьмите swagger и опишите api на нем

надо будет описать опциональные параметры и дефолты к ним

Kirill
21.08.2018
19:52:32
тогда возьмите swagger и опишите api на нем
описание апишки, вроде как, есть

Daniel
21.08.2018
19:52:49
вот эти дефолты и приедут в ваш хендлер

описание апишки, вроде как, есть
тогда достаточно кода нагенерить

Kirill
21.08.2018
19:53:06
но может я задачу саму упускаю) Alexey ты пишешь клиент к апишке или реализовываешь сам сервак апишки?

Alexey
21.08.2018
19:53:21
Клиент пишу

Kirill
21.08.2018
19:53:23
тогда достаточно кода нагенерить
вот именно, достаточно негенерить код :D

Клиент пишу
тогда уж лучше сделать удобный и адекватный клиент, I think

я в gramework специально делаю апишку так, чтобы было легко её юзать — так что там много кода с rest args

Антон
21.08.2018
19:56:06
Kirill
21.08.2018
19:56:12
Нашёл, сейчас посмотрю, спасибо)
note: там не клиент апи, там фреймворк именно для всяких серверных вещей

null, то есть, простите, nil - кривизна языка
ты не путай — с Optional ты получаешь в добавок к типичным null и true/false ещё и empty, в гошке у тебя nil будет только для ссылочных типов

Kirill
21.08.2018
19:58:55
народ, кто звёздочку не поставил грэйму, исправляйте ситуацию https://github.com/gramework/gramework ?

Maxim
21.08.2018
20:03:47
например: package a type SomeOpts struct {} // ... func DoSomeReq(options ...SomeOpts) SomeResult { opts := defaultOpts if len(options) > 0 { opts = options[0] } // ... }
Без многоточия и с ссылкой, чтобы можно было вбить nil в аргумент и не париться. Главное чекать что на входе и по необходимости сбрасывать в дефолт

Google
Maxim
21.08.2018
20:05:39
Я решил так, что если опциональных аргументов больше трёх-четырёх, то все их пихать в отдельную структуру

Обязательные аргументы всегда напрямую. Либо вообще всё пихать в структуру и чекать поля

Daniel
21.08.2018
20:06:28
это решает проблему именованных аргументов, но не решает проблему дефолтных значений

Kirill
21.08.2018
20:06:46
Maxim
21.08.2018
20:06:54
Антон
21.08.2018
20:11:01
Человеческий фактор никто не отменял
Зачем полагаться на такую несовершенную систему, как человек, если можно перепоручить заботу о проверке на компилятор?

И с дженериками, чтобы был один опциональный тип, а не по одному на каждый, который нагенерировал сам

Slava
21.08.2018
20:12:17
А можно пример кода?
https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis

Slava
21.08.2018
20:12:27
тут разобраны разные варианты, в том числе и функциональный

Stanislav
21.08.2018
20:12:44
гоферы мне напоминают персонажей из аниме показывающих невиданную стойкость и силу духа. их продолжают бить, они падают но всеравно продолжают бой

Daniel
21.08.2018
20:13:50
Stanislav
21.08.2018
20:14:45
мне только непонятно почему бизнес спонсирует эту деятельность всю

Daniel
21.08.2018
20:15:14
ну - какую-то деятельность он должен спонсировать

Kirill
21.08.2018
20:16:35
и эта пока выгоднее остальных

Stanislav
21.08.2018
20:16:43
хотя да, я слышал уже о том что можно нанять стадо джунов которые не поймут АДТ и дженерики, но как то очень слабо верится . мне кажется любой програмист за месяц вырастит из яслей и ему самому захочется больше сахара, тем более видит же что в соседнем огроде все ок... короче рвет мне хорошо это шаблон. извените за флуд, уж больно хорошо Антон вбросил...

Google
Kirill
21.08.2018
20:18:12
что он вырастит из яслей? О_о

Daniel
21.08.2018
20:18:51
в каком именно огороде все ок?

Kirill
21.08.2018
20:25:01
в каком именно огороде все ок?
всё больше кажется, что Станислав и Антон всё ещё в шоке от ADT и граблей не нахватались

Phil
21.08.2018
20:26:29
О. У нас давно не былл треда про историю исчезновения дженериков из go?

Phil
21.08.2018
20:26:54
Блин. Надо таки записать и на таймер поставить. Раз в квартал я думаю будет ок

Kirill
21.08.2018
20:27:00
по крайней мере я не видел

ссылку схороним и в людей кидаться можно будет

Admin
ERROR: S client not available

Stanislav
21.08.2018
20:28:19
в каком именно огороде все ок?
о чем вы сейчас? о какой то технической невозможности сделать в языке АДТ и дженерики? шарп, свифт, раст, жава в конце концов. не уступают по скорости гошечке и имеют гораздо больше сахара. у них конечно другие интересы но я верю в свифт на бекенде и рост популярности шарпа, и f# в часности

Phil
21.08.2018
20:28:23
Короче, начинаю вброс для набежавших явистов и иже с ними. В 1992 году они там были.

Stanislav
21.08.2018
20:30:21
О, и как только все крупные компании, использующие go до этого не догадались. Вам нужно срочно написать пост и открыть миру глаза
все гораздо хуже. крупные компании не догадались выкинуть тормозящие безтиповые скрипты типа питона и руби и конторы вроде инстаграма держат в секрете сколько рпс они выжимают с ядра, хотя понятно что чтото около пяти. хотя есть надежда на тайпскрипт и mypy

Kirill
21.08.2018
20:31:25
Да-да, я понимаю, что осознать для вас возможность типов без nil сложно. Ничего, я подожду
я разные системы типов видел. больше скажу — я пробовал в go вкручивать adt. вы сколько лет назад начали заниматься коммерческой разработкой?

Антон
21.08.2018
20:32:05
Google
Stanislav
21.08.2018
20:32:06
так то у питона строгая типизация имеется в наличии, но возможно вам это не известно
строгая типизация совсем не утешает, если она динамическая

Slava
21.08.2018
20:32:19
толк наверное в том, что она есть, а вы говорите что её нет

Stanislav
21.08.2018
20:33:53
это лишь ты было что сказать. не "отсутствие" а "утиность". не тупой а альтернативно одаренный

Daniel
21.08.2018
20:35:13
скажите лучше, адепты дженериков - зачем они вам нужны?

мне вот ни разу не понадобились

а вам?

Wingman
21.08.2018
20:35:35
чтобы ныть о чём-нибудь другом. А то о дженериках надоело

Stanislav
21.08.2018
20:35:35
если вам не нужны откажитесь от них в списках

Maxim
21.08.2018
20:35:49
Daniel
21.08.2018
20:35:50
в каких списках?

Stanislav
21.08.2018
20:36:34
гошных списках. или вы не знали что они дженерик?

Daniel
21.08.2018
20:36:52
я в курсе, что в go есть generic типы - map, например я не в курсе, зачем вам нужны генерики кроме тех, что уже есть

и, @enomad , если ответа не будет - я вас побаню на сутки, ок?

Stanislav
21.08.2018
20:37:26
этот вопрос должен ставить в тупик своей элементарностью я понял

Dmitry
21.08.2018
20:38:45
Мне вот в peg парсере пригодились бы генерики. Да и в любом коде работающим с аст

Stanislav
21.08.2018
20:40:04
сократить количество interface{}, возможность задавать функциям какого типа ответ ты от них ожидаешь. самое очевидное даже от питониста. наверное у кого то вроде фаулера может быть полный список

Daniel
21.08.2018
20:41:15
я не пользуюсь interface{}, и я не пишу функций, которые могут вернуть ответ разного типа

а зачем вам это?

Stanislav
21.08.2018
20:42:07
в тс я могу взять библиотечный тип, параметризовать его своим типом и использовать. как нужно вывернуться в го чтобы так сделать я даже не представляю. кроме interfce{} или кодогенерации наверное никак

Dmitry
21.08.2018
20:42:15
А я не пользуюсь каналами в го. Давайте их удалим

Kirill
21.08.2018
20:44:05
Чета не цепануло ))
дык они не знают, что гошка настолько стара

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