🎉
Есть база, есть структура для этой базы. Есть функции которые пишут в базу и читают из неё. Есть как минимум три повторяющиеся функции, для апдейта одного из полей этой базы. Две из них отличаются лишь типами. Вот сижу и думаю как дальше действовать.
1. Сделать функции записи, селекта, апдейта методами структуры, упихать три повторяющиеся функции в интерфейс.
2. Оставить как есть.
3. Что-то ещё.
Slach
создавая соединение с бд, ты же знаешь что прописываешь в dsn
прописываю не я ;)
я могу только провалидировать через dburl какой нибудь
но вытащить
проблема потому что понятие БД оно РАЗНОЕ для разных СУБД
там где процесс на коннект есть БАЗА в коннекте + СХЕМЫ для имен таблиц
там где тред на коннект есть много БАЗ
а во всяких кластерных есть КЛАСТЕР.БАЗА
Aleksandr
Slach
Anonymous
Есть база, есть структура для этой базы. Есть функции которые пишут в базу и читают из неё. Есть как минимум три повторяющиеся функции, для апдейта одного из полей этой базы. Две из них отличаются лишь типами. Вот сижу и думаю как дальше действовать.
1. Сделать функции записи, селекта, апдейта методами структуры, упихать три повторяющиеся функции в интерфейс.
2. Оставить как есть.
3. Что-то ещё.
Mikhail
filepath.Walk(path,
func(path string, info os.FileInfo, err error) error {
if incompleteRegxp.MatchString(path) {
if aacRegxp.MatchString(info.Name()) {
if info.ModTime().Before(currentTime) {
os.Remove(path)
counter++
}
}
}
return nil
})
Это можно как то *красиво * написать?
Alexander
Mikhail
Anonymous
Mikhail
я понял, норм код.
Ivan
ну вложеность ифов не оч хорошо
Alexander
да, все условия не обязательно в одну строчку. Можно переносить
Ivan
if !incompleteRegxp.MatchString(path) {
return
}
if !aacRegxp.MatchString(info.Name()) {
return
}
Ivan
хотя бы так
Alexander
filepath.Walk(path,
func(path string, info os.FileInfo, err error) error {
if incompleteRegxp.MatchString(path) &&
aacRegxp.MatchString(info.Name()) &&
info.ModTime().Before(currentTime) {
os.Remove(path)
counter++
}
return nil
})
Mikhail
Mikhail
Ivan
valid := ncompleteRegxp.MatchString(path) &&
aacRegxp.MatchString(info.Name()) &&
info.ModTime().Before(currentTime)
if valid
Anonymous
Нужно голосование, какой вариант самый красивый 😃
Ivan
ломает чувство прекрасного смотреть 10 строчек с && и фиг пойми на что вообще условие
Mikhail
главное что мой вариант не говнокод)
Mikhail
я ж начинающий писатель на го
🏁Александр
Anonymous
Дерево наверное строит)
Mikhail
которые не изменялись в течении часа)
🏁Александр
странная задача конечно
🏁Александр
вы не ротацию логов случаем делаете?
Mikhail
странная задача конечно
нет, стримрипер тащит треки с 10-ка радиостанций, и срет в incomplete директорию. Место на винте не резиновое, вот раз в час сносятся лишние файлы)
🏁Александр
быстрее было бы сделать map и там хранить время когда кинули, переодически скидывая в локальную бд
🏁Александр
или таймеры вообще выставить
🎉
Anonymous
Mikhail
Anonymous
Самое время переписать этот стримрипер на Go!
Mikhail
Mikhail
Mikhail
удачи)
🎉
Есть какие-нить правила хорошего тона описывать структуру кода? Например:
package ...
import ...
type ... struct {}
var global *bla.Bla
type ... interface {}
func 123 () {}
func 234 () {}
main(){}
Илья
Мерль
🎉
gofmt знаю, оч удобно, go tool vet вот это посмотрю, спасибо.
🎉
Мерль
А смысл?
В main обычно расположен самый высокий уровень логики, можно быстро прикинуть что пакет делает
Vasily
Vasily
сборщик разных линтеров для го
Vasily
будет держать вас в ежовых рукаицах
🎉
Спасибо.
Mikhail
Есть какая то полноценная либа для телеги на го?
Victoria
Добрый день! Ребята, прошу прощения, что не по теме - возможно подскажите где можно поискать классных как вы спецов на Голанг
Zhenja
Mikhail
Vasily
то чем пользовались
Vasily
она в общем работает :)
Denis
Василий, смотрел Ваш курс на Coursera.
Respect, очень доступно и полезно
Alexey
https://github.com/bot-api/telegram ещё
Denis
Roman
Спрошу и тут
Roman
А вот как мне сконвертировать какой-то регион памяти в слайс?
Mikhail
https://github.com/tucnak/telebot
А этим пользовался кто?
Sebor▂▅▇█▓▒░
в соседнем чате видел такое:
https://freelansim.ru/tasks/189825
для тех, кто хочет попрактиковаться в го и заодно сделать либу)
🄽🄸🄺🄸🅃🄰
🄽🄸🄺🄸🅃🄰
Andrey
👍
John
может кто делал stream channel какой между аэроспайком и го приложением? возможно ли это? хочу держать канал открытым, и когда появится значение удовлетворяющее выборке возвращать его и закрывать канал. можно и polling, однако интересует можно ли стримом
🄽🄸🄺🄸🅃🄰
John
Protobuf gRPC смотрели?
ну он и используется, только в плане взаимодействия микросервисов и клиента, но к самой бд не знаю как его прикрутить и возможно ли
🄽🄸🄺🄸🅃🄰
Если бд клиент протокол поддерживает, то все просто, если нет, пишите клиент))
🄽🄸🄺🄸🅃🄰
Это же гошечка)
🄽🄸🄺🄸🅃🄰
Так-то я могу не правильно задачу понимать, ибо с аэроспайком опыта нет