Fedor
а бдсм чатиков с ним можешь посоветовать?
Hopf
Fedor
не без него не интересно
Anonymous
Парни
Anonymous
А в таком стиле вообще можно писать? Или это плохая практика
package main
import (
"fmt"
"github.com/emersion/go-imap/client"
)
type user struct {
host string
username string
password string
}
func (u *user) conn(ch chan *client.Client) {
c, err := client.DialTLS(u.host, nil)
if err != nil {
fmt.Println("[ERROR] Connection to host failed")
}
ch <- c
}
func (u *user) login(ch chan *client.Client) {
c := <-ch
if err := c.Login(u.username, u.password); err != nil {
fmt.Println("[ERROR] Login failed")
return
}
fmt.Print("[INFO] Login success")
}
func main() {
ch := make(chan *client.Client)
u := user{"imap.yandex.ru:993", "", ""}
go u.conn(ch)
u.login(ch)
}
Anonymous
Ну само собой я потом его разбавлю еще функциями ну и прочим
Quet
не очень понятно какую ты задачу решить хочешь
Anonymous
Ну данный кусок просто логинится, я по стилизации просто хочу узнать
Anonymous
Это норм или что-то не катит
Quet
я про использование каналов такое
Anonymous
А что не так? Из одной функции взял коннект в другую передал, просто если коннекта не будет, то и ничего передавать не буду, просто завершу подпрограмму
Quet
зачем вообще тебе каналы тут?
Anonymous
Потом еще функции добавятся
Anonymous
А как бы ты прдложил?
Anonymous
Типа конвейера будет
Quet
просто верни клиента из функции
не через канал
Anonymous
Коннект - логин - чек
Anonymous
Anonymous
Просто если можно всегда возвращать нужный тип
Quet
для организации коммуникации между горутинами
Anonymous
Ну так там многопоток еще потом будет)
Quet
но я не оч понимаю профита и в запуске горутины в твоем случае
Anonymous
Поэтому сразу с ними и пишу
Quet
Anonymous
Потому что будет несколько почт
Anonymous
gmail и yahoo
Quet
мне кажется у тебя та стадия когда горутины с каналами это молоток, а кругом все кажется гвоздями )
Anonymous
Это не нормально то есть?
Anonymous
Anonymous
Я поэтому сразу в канал сую клиента, чтобы потом запустить его через for
Quet
напиши сначала вообще без каналов и горутин
Quet
и добавь это все потом
Vladimir
Да
А потом ты вот получишь в канал 3 Коннекта
Vladimir
Как будешь опознавать какой из них чей?
Vladimir
И чо с ним делать дальше?
Vladimir
Пиши тогда уж полную абстракцию работы и возвращай сразу результат
Vladimir
А чо будет если ошибка?
Vladimir
А долго ты будешь ждать соединения?
Anonymous
Vladimir
Если ты ничего в случаи ошибки не возвращаешь
Vladimir
А как юзеру скажешь что ошибка?
Anonymous
Vladimir
А не соединение
Anonymous
То есть соединение и логин с чтением в одной функции и потом это все в канал?
Vladimir
Сделай структуру где будут данные и поле с ошибкой, в горутину всю работу с почтой
Vladimir
Возвращай сразу структуру с результатами
Quet
вангую CSP головного мозга в начальной стадии )
тебе надо почты отправлять? в несколько потоков? ну так и запускай в горутине функцию которая сделает все. коннект, логин, отправку и вернет ошибку (в канал)
Anonymous
Quet
или результат (в этот же канал)
Anonymous
Vladimir
Можешь сделать горутину которая будет в цикле принимать команды и их делать
Vladimir
А результат в канал
Anonymous
Quet
https://en.wikipedia.org/wiki/Communicating_sequential_processes
Anonymous
Anonymous
Alexey
Парни, какие оптимальные значения для MaxIdleConns, MaxOpenConns, ConnMaxLifetime? БД mssql
В среднем 3К rps к базе
Alexey
Приложение запущено на 4 нодах
aadz
таких оптимальных значений нет.
и это - оффтоп
Alexey
Vasilii
лучше оставить дефолт, пока не столкнетесь с проблемой.
Не знаю насчет SQL сервера, но для mysql, pgsql, oracle есть миллион тулов для анализа параметров
Vasilii
https://docs.microsoft.com/en-us/sql/tools/dta/dta-utility
о, вот что есть
Alexey
Alexey
🍗
Добрый день. Вопрос по шаблонизатору го. Как несколько шаблонов вставить в основной шаблон ? К примеру news.tpl, forum.tpl вставить в index.tpl ?
Alexander
https://github.com/astaxie/build-web-application-with-golang/blob/master/en/07.4.md#nested-templates
🍗
Как html разметку вставить в массив ?
Zloy-Dobry
Вы занбали со своими скриншомами кода
Zloy-Dobry
Луше плея ничего не бывает
🍗
На плее нет подсветки синтексиса.
Zloy-Dobry
Зато там можно поредактить и отправить обратно
🍗
Ваше критическое замечание вполне обосновано, я не могу не согласиться.
Dmitry
На плее нет подсветки синтексиса.
Вот тут недавно обнаружил расширение для chrome, которое помогает:
https://chrome.google.com/webstore/detail/better-go-playground/odfhkelcmblecfdnboahphiafolojmpl
Anonymous
Mikhail
В Go есть какой то стандарт ширины портянки кода в символах?