Zaсh
ну понятно, глупо рассуждать, ведь зависит от проекта и стека, который необходимо применять
Victoria
Борис
+++
Хайти🏴
Всем привет, прохожу tour of go
https://go.dev/tour/methods/22
застрял вот на этом упражнении, вроде почитал доку, посмотрел в исходниках как метод read имплементиться, но чот всё никак не получается.
можете подкинуть почитать чего нить, или как нибудь на вести на верный ход мысли
Ivan
нужно начать го тур с 1 урока
Хайти🏴
Как я понимаю на вход будет подаваться 'A' и мне нужно его скопировать в массив байтов который описан в MyReader struct
Хайти🏴
Хайти🏴
затык случился здесь
Ivan
пролистал видимо. в 19 уроке реализован интерфейс еррор
Ivan
еррор имеет метод Error() и возвращает стринг
Ivan
нужно структуре myreader написать такой же метод но с названием Read
Ivan
// TODO: Add a Read([]byte) (int, error) method to MyReader.
Ivan
инт это кол-во байт которые ты смог прочитать и записать в слайс
Ivan
https://habr.com/ru/post/306914/
Хайти🏴
Ivan
кто-то уже написал 2связанный список на дженериках?) дайте ссылку)
Anonymous
в чем смысл создавать канал, но не привязывать элементарного бота с капчей?
🅞leksiy
Честно говоря не смотрел имплементацию, случайно увидел на реддите
Ivan
очень похоже) мне в гинериках пока что не нравиться возврат нулевого значения
Ivan
придется делать обертку типа Element[T] и возвращать? не красиво var v T return v
Хайти🏴
// Read implements the io.Reader interface.
func (r *Reader) Read(b []byte) (n int, err error) {
if r.i >= int64(len(r.s)) {
return 0, io.EOF
}
r.prevRune = -1
n = copy(b, r.s[r.i:])
r.i += int64(n)
return
}
а почему последний return без аргументов
Ivan
потому что n и err уже подставлены в возвращаемые значения
Хайти🏴
Аааа
Хайти🏴
хитро
Vitaly
WTF?
Хайти🏴
Мочератор!!!
Anonymous
T
func Split(name string, m []byte) (n map[string]*[]byte, err error) {
n[name] = &m
return
}
Почему не работает?
T
func Split(name string, m []byte) (n map[string]*[]byte, err error) {
n = make(map[string]*[]byte)
n[name] = &m
return
}
Так будет правильно?
Ivan
если заработало , то правильно)
Alexander
Alexander
Указатель на слайс?
T
А с ошибкой проще, поиск по индексу "name" в мапе слайса
Dmitriy
А вот так норм делать?
https://github.com/tsawler/go-course/blob/main/cmd/web/main.go#L54
Тут же получается открывается глобальный коннект при старте сервера, и закрывается только при стопе сервера, далее во всех хендлерах используется этот коннект.
Получается все клиенты будут на одном общем коннекте? и при открытии транзакции в одном хендлере, могут быть проблемы в другом, ну и проблема с вечно открытым коннектом
Либо я не так понял...
🅞leksiy
Dmitriy
🅞leksiy
SetMaxOpenConns
T
Именованная карта для ссылок на слайс байтов😊
🅞leksiy
Смотрел, но возможно не так понял
Почему там задается SetMaxIdleConns и прочее? Да потому, что sql.DB это пулл соединений. И более подробнее об этом можно прочитать здесь: https://pkg.go.dev/database/sql#DB
T
😳 понял, @reijo1337 спасибо
Dmitriy
Herman
я правильно понимаю, что request.Context = context.Background, а сделан для того, чтобы в мидлварах его как-то менять?
Herman
или можно в запросе его как-то заполнить?
Herman
func (h *Handlers) Handler(w http.ResponseWriter, req *http.Request) {
req.Context()
Herman
я про это
Herman
Да
Herman
А из реквеста можно как-то что-то засетапить?
Q
кто смотрел ultimate service 3.0 от ardanlabs ?
Q
подкупает подача и то что эта контора делает много трейнингов
Роман
какие утилиты кроме air можно заюзать для автоматической перекомпиляции?
air почему-то не хочет работать в докере из под винды.
Q
так норм или залупа?
Роман
ну, я пытаюсь докеризированный дев-сервер собрать и в нём работать)
Роман
я просто пока не оч понимаю как не боль)
Роман
Да сам не знаю уже... Изначально отталкивался от того, что если в докере приложение деплоится в прод, то и разрабатываться должно в той же среде
Роман
Оки, спасибо, прислушаюсь пожалуй)
Роман
ну у нас бек на тайпскрипте на работе, он докеризирован и для дев среды в том числе. Всё рекомпилится при изменении файлов в рабочей директории и с этим в общем-то довольно удобно работать
Роман
ды)
Роман
Вот я поэтому и зашёл, собственно.
Роман
Так или иначе видно что практики разработки разные, а я тащу на автомате какие-то соображения оттуда
Maks
На гошке есть пакет реалайз вроде
Maks
Для этого
Maks
У нас используется
Maks
Но мне кажется это лишнеех
Maks
Если в вс код работать то может и норм
Maks
Но в джетбрейнс такое себе
Maks
Так как там автосохранения фултайм
Роман
я про рекомпиляцию, в данном случае. Это довольно удобно.
докер для дев среды это так, извращения, по всей видимости
Maks
У тебя процессор будет выть)
Maks
Докер для дев среды это нормально
Роман
да я стараюсь аккуратно задавать вопросы и ноду в суе не упоминать)
Maks
Я бы даже сказал это правильно
Maks
А вот ребилд в джетбрейновских иде такое себе
Maks
В вскод ты можешь просто сохранять проект только после всех изменений и тогда будет ребилдить
Maks
А так бессмысленно
Maks
Он будет часто на билде валиться
Q
нормальные сервисы самому научиться писать
Роман
ну в основном только для дебага, да.
Хз, привычка такая. Не видел честно говоря ни одного проекта на ноде, где не было бы лайв релоада