
Леша
25.09.2017
15:08:51
да, я уже увидел, спасибо
для чего тогда нужен template.New()?
для парсинга из строк? вроде
t := template.New("hello")
t, err := t.Parse("hello {{.Name}}")

Илья
25.09.2017
15:10:41
ты можешь создать 1 объект с кучей шаблонов

Леша
25.09.2017
15:11:43
пока плохо это представляю, но ладно, буду разбираться

Google

Илья
25.09.2017
15:14:45
ну смотри, ты создаешь объект template парсишь все свои шаблоны 1 раз, пробрасываешь их, допустим в http handle, и там уже вызываешь t.ExecuteTemplate(w,templateName,Data)
таким образом у тебя 1 объект template хранит вагон шаблонов :) и лишний раз ты его не парсишь

John
25.09.2017
15:57:53
Ребят, а зачем так sync.Mutex{} мьютекс обьявляют в этом примере https://gobyexample.com/mutexes. Для чего скобки ?

Aleksandr
25.09.2017
15:59:15

John
25.09.2017
16:01:29
те мьютекс это структура?

Aleksandr
25.09.2017
16:02:00

John
25.09.2017
16:02:11
да)

Aleksandr
25.09.2017
16:02:38
в общем, да, структура. вопрос решен?

John
25.09.2017
16:02:50
да, спасибо
еще небольшое уточнение:
type Mutex struct {
// contains filtered or unexported fields
}что за уточнение в коментарии в документации ? для чего и что оно обозначает?

Aleksandr
25.09.2017
16:06:51
какое слово объяснить?

John
25.09.2017
16:08:01
какие могут быть отфильтрованые или незаекспортированые поля?

Aleksandr
25.09.2017
16:08:40
http://grokbase.com/t/gg/golang-nuts/12c5rsbndx/go-nuts-what-are-filtered-fields

Google

John
25.09.2017
16:09:12
аа, спасибо)

?FLERRY?
25.09.2017
16:15:08
ребята, есть оч большие хмл-данные (ответы от апишки с квартирами). Надо это парсить. Можете подсказать, чем огромные xml-и лучше всего парсятся?
я имею ввиду название либки

Irek
25.09.2017
16:15:36
На сколько большие?

Mush
25.09.2017
16:16:43
https://github.com/jahewson/node-big-xml
а сорян это на ноде

Vasily Romanov
25.09.2017
16:17:19
потоковым парсером
https://golang.org/pkg/encoding/xml/#NewDecoder

?FLERRY?
25.09.2017
16:21:25
благодарю

Axm
25.09.2017
16:24:03
подскажите, есть ли какой-то красивый способ логировать ошибки перед вызовом http.Error? в коде есть много мест, где что-то произошло и возвращается определеный статус с текстом ошибки. хочется залогировать проблему. в питоне для этого декораторы, а в go есть что-то подобное?

Vasily Romanov
25.09.2017
16:25:14
middleware

No1
25.09.2017
16:26:00

Vasily Romanov
25.09.2017
16:26:03
если кратко - делай роуты в ServeMux, потом оборачивай его в функцию которая уже и будет логировать что надо
или там панику ловить, или что ещё делать

Axm
25.09.2017
16:28:19
и что это даст? у меня проблемы внутри хэндлеров, типа такое-то условие не прошло проверку, возвращаем значит что-то типа http.Error(w, "Some error: %v", err, http.StatusInternalServerError). и таких проверок может быть до десятка в хэндлере. не хочется дублировать везде Logger.Error(...) и http.Error(...).

Vasily Romanov
25.09.2017
16:32:48
сделать свою функцию? которая будет внутри писать в лог дпоолнительно?
и в коде заменить http.Error на myhttp.Error

Axm
25.09.2017
16:33:54
я надеялся на что-то красивее, ну да ладно, спасибо

Alex
25.09.2017
18:10:10
Привет, всем, прошу совета. Изучаю го, хотел бы переписать сервис с ноды, в общем нужен совет по фреймворку: сервис похож на сложную прокси-- делает из входящего реквеста более сложный на XML к другому серверу и обрабатывает ответ (приводит из XML к json и добавляет поля), хотелось бы фреймворк наиболее простой для вхождения с такой задачей:)

