Florian Geyer von Giebelstadt
и самое веселое, к тому ли слону подключаешься🤣
Вот и я не понимаю.Такое ощущение что ни туда коннект идёт.Не понимаю почему
Florian Geyer von Giebelstadt
Покажи строку запуска докера
docker exec -it aab929287be6 /bin/bash
Andrey
docker exec -it aab929287be6 /bin/bash
Это терминал Я больше протстарт контейнера
Andrey
Добавь кароче к запуску это --net=host
Артем
А ты в dsn название контейнера прокидываешь или как?
Florian Geyer von Giebelstadt
Это терминал Я больше протстарт контейнера
Стартую так docker run --name=todo-db -e POSTGRES_PASSWORD='qwerty' -p 5436:5432 -d --rm postgres
Emin Zalaev
Илья
ладно
Emin Zalaev
😏
Florian Geyer von Giebelstadt
Может сам код покажешь?
Конечно.Сори что сразу не скинул package main import ( "awesomeProject1" "awesomeProject1/pkg/handler" "awesomeProject1/pkg/repository" "awesomeProject1/pkg/service" "github.com/joho/godotenv" _ "github.com/lib/pq" "github.com/spf13/viper" "log" "os" ) func main() { if err := initConfig(); err != nil { log.Fatalf("error initializin configs: %s", err.Error()) } if err := godotenv.Load(); err != nil { log.Fatalf("error loading env variables: %s", err.Error()) } db, err := repository.NewPostgresDB(repository.Config{ Host: viper.GetString("db.host"), Port: viper.GetString("db.port"), Username: viper.GetString("db.username"), DBName: viper.GetString("db.dbname"), SSLMode: viper.GetString("db.sslmode"), Password: os.Getenv("DB_PASSWORD"), }) if err != nil { log.Fatalf("failed to initialize db: %s", err.Error()) } repos := repository.NewRepository(db) services := service.NewService(repos) handlers := handler.NewHandler(services) //handlers := new(handler.Handler) srv := new(awesomeProject1.Server) if err := srv.Run(viper.GetString("8000"), handlers.InitRoutes()); err != nil { log.Fatalf("error occured while running http server: %s", err.Error()) } } func initConfig() error { viper.AddConfigPath("configs") viper.SetConfigName("config") return viper.ReadInConfig() }
Илья
желательно на go.dev/play
Florian Geyer von Giebelstadt
желательно на go.dev/play
https://go.dev/play/p/5PNJrBs3RUX
Yegor
Какой фреймоворк для веба самый лучший?
Florian Geyer von Giebelstadt
Ты добавил к запуску , что я скинул?
Добавил.Ничего не поменялось
Илья
https://go.dev/play/p/5PNJrBs3RUX
ой, NewPostgresDB, сори
Florian Geyer von Giebelstadt
ой, NewPostgresDB, сори
https://go.dev/play/p/9Y4Q_6Ztcd8
Илья
https://go.dev/play/p/9Y4Q_6Ztcd8
а значения из конфига точно приходят?
Илья
сделай в этой функции fmt.Printf("%+v\n", cfg)
Florian Geyer von Giebelstadt
а значения из конфига точно приходят?
Ну да. Просто стандартные данные port: "8000" db: username: "postgres" password: "qwerty" host: "localhost" port: "5432" dbname: "postgres" sslmode: "disable"
Yegor
buffalo
Хорошо интереснее эхо явно
Andrey
Хорошо интереснее эхо явно
ну такие монстры в го не в почете, этот просто сделан из более-менее нормальных компонентов, есть еще beego вроде называет, он собран из китайских компонентов :)
Florian Geyer von Giebelstadt
Илья
так там порт не тот
Илья
а стучишься на 5432
Andrey
Хорошо интереснее эхо явно
и еще есть экосистема QOR тоже достаточно крутая, там админка прикольно сама генерится полностью с ui вместе https://doc.getqor.com/
Илья
Хорошо интереснее эхо явно
я вот хочу фибер попробовать
Илья
мне в эхо очень зашла работа с мидлварями
Yegor
а эхо типа флакс или синатра
Florian Geyer von Giebelstadt
смени в конфиге на 5436
Точно.Я по по привычке стандартный писал,забыл что в докере другой.
Andrey
я если бы что-то делал то наверное fiber брал
Florian Geyer von Giebelstadt
Спасибо большое всем за помощь
Илья
индиго
во во
Yegor
индиго
Точно он: Indigo is a rules engine created to enable application developers to build systems whose logic can be controlled by end-users via rules ?
Кіт ✙
ну почти
Кіт ✙
нет, это жалкая пародия
помнишь, ты говорил, что у индиги http клиента в комплекте нет? Это он сейчас
Илья
Оооо
Илья
Зачем юзать вим в 2022?
А вы потратьте ~ 20 минут на vimtutor и возможно поймёте, что все эти ваши мышедёргальтельные ide - мягко говоря кака!😜
Dragon🇺🇦
Добрый вечер подскажите пожалуйста создал 2 функции var ( name = "x" my = "y" ) func main() { fmt.Println(name) } func home() { fmt.Println(my) } выводит только функцию main
Akim
А вы потратьте ~ 20 минут на vimtutor и возможно поймёте, что все эти ваши мышедёргальтельные ide - мягко говоря кака!😜
Так и сделал, причем дважды чтобы точно запомнить. Мышь в разработке использую редко, пользуюсь хоткеями. Но в отличии от vim ide гораздо умнее.
Akim
vim возможно просто редактор файликов, как будто он для этого создавался
Артем
если хотите поведения как у вас задумано сейчас, используйте func init(){...}
Артем
вместо home
Dima
UPD Все правильно. Там не разворот, а сортировка в обратном порядке. Пожалуйста объясните мне, почему в этом коде: import ( "strings" "sort" "fmt" ) func reverseWords(s string) string { slc := strings.Split(s," ") fltr := make([]string,0) fmt.Println(slc,1) for _,x := range(slc) { if 0 != len(x){ fltr = append(fltr, x) } } fmt.Println(fltr,2) sort.Sort(sort.Reverse(sort.StringSlice(fltr))) fmt.Println(fltr,3) fmt.Println(strings.Join(fltr," "),4) return strings.Join(fltr," ") } Слайс не разворачивается. UPD: Потому, что он сортируется лексикографический по убыванию. А в этом коде разворачивается? // https://stackoverflow.com/a/34816623/8574922 func Reverse(input string) string { s := strings.Split(input, " ") sort.Sort(sort.Reverse(sort.StringSlice(s))) return strings.Join(s, " ") } Сйчас решаю задачу на https://leetcode.com/problems/reverse-words-in-a-string/ - простая, но чему-то у меня не работает разворот слайса.
Dima
Можно конечно написать еще один for и пока i < j и менять элементы местами таким образом их развернув. Но это не дело каждый раз описывать базовые конструкции.
Vladislav
лишний массив еще зачем-то
Kir
Здесь кто-то работал с bigquery?
an112
Привет всем На сервере есть рабочая БД postgresql(получаю к ней доступ и собираю данные) Приложение Go к ней не может подключиться, как и DBeaver к удаленной БД(работа с бд заканчивается на "чтение метаданных БД"). Раньше всё было ок Подскажите, что это может быть?
anhckie
а, ты уже догадался )
Dmitry
👣 Тестовое задание для Golang разработчика Тестовое задание для кандидата на должность Golang разработчика. Описание Есть внешний сервис, который обрабатывает некие абстрактные объекты батчами. Данный сервис может обрабатывать только определенное количество элементов n в заданный временной интервал p. При превышении ограничения, сервис блокирует последующую обработку на долгое время. Задача заключается в реализации клиента к данному внешнему сервису, который позволит обрабатывать максимально возможное количество объектов без блокировки. Приводить реализацию внешнего сервиса необязательно! Определение сервиса: package main import ( "context" "errors" "time" ) // ErrBlocked reports if service is blocked. var ErrBlocked = errors.New("blocked") // Service defines external service that can process batches of items. type Service interface { GetLimits() (n uint64, p time.Duration) Process(ctx context.Context, batch Batch) error } // Batch is a batch of items. type Batch []Item // Item is some abstract item. type Item struct{} Требования - язык программирования Golang. - решение должно быть в git-репозитории (можно прислать архив или опубликовать на github, gitlab, bitbucket...). Пожелания - документирование кода; - тесты; - использование статического анализатора (конфигурацию положить в репозиторий). Варианты решений можно присылать в комментарии. ❤️, если нравится такие задачи. @Golang_google
RateLimit и все дела https://gobyexample.com/rate-limiting
Артем
Господа, возможно странный вопрос но все же. Постоянно всплывает вопрос: можно ли как то культурно в го удалить неиспользуемые пакеты? (Именно исходники не из go.mod)
Артем
В интернетах говорят лезть просто в папку и чистить, а как же зависимости? И т д
Igor
Да go clean -modcache
Null
🔴 Как дженерики помогают в разработке на Go? 📌 Узнаем в четверг, 17 ноября в 20:00 на открытом уроке в OTUS. Вебинар пройдет в рамках онлайн-курса «Golang Developer Professional» OTUS для программистов с опытом и начинающих Go-разработчиков. 📕 На занятии получим ответы на вопросы: 🔸 Что такое дженерики? 🔸 Как они нам могут помочь в ежедневных задачах? 🔸 Как они влияют на производительность? 🔸 Чем они лучше или хуже обычных интерфейсов? 🔥 Определите свой уровень подготовки с помощью теста и регистрируйтесь на мероприятие Реклама. Информация о рекламодателе на сайте www.otus.ru
Emin Zalaev
Установи goland😎
Илья
я только плагин устанавливал
Emin Zalaev
https://youtu.be/Ptk_zcOVPg4
fenogentov
в вскоде открой го файл и он сам предложит установить плагин