@gogolang

Страница 204 из 1630
Мерлин
28.03.2017
12:30:03
#web #buffalo Вышла версия 0.8.0 веб-фреймворка Buffalo. Из основного: шаблонный движок Plush теперь будет по-умолчанию, упаковщик статики go.rice заменен на gobuffalo/packr https://blog.gobuffalo.io/buffalo-v0-8-0-released-33f1786eadf

Kirill
28.03.2017
12:31:15
нормальная штука

Google
Ighar
28.03.2017
12:31:44
только как будто они из него джангу очередную лепят :)

от шаблонов в стиле Go вон отходят...

vktr
28.03.2017
13:45:37
смешной вопрос. А можно ли вообще в go иметь короткие функции(в смысле количества строк). Походив по гитхабу да и по стандартной библиотеке, я понял что 50-100 строчные функции это норма. Или есть какие примеры проектов где все функции коротенькие-коротенькие?

Kirill
28.03.2017
13:46:32
один вопрос — зачем?

i
28.03.2017
13:46:50
человек просто не видел длинные функции

Kirill
28.03.2017
13:47:16
это понятно, но зачем?

vktr
28.03.2017
13:47:45
Чтобы легко помещались в экран и за один взгляд было полностью понятно, что она делает.

i
28.03.2017
13:48:48
у меня 53 строки вмещается на экран

Kirill
28.03.2017
13:48:58
Чтобы легко помещались в экран и за один взгляд было полностью понятно, что она делает.
может, стоит задуматься и попробовать программировать не на нокле 1100?

vktr
28.03.2017
13:49:27
Ну в норме они должны быть короткими, другой момент, что в Go почти невозможно писать компактно
Вот я именно про то же. Думал может есть какие примеры как компактные функции писать

Google
Мерлин
28.03.2017
13:49:51
Альберт
28.03.2017
13:50:11
нечего разбивать без надобности на мелкие функции, лапшекод потом еще тяжеле читать)

vktr
28.03.2017
13:51:11
Тоже верно. Но функции в 200 строк это уже жесточайшая лапша

А пайплайны писать не делая функцию длинной как то не получается

Andrew
28.03.2017
13:54:56
Вот он научит тебя писать компактно ?

Мерлин
28.03.2017
17:03:04
Grender, a #golang package for rendering JSON/XML data and HTML templates : https://github.com/dannyvankooten/grender

Ivan
28.03.2017
17:25:41
наследование шаблонов мне нравится

Aleksander
29.03.2017
09:11:34
Разница в этих двух реализациях? Может быть, во втором случае во время ожидания, управление может передаться другой горутине или я ошибаюсь? 1) for { ... time.Sleep(5 * time.Second) } 2) for { ... <-time.After(5 * time.Second) }

Daniel
29.03.2017
09:13:03
в обоих случаях может

Aleksander
29.03.2017
09:14:00
Т.е. если не использовать функционал каналов - то они тождественны?

