ILIA
Коллеги, подскажите что почитать.
Итак задача обрабатывать урлы у веб сервиса
Сейчас пишу так, в main{}
http.HandleFunc("/geo/msk/", get_geomsk)
Отдельно есть функция get_geomsk
Подскажите, есть ли какой нибудь свич (например, чтобы он обрабатывал все запросы на /geo/msk/ /geo/spb/, /geo/etc/
Т.е. от раздела /geo/ и далее.
В общем прошу направить меня - что читать.
Спасибо
Alexander
ILIA
/geo/:id?
Да, как подразделы - раздела.
Без Get параметров
Alexander
Herman
ILIA
ILIA
func main() {
http.HandleFunc("/fp/", folder_profile)
http.HandleFunc("/ip/", ip)
http.HandleFunc("/proxy/", get_proxy)
http.HandleFunc("/request/", get_request)
http.HandleFunc("/geo/msk/", get_geomsk)
http.HandleFunc("/geo/msk/", get_geospb)
log.Fatal(http.ListenAndServe(":38081", nil))
}
Сейчас так
ILIA
Но я уверен, что есть элегантнее решение на /geo/
ILIA
Чем набор однотипных функций.
Herman
ну можно сделать один хенлдер и в нем switch написать
Herman
http.HandleFunc("/geo/msk/", get_geospb). ---> тут описка
Herman
spb
ILIA
Просто если их 100, 200, 500....
ILIA
Но всё равно это будет 500 функций.
Ivan
http.HandleFunc("/geo/:loc", get_geo)
Alexander
Herman
ну это все равно будет свитч где-то в методе
Anonymous
ILIA
Вот это кажется то, что я описываю. Пойду подробнее читать.
Спасибо
ILIA
тебе надо
Насколько я понимаю, из примера Григори, что не нужно. Функция будет одна, входные данные будут разные. И это будет удобнее - чем 500 отдельных функций (т.к. а если их нужно будет поменять? без изменения исходных данных
Anonymous
нет, я хотел свой вариант написать
Bagasl
Ivan
запустил, работает) тоже не понял)
ZeroX
Хм ну хз что было в заметках то скинул
Alexander
Anonymous
ну не в условии
Anonymous
а понял
Anonymous
типо замена вейтгруппам
Anonymous
Anonymous
либо через вейтгруппы
Anonymous
ну я как джун так ответил бы
Anonymous
и отлетел бы наверно
Anonymous
а ну да через каналы
Anonymous
один куда будет доне записываться, а другой мейн канал куда будет писаться финишед
Anonymous
изи берите на работу 😎
Anonymous
попался в джохушку лохера
🅞leksiy
🅞leksiy
Bagasl
Bagasl
Точно не помню, но вроде да
🅞leksiy
Я не о том. О том, где этот код будет запущен для тестов собеседующим
🅞leksiy
🅞leksiy
Bagasl
Хз, я собесы не провожу)
Но мне кажется не каждый миддл знает, что с 1.14 в го кооперативно-вытесняющая модель используется
Bagasl
Во многих туториалах вообще не обновили инфу и пишут, что циклы лочат горутину
Bagasl
🅞leksiy
Bagasl
А не лочат?
Уже нет, шедулер имеет тайм-аут на время непрерывной работы горутины (что то в районе 10мс). Если горутина не отдала управление - она будет переключена шедулером
Bagasl
Как раз из-за проблемы с долгими циклами
🅞leksiy
🅞leksiy
Управление будет отдано на другую, это понятно
🅞leksiy
Ну ок, она завершается?
Bagasl
Скорее всего имеется ввиду полностью бесконечный цикл
🅞leksiy
🅞leksiy
Вот этого кстати хватает на собесах
🅞leksiy
О, а когда тысячу переплюнули?
🅞leksiy
🅞leksiy
Ого) Они потом банятся или сами отписываются?
Herman
походу админ руками чистил)
𝙲𝚊𝚝𝚒𝚘𝚗
Роман
Всем привет
Ilnur
Ребята, холиварная штука. https://github.com/prisma/prisma-client-go - кто-то пробовал использовать? мне интересны отзывы. Штука под ts не плохо заходит, интересно под го
Роман
Ребят, я за советом. Мне тут на работе необходимо написать небольшой и не очень важный микросервис, я в образовательных целях хочу попробовать сделать это на голанге (давно присматриваюсь к языку).
Времени на глубокое изучение книжек нет, есть документация и желание подглядывать в кодовую базу какого-нибудь ладно скроенного бекенда-веб-сервера. Можете посоветовать репозитории проектов, на которые стоит ориентироваться в плане код-стайла и архитектуры?
🅞leksiy
🅞leksiy
Или я просто не понял какой-то идеи
🅞leksiy
Тем более, Prisma Client Go is no longer officially maintained.
🅞leksiy
Роман