Maxim
https://github.com/GoAdminGroup/go-admin
Maxim
пример правильной архитектуры для фронта, правда админского.
Maxim
правда это бек, который генерит html, если чистый фронт, то блин это жестко
Maxim
Не проще 2 сервиса, grpc как универсальный протокол?
Maxim
Есть второй вариант, использовали в продуктиве, сек.
Maxim
вот https://github.com/hashicorp/go-plugin/tree/master/examples/grpc
Maxim
впринципе тоже, но обертка и отловы ошибок и т.д. приятнее + все обернуто как плагин.
Μαριούπολη
ребят , при команде :migrate create -ext sql -dir db/migration -seq init_schema" ошибка error: no such option: -e
Μαριούπολη
в чем может быть проблема? не нагуглил(
Μαριούπολη
(на убунту)
Alexander
не знаю про тулзу, но обычно такое лечится заменой - на —
Alexander
Телега поменяла, не заметил
Shaplin
Сижу на маке с M1. При дебаге на goland пишет 'darwin/amd64 is not supported. Use go sdk for darwin/arm64'. Далее скачал golang версии 1.17 с arm64, но все равно та же ошибка.
Shaplin
А как ее удалить? При go version пишет, что стоит arm
🔥
🔥
На пути к новой версии
Null
Docker для разработки Go с горячей перезагрузкой
https://nuancesprog.ru/p/5657/
@Golang_google
Maks
Maks
Крч у нас есть кейс, когда нужно с пагинацией и фильтрами выводить данные с довольно большой таблицы
Maks
как обычно делают пагинацию - оффсет и лимит. Кроме этого нужно знать общее число записей
Maks
Но! Оффсет на, к примеру, странице 10.000 по 100 записей на страницу это очень долго
Maks
если учесть еще и фильтрацию
Maks
Получается идет 2 долгих запроса. Общее кол-во (без лимита и оффсета но с фильтрами) через каунт. И просто запрос уже с оффсетом и каунтом.
Может кому пригодится, но я придумал одно решение:
При получении кол-ва - мы запрашиваем айдишники в массив. Потом из массива берем айдишники по индексу (через оффсет и лимит). И достаем из бд уже по айди.
Maks
ну а количество через длину массива узнаем
Maks
у нас к слову в таблице 10 лямов записей
Shaplin
В прото написано:
message ValidationError {
string field = 1;
}
Прописываю команду make generate, вылезает ошибка и прото автоматически изменяет данную запись на:
message ValidationError {
string field = 1 ;
}1
Текст ошибки: ...api/categories/categories.proto:37:2:syntax error: unexpected int literal
Дмитрий
Maks
скинуть можешь?
Maks
Anonymous
Читаю статью на Хабре и возник вопрос: кто-нибудь это пробовал из вас?
George
Anonymous
Emil
Господа, есть лучшая практика для типов данных в го и постгресе для обозначения денег?
Alexander
так вы 10М айдишников достаете или чего?
Alexander
1
Alexander
Получается идет 2 долгих запроса. Общее кол-во (без лимита и оффсета но с фильтрами) через каунт. И просто запрос уже с оффсетом и каунтом.
Может кому пригодится, но я придумал одно решение:
При получении кол-ва - мы запрашиваем айдишники в массив. Потом из массива берем айдишники по индексу (через оффсет и лимит). И достаем из бд уже по айди.
Alexander
у нас к слову в таблице 10 лямов записей
Alexander
опять же OpenCV, Tensorflow можно использовать как вариант, когда есть питонистые дата саентисты и есть потребность их наработки внедрить в микро сервис чтобы быстро работало
Maxim
Emil
Shaplin
а в мейке что?
If none of your local proto files failed, you can ignore this message
bin/buf generate --path vendor.protogen/gitlab.ozon.ru/ocb/categories/api/api/categories/categories.proto in .: exit status 100:
Maxim
Не ошибка, а что в сценарии Makefile который.
Maxim
случаем не открыто каке нибудь ide с отслежкой форматирования, generate начинает работу по форматированию и в этот момент ide тоже этим занимается.
Maxim
Shaplin
А все, разобрался. У меня make run был включен в другом терминале
Anonymous
Привет!
Пару недель назад я видел, как внутрь функции запихали ещё одну функцию. Сейчас пытаюсь найти это, но не получается
Можете подсказать где такое почитать?
Если вдруг поможет, вот что было:
func main() {
...code...
func() {
...code...
}
}
Vitaliy
Vitaliy
Vitaliy
Замыкание посмотри
Anonymous
Anonymous
Нужно очень хорошо понимать, зачем это нужно.
Я понял что это не то, что нужно..
У меня есть строка bot.Send(tgbotapi.NewMessage(update.Message.Chat.ID, "Hello World"))
Я хотел запихнуть её в отдельную функцию, чтобы вместо неё писать sms(string). Например, sms("Hello World)
Но мне выдаёт ошибку, так как аргументы bot и update объявлены в функции main. Пробовал объявить их в функции sms, но тогда возникает ошибка из-за двух запусков одновременно. Вот и решил попробовать функцию внутри функции..но понял, что это не то, что нужно
Как я могу поступить?
Anonymous
Может, можно передать в функцию sms аргументы из функции main?
Alexander
что тебе мешает передавать в твою функцию и bot, и update дополнительно?
Anonymous
МишанЯ
Alexander
замыкания не для этого нужны. в основном когда ты не можешь поменять сигнатуру функции (твоя функция куда-то пихается), и нужен дополнительный контекст
МишанЯ
Мне кажется ему надо показать кусок кода
МишанЯ
Своего
Anonymous
https://pastebin.com/qiTUnhXy
Без функции
Alexander
Anonymous
https://pastebin.com/qiTUnhXy
Без функции
https://pastebin.com/CRtB21bT с функцией (выдаёт ошибку о том, что bot и update не определены)
https://pastebin.com/x8BWhLxv
После определения запускаются два бота сразу и возникает конфликт
Anonymous
а что сделать хочешь?
Укоротить строчку отправки сообщений и всё..чтобы каждый раз длинную строчку не писать
Anonymous
А..увидел
А как сделать так, чтобы bot определялся к старому подключению?
Anonymous
Попробую
Alexander
https://pastebin.com/CPY2Hgkk
Alexander
это что ли сделать хотел?
Maks
а еще у тебя после проверки на ошибку и вывода лог паник почему то будет продолжаться выполняться основной код)
Maks
он водном случае почему ты вызывает один сенд в другом другой - смс)
Alexander
там что-то вообще путаница. складывается впечатление, что человек прослышал, что go крутой и решил сразу тележное апи поюзать не изучив языка или программирование в целом почти никак =)
Anonymous
Maks
А вообще да, лучше просто в такой реализации минималистичнно простой написать
func (b *tgapi.BotApi) sendSms(chatId int, message string) {
b.Send(tgbotapi.NewMessage(chatId, message))
}
Maks
что то типо того
Alexander
Anonymous