in favor
25.09.2017
18:11:13
Всё на стандартных либах можно сделать

Google

in favor
25.09.2017
18:11:30
Ну или вместо net/http использовать fasthttp

Alex
25.09.2017
18:12:55
А проверку запроса по джсон схеме и роутинг тоже отдельными либами?

in favor
25.09.2017
18:13:55
fasthttprouter в качестве роутера
json - стандартная либа
Но могу ошибаться. Гуру, поправьте плез

Alexander
25.09.2017
18:18:09
Преобразование в xml и json поддерживается стандартной либой
соответственно из json и xml в структуру тоже

Oleg
25.09.2017
18:19:09
если нужно именно простой "фреймворк", то советую https://github.com/gorilla/mux , это конечно не супер быстро, но зато свою работу делает и примеров много и документация хорошая. Но если я правильно понял задачу, то хватит и стандартных библиотек.

Alex
25.09.2017
18:20:34
Спасибо вам, пойду пробовать

Oleg
25.09.2017
18:22:02

Axm
25.09.2017
18:23:04

Alexander
25.09.2017
18:25:43

Anton
25.09.2017
18:27:28
echo классный имо :)

Oleg
25.09.2017
18:28:44

Axm
25.09.2017
18:30:55
А проверки у меня внутри doDecorator

Oleg
25.09.2017
18:33:20
ясно) надо и самому так попробовать. ?

Viktor
26.09.2017
00:50:30
Вопрос снимается, у меня были type alias
Кстати, существует ли какой-то способ заимплементить Valuer/Scanner интерфесы на структуры из внешнего пакета ?

Google

Slava
26.09.2017
01:02:08
используй композицию

Ivahaev
26.09.2017
05:26:42

Oleg
26.09.2017
06:19:14

Мерлин
26.09.2017
06:47:43
Разбираемся с новым sync.Map в Go 1.9 / Хабрахабр
https://m.habrahabr.ru/post/338718/

in favor
26.09.2017
06:52:14
Интересно...
А можно ли вместо мьютексов передавать копию мапа в каждую из горутин?

Michael
26.09.2017
06:54:35

in favor
26.09.2017
06:55:00
то есть это плохая идея в целом?

Michael
26.09.2017
06:55:33
без привязки к задаче сложно сказать

in favor
26.09.2017
06:57:42
Ок. Тогда у меня есть некая мапа из БД, простенькая map[string]map[string]string
И я обычно вызываю 20-30 горутин
С копией этой мапы. Лучше сделать мьютекс и передавать по ссылке?
Я не делаю записей в эту мапу, а только читаю

Michael
26.09.2017
07:00:35
а мапу заменить каналом?

in favor
26.09.2017
07:01:02
Если честно, я плохо понимаю, как это можно сделать

Michael
26.09.2017
07:01:20
и что рутины делают с мапами и данными, кот. там лежат?

Igor
26.09.2017
07:03:10

in favor
26.09.2017
07:03:41
Вкратце: надо отпарсить логи, каждый лог-файл я запускаю в горутине. В функции ProcessFile я передаю копию моей мапы, чтобы один параметр из строки лога заменить на значение, лежащего по ключам

Мерлин
26.09.2017
07:03:47

Google

Мерлин
26.09.2017
07:04:36
Читать можно спокойно

Michael
26.09.2017
07:05:54
ага

Мерлин
26.09.2017
07:06:09
Я бы правда чисто из паранойи обернул map в структуру с методом типа GetValue но не суть

in favor
26.09.2017
07:07:34
Мерси)

Daniel
26.09.2017
07:07:46

in favor
26.09.2017
07:08:23
Благодарю!
Бтв, может, у кого-то найдётся лишний час (или меньше), чтоб заревьюить эту программу, очень бы хотелось (если возможно офк) по воесу это сделать. Писал уже в слак, но когда скинул ссылку на репу, сообщенько было погребено )

Мерлин
26.09.2017
07:10:22
Ну скинь сюда

Valentin
26.09.2017
07:10:23
Клади на GitHub