Ivan
29.03.2017
09:15:04
подскажите. а если у меня есть схема json, что то вроде { "anyOf": [ { "type": "object", "properties": { "timestamp": { "type": "string" }, "external_id": { "type": "string" ... 1. могу я её как то валидировать? 2. могу получать go-ные структуры из схемы (как из примера пакета я видел утилиты но не из схемы)

Алексей
29.03.2017
09:38:02
Недавно смотрел реализацию fifo, очень смутили вот эти 2 строчки: q.tail.next = n q.tail = n Разве вторая строчка не присвоит адрес переменной n? Какой тогда смысл в 1 строке?

Как это работает?

Daniel
29.03.2017
09:48:36
Т.е. если не использовать функционал каналов - то они тождественны?
второй зря использует пару мутексов, что внутри канала

Google
Ivan
29.03.2017
12:07:47
А что за пометки?

ainu
29.03.2017
12:08:33
ну примечания от тебя

что фиксированно, а что нет

Если полностью меняется - то можно через rawmessage поэлементно распарсивать

геморройно но возможно

Хотя погоди. У тебя схема по структуре а сам файл описываетс схемой

для валидации по схеме есть пэкедж https://github.com/xeipuuv/gojsonschema

Структуры из схемы не получится. Максимум - изврат в виде interface{}

Daniel
29.03.2017
12:16:03
не совсем так

ainu
29.03.2017
12:16:30
я бы пробегал по файлу (валидному!), брал rawmessage, затем в зависимости от типа обрабатывал и складывал в разные структуры или мапы

не совсем так
Делись инфой=) Самому тоже надо.

Daniel
29.03.2017
12:17:42
вариантов валидных, без interface{}, два

1. создаем универсальную структуру, включающую в себя все возможные поля, и анмаршалим в нее

2. создаем ту же самую структуру, но к ней приклеиваем кастомный анмаршалер, сеттеры-геттеры и поле "мой реальный тип"

я всегда хожу путем 1

потому, что 2 - это ява какая-то

ainu
29.03.2017
12:23:40
а если один из типов - "перечень объектов"?

Алексей
29.03.2017
12:24:00
такой себе вариант

ainu
29.03.2017
12:51:27
Вот такое как разрулить?

https://pastebin.com/8KJxpXAX

Google
ainu
29.03.2017
12:52:08
на кавычки не обращайте внимания, на коленке придумал

Да что далеко ходить, вот: { list: [1,3,4,"bingo",true] }

Daniel
29.03.2017
13:13:17
вот это разрулить нельзя никак

i
29.03.2017
13:13:56
разве в go нет библиотек для работы с json по типу как это сделано в C?

Daniel
29.03.2017
13:14:12
а?!

как это сделано в с?

*void?

i
29.03.2017
13:14:46
для каждой ноды или значения тип JsonNode

Daniel
29.03.2017
13:14:50
да пожалуйста

i
29.03.2017
13:15:14
JsonNode->isArray() jsonNode->childs()

Daniel
29.03.2017
13:15:24
анмаршальте в map[string]interface{}, и будет вам счастье

только оно не счастье, а говноедство

JsonNode->isArray() jsonNode->childs()
динамическая типизация как она есть. ненавижу :)

i
29.03.2017
13:17:05
if(JsonNode->type() == "int") { return JsonNode->int() }

так будет не очень эффективно, зато можно любой json обрабатывать и без Interface{}

Daniel
29.03.2017
13:18:50
if(JsonNode->type() == "int") { return JsonNode->int() }
куда это return можно сделать-то?

как функцию для такого return оформить?

i
29.03.2017
13:19:47
это псевдокод

там может быть val := JsonNode->int()

Daniel
29.03.2017
13:20:09
ну вот и как его в реальный-то превратить в языке со строгой типизацией?

Google
i
29.03.2017
13:21:42
можно не париться и забить на типы и всё в виде строки представить, оставть только массивы и мапы из дополнительных типов

Думаю, что такая идея имеет право на существование

i
29.03.2017
13:25:15
обрабатывать json не зная его точной структуры

Andrew
29.03.2017
13:25:52
Можно ещё попробовать это: https://github.com/Jeffail/gabs

Daniel
29.03.2017
13:25:55
а зачем его обрабатывать, не зная его структуры?

Олег
29.03.2017
13:27:47
А почему все сразу отсекают interface{} из вариантов? Тайп-кастами как раз можно разобрать любую структуру, тем более, что соответствие типов Json и go однозначно определено: https://blog.golang.org/json-and-go

Andrew
29.03.2017
13:29:22
можно то можно, просто неудобно

Andrew
29.03.2017
13:29:39
Готовенькое хотят все

Daniel
29.03.2017
13:31:56
у кого?

я вот не продаю

наоборот, сразу кричу - "несите дрова!"

Страница 204 из 1630