@gogolang

Страница 235 из 1630
Vladimir
21.04.2017
14:41:09
Это ты так проверяешь наличие поля "error" в JSON ответе?

Konstantine
21.04.2017
14:42:07
Это ты так проверяешь наличие поля "error" в JSON ответе?
пока да. т.к. json ошибки и ожидаемого ответа сильно разные, не уверен, что маршить дважды для проверки на ошибку выгодно

Vladimir
21.04.2017
14:42:31
https://godoc.org/encoding/json#RawMessage



Google
Vladimir
21.04.2017
14:46:45
Только в Response держать не указатель на json.RawMessage, а само значение типа json.RawMessage.

Ну и код ответа проверять нужно.

Konstantine
21.04.2017
14:53:50
Читаю пример по ссылке и слабо понимаю пока, как это работает %)

Илья
21.04.2017
14:56:06
json сохранится as is, и ты можешь дальше анмаршалить, в зависимости от наличия Error

Vladimir
21.04.2017
14:56:07
Частичная десериализация.

Dmitriy
21.04.2017
14:56:25
О, круто, беру на заметку. Не знал.

Konstantine
21.04.2017
14:57:32
json сохранится as is, и ты можешь дальше анмаршалить, в зависимости от наличия Error
не, суть я понял, не совсем понял как оно работает в коде. Тобишь на месте RawMessage сохраняется не обработанный json и его потом можно использовать как и массив byte?

Konstantine
21.04.2017
14:58:41
именно так
но как это срабоатет, если json вообще может разный быть? то { "error": {...}}, то {"response":{}}

Илья
21.04.2017
15:00:09
в примере, который показал Владимир, он Error объявил ссылкой на структуру, т.е. если ее не будет в ответе, там будет nil, а response останется as is, и его далее можно будет разбирать

если response отсутствует, там будет пустой слайс

Vladimir
21.04.2017
15:01:18
Указатель.

Konstantine
21.04.2017
15:02:34
Ух, ладно, буду вкуривать) Спасибо

Google
Мерлин
21.04.2017
15:45:33
Caddy 0.10 Released (Score: 101+) Link: http://j.mp/2oRDInP

Konstantine
21.04.2017
16:27:17
А объясните еще раз, почему error и rawmessage именно ссылкой обозначены?

Konstantine
21.04.2017
16:28:59
RawMessage незачем.
Но у вас там именно так)

Vladimir
21.04.2017
16:29:22
Да, но так делать смысла нет.

Konstantine
21.04.2017
16:29:43
А то я с ссылками и указателями слаб, знаю, что надо использовать когда передаем в функцию что-то, что должно быть изменено глобально и все

Поэтому подобные места вопросы вызывают

Vladimir
21.04.2017
16:32:57
Указатель нужен, чтобы получить nil в случае отсутствия поля error.

Mike
21.04.2017
16:32:59
RawMessage незачем.
вообще-то есть зачем. ссылка 8 байт весит, а все сообщение может много, и каждый раз копирвать много в локальные переменные функции такая себе идея

Konstantine
21.04.2017
16:49:59
Тобишь в данном случае указатель для простоты проверки, можно и без него проверяя, что ошибка пустой вернулась

Monday Begins on Saturday
21.04.2017
17:06:17
Кто пишет на Go на продакшене или имеет какие-то серьезные проекты. Как у вас организована сборка проекта с нуля? Пользуетесь ли вы vendor директорией? Используете ли вы в своем проекте всегда последнюю версию библиотеки или зафиксированы на определенной версии? Обновляете ли вы со временем эту версию?

Slava
21.04.2017
17:07:49
вендорим, зафиксирована версия, не обновляем версию

Monday Begins on Saturday
21.04.2017
17:07:57
Есть ли способы просто как в nodejs/python подтянуть по списку все нужные библиотеки с нужными версиями а потом собрать проект?

