Size: a a a

2020 June 22

S

Sergey in Go-go!
Юрий Вельмесов
это как раз такие одна из причин по которой я не стал подключать вайперы всякие на работу с конфигами и написал свой в пару десятков строк кода, именно поэтому я не хотел подрубать всякие пакеты горилы и чи.
я стал писать свой роутер. И я его уже правктически написал и архитектуру пакетов продумал и проекта в целом, но вот затык именно с динамическим вызовом этих самых хэндлеров.

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

AK

Artem Krapivin in Go-go!
>>но тут же опять жестко заданы хэнлеры
наверное, потому что ваше желание динамически их вызывать не слишком распространено среди людей, которые пишут на гоу.
Но если вы твердо уверены в том, что хотите именно так делать, то увы, придется самому
источник

ЮВ

Юрий Вельмесов... in Go-go!
Alexander Shavelev
1) каких еще параметров
2) вы часто в пыхе меняете хендлер для роута просто так через конфиг?
роуты уже существующие как правило очень редко меняются, только по требованию сео отдела если..
а вот именно новые роуты добавляются очень часто, добавляются постоянно новые разделы на сайт, менюшки, апишки и всякая хрень и поэтому моя цель сделать динамический вызов соответсвующего хэндлера под данный роут.
источник

S

Sergey in Go-go!
Юрий Вельмесов
роуты уже существующие как правило очень редко меняются, только по требованию сео отдела если..
а вот именно новые роуты добавляются очень часто, добавляются постоянно новые разделы на сайт, менюшки, апишки и всякая хрень и поэтому моя цель сделать динамический вызов соответсвующего хэндлера под данный роут.
Ну вот ты добавил новый роут в конфиг и всё-равно пошёл в код, писать хэндлер. Вот прям большая разница где написать роут?
источник

AS

Alexander Shavelev in Go-go!
Юрий Вельмесов
роуты уже существующие как правило очень редко меняются, только по требованию сео отдела если..
а вот именно новые роуты добавляются очень часто, добавляются постоянно новые разделы на сайт, менюшки, апишки и всякая хрень и поэтому моя цель сделать динамический вызов соответсвующего хэндлера под данный роут.
вы ж помните что если у вас добавиться новый роут в го у вас должен быть билд нового бинаря?
и то что вы хотите сделать - бессмысленно
источник

S

Sergey in Go-go!
я понимаю ещё было бы "добавил роут - хэндлер универсальный магическим образом его обработал".  а так - всё-равно же код писать.
источник

ЮВ

Юрий Вельмесов... in Go-go!
Eugene Koshevoy
Даже в пыхе я не видел, чтобы кто-то таким занимался(динамический вызов хенделера, который зависит от параметров)
да? серьезно? а как же самые топовые фрейморки Symfony, Laravel и Yii?
источник

ЮВ

Юрий Вельмесов... in Go-go!
вот реальный пример из симфони:

api.team:
   path: /api/{sportName}/teams
   controller: App\Core\Controller\TeamController::getList
источник

EK

Eugene Koshevoy in Go-go!
Юрий Вельмесов
да? серьезно? а как же самые топовые фрейморки Symfony, Laravel и Yii?
Там в конфиге биндится интерфейс ханделр, а в конфиге DI - описывается сам обработчик, но даже при этом вам нужно создавать класс обработчика или функцию.
источник

S

Sergey in Go-go!
Просто ты не с той стороны зашёл, мне кажется. Начинать изучение языка с написания своего велосипеда по принципам, принесённым из другого языка - контрпродуктивно. Сначала разберись в принципах и философии языка, принятых подходах, тонкостях, для этого надо читать и использовать чужой код - написать в стол несколько простых проектов.
источник

S

Sergey in Go-go!
Юрий Вельмесов
вот реальный пример из симфони:

api.team:
   path: /api/{sportName}/teams
   controller: App\Core\Controller\TeamController::getList
и чем это лучше router.GET("/hello/:name", Hello)?
источник

ЮВ

Юрий Вельмесов... in Go-go!
Sergey
Ну вот ты добавил новый роут в конфиг и всё-равно пошёл в код, писать хэндлер. Вот прям большая разница где написать роут?
это понятно, только вот в коде куча ифов или огроменный свитч, а так несколько строк кода и магии выбора нужного хэндлера.

серьезно, Вы не понимаете что это дает?
все что нужно сделать при добавлении нового роута прописать в конфиге сам роут и хандлер, и создать нужный хандлер под этот роут.
источник

DK

Daniil Kuznetsov in Go-go!
😂
источник

S

Sergey in Go-go!
> прописать в конфиге сам роут и хандлер, и создать нужный хандлер под этот роут.
Ты не поверишь, но и без конфига - то же самое абсолютно.
источник

DK

Daniil Kuznetsov in Go-go!
Боже! Точно!!! Как я жил без этого раньше?!😂
источник

AK

Artem Krapivin in Go-go!
>>все что нужно сделать при добавлении нового роута прописать в конфиге сам роут и хандлер, и создать нужный хандлер под этот роут.

ммм, как вкусно звучит
источник

ЮВ

Юрий Вельмесов... in Go-go!
Sergey
Просто ты не с той стороны зашёл, мне кажется. Начинать изучение языка с написания своего велосипеда по принципам, принесённым из другого языка - контрпродуктивно. Сначала разберись в принципах и философии языка, принятых подходах, тонкостях, для этого надо читать и использовать чужой код - написать в стол несколько простых проектов.
вот это самое оно. просто нужно принять идеологию языка и избавиться от старых привычек
источник

DK

Daniil Kuznetsov in Go-go!
Да к тому же написать в конфиге нужно без подсветки кода и автокомплита. Потом искать где ошибся
источник

S

Sergey in Go-go!
Юрий Вельмесов
вот это самое оно. просто нужно принять идеологию языка и избавиться от старых привычек
Вот для этого тебе и советуют взять какой-нибудь chi, посмотреть как он работает, научиться его использовать. А не пытаться написать свой роутер сразу
источник

ЮВ

Юрий Вельмесов... in Go-go!
Спасибо всем за помощь! И спасибо, что сразу не послали в далекие края где обитают все пыховцы 😆

Проблема очевидна и очевидно как её решать! Просто нужно уйти от старых привычек которые применял в другом языке и использовать подходы которые применяются в этом языке!
Всем спасибо!
источник