Kirill
получается довольно удобно
Kirill
но — это если я правильно задачу понял
Alexey
как @toby3d делал в клиенте TG bot api
Можно ссылочку на код? Я находил подобное решение в статьях (если мы об одном и том же). Но в таком случаи клиентский код все равно должен заморичитсья с созданием структуры с параметрами
Kirill
не, смотри, тип структуры предоставляешь ты сам
Kirill
а чтобы дать возможность не задавать опции вовсе — можно использовать rest arguments
Kirill
например:
package a
type SomeOpts struct {}
// ...
func DoSomeReq(options ...SomeOpts) SomeResult {
opts := defaultOpts
if len(options) > 0 {
opts = options[0]
}
// ...
}
Kirill
в итоге валидным будет и a.DoSomeReq(), и a.DoSomeReq(customOptions)
Daniel
Kirill
а лишних аллокаций не будет
Daniel
тогда возьмите swagger и опишите api на нем
Daniel
надо будет описать опциональные параметры и дефолты к ним
Kirill
Daniel
вот эти дефолты и приедут в ваш хендлер
Kirill
но может я задачу саму упускаю) Alexey ты пишешь клиент к апишке или реализовываешь сам сервак апишки?
Alexey
Клиент пишу
Kirill
Клиент пишу
тогда уж лучше сделать удобный и адекватный клиент, I think
Kirill
я в gramework специально делаю апишку так, чтобы было легко её юзать — так что там много кода с rest args
Alexey
Антон
Антон
Kirill
народ, кто звёздочку не поставил грэйму, исправляйте ситуацию https://github.com/gramework/gramework 😄
Kirill
Maxim
Kirill
Антон
Maxim
Я решил так, что если опциональных аргументов больше трёх-четырёх, то все их пихать в отдельную структуру
Maxim
Обязательные аргументы всегда напрямую. Либо вообще всё пихать в структуру и чекать поля
Kirill
Daniel
это решает проблему именованных аргументов, но не решает проблему дефолтных значений
Kirill
Maxim
Антон
Антон
И с дженериками, чтобы был один опциональный тип, а не по одному на каждый, который нагенерировал сам
Slava
тут разобраны разные варианты, в том числе и функциональный
Anonymous
гоферы мне напоминают персонажей из аниме показывающих невиданную стойкость и силу духа. их продолжают бить, они падают но всеравно продолжают бой
Alexey
Daniel
Anonymous
мне только непонятно почему бизнес спонсирует эту деятельность всю
Daniel
ну - какую-то деятельность он должен спонсировать
Kirill
и эта пока выгоднее остальных
Anonymous
хотя да, я слышал уже о том что можно нанять стадо джунов которые не поймут АДТ и дженерики, но как то очень слабо верится . мне кажется любой програмист за месяц вырастит из яслей и ему самому захочется больше сахара, тем более видит же что в соседнем огроде все ок... короче рвет мне хорошо это шаблон. извените за флуд, уж больно хорошо Антон вбросил...
Kirill
что он вырастит из яслей? О_о
Daniel
в каком именно огороде все ок?
Slava
🏳️ Phil
О. У нас давно не былл треда про историю исчезновения дженериков из go?
Kirill
🏳️ Phil
Блин. Надо таки записать и на таймер поставить. Раз в квартал я думаю будет ок
Kirill
по крайней мере я не видел
Kirill
Kirill
ссылку схороним и в людей кидаться можно будет
Anonymous
в каком именно огороде все ок?
о чем вы сейчас? о какой то технической невозможности сделать в языке АДТ и дженерики? шарп, свифт, раст, жава в конце концов. не уступают по скорости гошечке и имеют гораздо больше сахара. у них конечно другие интересы но я верю в свифт на бекенде и рост популярности шарпа, и f# в часности
🏳️ Phil
Короче, начинаю вброс для набежавших явистов и иже с ними. В 1992 году они там были.
Антон
Slava
а mypy тут причём? =)
Slava
Антон
Anonymous
Slava
толк наверное в том, что она есть, а вы говорите что её нет
Anonymous
это лишь ты было что сказать. не "отсутствие" а "утиность". не тупой а альтернативно одаренный
Daniel
скажите лучше, адепты дженериков - зачем они вам нужны?
Daniel
мне вот ни разу не понадобились
Daniel
а вам?
Wingman
чтобы ныть о чём-нибудь другом. А то о дженериках надоело
Anonymous
если вам не нужны откажитесь от них в списках
Maxim
Daniel
в каких списках?
Anonymous
гошных списках. или вы не знали что они дженерик?
Daniel
я в курсе, что в go есть generic типы - map, например
я не в курсе, зачем вам нужны генерики кроме тех, что уже есть
Daniel
и, @enomad , если ответа не будет - я вас побаню на сутки, ок?
Anonymous
этот вопрос должен ставить в тупик своей элементарностью я понял