Slava
21.04.2017
17:08:27
есть, бери любой вендор инструмент

но подтягивать при сборке - гиблое дело, лучше вендорить

Monday Begins on Saturday
21.04.2017
17:10:58
В vendor git'овские сабмодули или все обычно код просто копируют не разделяя на отдельные репозитории?

Slava
21.04.2017
17:19:38
вендор библиотеки копируют код в твой репозиторий

Google
Slava
21.04.2017
17:19:45
и ты хранишь его у себя

Alexey
21.04.2017
17:19:48
но подтягивать при сборке - гиблое дело, лучше вендорить
А для вендоринга чем лучше пользоваться? Glide? https://github.com/Masterminds/glide У меня просто возникали с ним проблемы при использовании редактора Atom с плагином для golang - go-plus, автоматом там тул, что запускал тесты не понимал, что либы лежат в vendor папке. В итоге так и не разобравшись пришлось пока то что хотел завендорить положить по дефолтному пути ~/go/src

Slava
21.04.2017
17:20:10
ну это плагин у тебя кривой, а не глайд

пользуйся нормальными IDE, типа vim

Quet
21.04.2017
17:20:51
vim.. IDE... смешно конечно)

Alexey
21.04.2017
17:21:07
Вим слишком радикально пока :)

Monday Begins on Saturday
21.04.2017
17:43:58
Решил пока с vendor'ами не заморачиваться. Попробую сейчас всё организовать в качестве сабмодулей, что бы можно было просто рекурсивно клонировать весь проект и собирать. Мне кажется просто хранить у себя отдельную копию библиотеки вместо git-ссылки на специфичную версию/коммит не очень хорошо. Правда я пока не знаю умеет ли git делать сабмодуль с ссылкой на определенную версию/коммит.

Slava
21.04.2017
17:47:13
хранить у себя версию - это очень хорошо

потому что люди любят удалять/переименовывать свои репозитории

и интернет имеет свойство ломаться

Monday Begins on Saturday
21.04.2017
17:50:05
¯\_(ツ)_/¯

Поменяют аддрес библиотеки - поменяю аддреса в проекте. Конечно хранить именно копию надежнее, но мне как-то это не сильно нравится. Всеравно что я у себя бы node_modules в проектах на node.js сохранял.

Не уверен, что npm-подобное хранилище было бы лучшем решением, но мне кажется оно было бы более надежным. Всё-таки ник на github'е действительно может поменять какой-нибудь тип от которого зависит куча проектов. Но я новичок, в Go всего месяц и скорее всего тот ещё невежда

Slava
21.04.2017
17:58:50
у нас тут подкаст начался http://golangshow.com/online/

Ivan
21.04.2017
17:59:09
Да, это древняя боль. Придумали костыли - вендеринг, юзайте его. Не особо помогает. и есть шанс что вы однажды влетите в чужой проект без вендоринга. Что делать, жизнь боль.

Slava
21.04.2017
18:01:21
все нормальные люди хранят код у себя

всегда есть вероятность атомной войны

Aleksandr
21.04.2017
18:16:48
все нормальные люди хранят код у себя
только в твоем мире. в остальном мире есть нормальные менеджеры зависимостей

это видимо свойство низкоуровневых языков - все таскать с собой. в высокоуровневых все подкачивают через менеджеры.

Google
Ivan
21.04.2017
18:23:39
это видимо свойство низкоуровневых языков - все таскать с собой. в высокоуровневых все подкачивают через менеджеры.
Это свойство серьезных компаний vs стартапчиков на коленочке. В стартапчике, если отваливается github, проект перестает собираться и все идут курить. В серьезной компании падение github-а никто не замечает.

Andrew
21.04.2017
18:32:46
И проект не перестаёт собираться, тк копии исходников лежат на компутерах

Victor
21.04.2017
18:34:07
Ребята, не знаю аглийского языка, поэтому имею трудности в поиске нужной информации. А вопрос такой: хочу написать приложение для Android на Go. Что максимально можно сделать на Go для Adroid, я имею ввиду можно ли написать интерфейс или все таки без Java не обойтись? Буду рад ссылкам на полезные источники.

Victor
21.04.2017
18:35:46
Ну вопрос в другом. Это я и сам понимаю)

Ivan
21.04.2017
18:37:28
это утрирование и подмена понятий.
конечно, https://habrahabr.ru/post/280039/

Aleksandr
21.04.2017
18:39:11
конечно, https://habrahabr.ru/post/280039/
это и есть доказательство утрирования. один раз случилось, и ты предлагаешь все таскать с собой

Ivan
21.04.2017
18:39:16
И проект не перестаёт собираться, тк копии исходников лежат на компутерах
clean && build и нету их. А вообще не кажется слишком рискованным надеятся на закешированные копии? ?

Andrew
21.04.2017
18:40:27
clean && build и нету их. А вообще не кажется слишком рискованным надеятся на закешированные копии? ?
Ну как минимум первое время всё будет продолжать компилиться))

Ivan
21.04.2017
18:40:30
это и есть доказательство утрирования. один раз случилось, и ты предлагаешь все таскать с собой
Когда такое затрагивает твой проект и бизнес, тебе не важно, какая вероятность у этого события. "Все свое ношу с собой" и душе спокойнее, и надежнее.

Andrew
21.04.2017
18:41:26
Ivan
21.04.2017
18:42:16
кароче, парни, вам тут говорят как делают сильные мира сего, а вы там сами у себя решайте как делать)

Konstantine
21.04.2017
18:44:19
https://godoc.org/encoding/json#RawMessage
Спасибо за наводку) Помимо более элегантного способа проверки ошибки еще и избавился от вложенных структур, которые мазолили глаза)

Aleksandr
21.04.2017
18:44:36
увы, сильные мира сего - это 1% от количества, и 99% от ресурса на инфраструктуру, со всеми вытекающими

Monday Begins on Saturday
21.04.2017
18:47:58
Т.е. если в одной из библиотек от которой зависит программа обнаруживается фатальный баг и её надо обновить, то просто заново все файлы копируешь теряя все преимущества git'a? Мне кажется такой способ породит больше багов чем падение github'a.

Ivan
21.04.2017
18:48:32
какие такие преимущества

Google
Ivan
21.04.2017
18:48:52
каие преимущества git в аццких его субмодлулях век бы их не видать

Vladimir
21.04.2017
18:50:15
Дать возможность передавать *http.Client. Ну и если передают nil, то тогда уже откатываться к http.DefaultClient. Либо инициализировать свой клиент, конфигурируя там таймауты.

https://github.com/SolidlSnake/easyvk-go/blob/master/easyvk/vk.go#L168 Здесь лучше использовать POST.

Monday Begins on Saturday
21.04.2017
18:53:47
go get -u ...?
"Get never checks out or updates code stored in vendor directories. "

Vladimir
21.04.2017
18:55:43
Ну и АВТОРИЗАЦИЯ это довольно сомнительная фича. Лучше сразу принимать токен. Ну либо использовать direct auth с данными какого-нибудь официального приложения, например: https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=username&password=password

Vladimir
21.04.2017
18:58:41
Почему?
Возможный лимит длины?

Konstantine
21.04.2017
18:59:36
Возможный лимит длины?
А он есть? Видал очень большие урлы)

分解物質
21.04.2017
19:10:24


Пайк няшка

Daniel
21.04.2017
19:27:07
Мерлин
21.04.2017
21:06:01
cznic/sqlite: Package sqlite is an in-process implementation of a self-contained, serverless, zero-configuration, transactional SQL database engine. (Work In Progress) https://github.com/cznic/sqlite

Aleksandr
22.04.2017
00:44:13
https://github.com/st0012/Rooby

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