@gogolang

Страница 1268 из 1630
Kirill
31.07.2018
19:15:18
Люблю gin, но это лично мое мнение, не подкреплённое никакими измерениями

Pawel
31.07.2018
20:03:20
go-chi
+1 только это роутер, не фреймворк

Google
Oleg
31.07.2018
22:26:21
А как же fasthttp?
там что-то давненько комитов не было

Kirill
31.07.2018
22:28:37
он от этого менее стабильным не стал

Slava
31.07.2018
22:32:09
А как же fasthttp?
а что с ним?

Milkiweed
31.07.2018
22:44:03
подскажите пожалуйста проект лежит по пути /Users/milkiweed/go/src/bolsche в директории 2 файла , все начинаются со строк package bolsche прописывал команды go install bolsche, все завершалось без ошибок но когда ввожу go run и любой файл из моей директории - получаю > go run: cannot run non-main package указывал GOPATH, проект уже туда кинул и следовал советам, которые удалось нагуглить; ничего толкового не нашел

Slava
31.07.2018
22:45:45
в го executable только main пакеты

Roman
31.07.2018
22:46:18
а что с ним?
с ним все хорошо

Slava
31.07.2018
22:47:35
к чему тогда ваш вопрос?

Roman
31.07.2018
22:48:47
к чему тогда ваш вопрос?
вы утверждаете что только net/http в проде, что совсем не так.

Milkiweed
31.07.2018
22:49:12
в го executable только main пакеты
а что это значит? немного не понял как в данной ситуации лучше поступить?

Slava
31.07.2018
22:51:18
Google
Slava
31.07.2018
22:51:57
а что это значит? немного не понял как в данной ситуации лучше поступить?
можно начать с изучения го тура, там как раз в первой лекции про это https://tour.golang.org/basics/1

Никита
31.07.2018
22:53:29
я пренебрёг десятыми долями процента
Почему стандартный net/http используется реже чем fasthttp?

Slava
31.07.2018
22:54:40
всё ровно наоборот

Roman
31.07.2018
22:58:53
Почему стандартный net/http используется реже чем fasthttp?
потому что штатный медленнее и аллоцирует память на каждый чих )

Никита
31.07.2018
22:59:34
всё ровно наоборот
Да, наоборот, ошибся. Так почему?)

Slava
31.07.2018
23:06:16
потому что он 1) удобнее 2) достаточно быстр для любых задач 3) более функционален 4) поддерживаешься более широким наборот библиотек 5) более стабилен

можно и дальше продложать, вроде поддерживает http2 итд

Slava
31.07.2018
23:38:31
какое?

Roman
31.07.2018
23:39:28
какое?
Достаточно быстр для любых задач

Он либо для любых, либо достаточно быстр :)

Slava
31.07.2018
23:47:21
хорошо, 99 процентов любых задач

Dmitri
01.08.2018
05:01:58
Какой фреймворк посоветуете для написания апи, вот прям чтобы потом можно было и в продакшене юзать? Я пока на биго остановился, пользуется им кто-нибудь?
beego - монстр, имхо. Есть стандартный пакет, есть echo, есть chi. Для прода есть swagger+генерация, есть grpc с генерацией

а что это значит? немного не понял как в данной ситуации лучше поступить?
Запускаемый файл должен первой строчкой package main иметь

Nick
01.08.2018
05:10:57
@CheshireKot я не помню ты или не ты говорил, но qml разве имеет зависимость на js ? К тому же сразу на v8?

Dmitri
01.08.2018
05:24:10
@CheshireKot я не помню ты или не ты говорил, но qml разве имеет зависимость на js ? К тому же сразу на v8?
qml-движок носит внутри себя v8, который js-движок, и с ним работает

когда ты биндишь что-то из основного приложения, допустим, на C++, в QML-интерфейс, создается соответствующий js-объект, с которым твой интерфейс и работает

Oleg
01.08.2018
05:29:31
Никак. Не работает оно
а чего так? хочу с клинта слать дельту по стандарту https://tools.ietf.org/html/rfc7386. как на сервере лучше всего с этим жить?

Или с https://tools.ietf.org/html/rfc6902

Google
Oleg
01.08.2018
05:44:56
иначе придется слать на сервер всю сущность и на сервере вычислять дельту с вариантами 1) запоминать все версии сущностей, вычислять дельту по сравнению с нужной версией 2) придумывать блокировки на время редактирования 3) не придумывать блокировки и слать клиента лесом если он пытается изменить устаревшую версию.

Nazary
01.08.2018
07:02:57
как можно преобразовать строку типа 20180805213000 +0300 в unix timestamp

The
01.08.2018
07:09:47
почитайте доку к time пакету

там есть Parse и формат по которому парсить

The
01.08.2018
07:13:29
в вашем случае parse будет что-то вроде time.Parse("20060102150405 -0700", yourVar), а затем time.Unix()

Oleg
01.08.2018
07:15:17
Можно обычным POST на специальный location типа. /entity/delta
все придумали до нас. PATCH у REST для этого. И вопрос в том как с этим работать на сервере

V
01.08.2018
07:16:12
руками ?

The
01.08.2018
07:17:57
А в чем проблемы то с PATCH?

Можно определить структуру, в неё анмаршалить JSON, и написать метод Merge(entity *YourEntity) в которой сравнить все поля, и по очередно обновить, либо рефлексией.

Roman
01.08.2018
07:19:35
А в чем проблемы то с PATCH?
В натягивании бизнес-логики на скудное количество http verbs

The
01.08.2018
07:21:52
можно кодогенерацией решить такой кейс, если проблема все таки не в http verbs а в лени все это описывать

Oleg
01.08.2018
07:33:38
Можно определить структуру, в неё анмаршалить JSON, и написать метод Merge(entity *YourEntity) в которой сравнить все поля, и по очередно обновить, либо рефлексией.
1) ты как делаешь? с клиента дельту получаешь или все состояние сущности? 2) как сохранение в базу у тебя выглядит?

V
01.08.2018
07:35:31
put заменяет существующую сущность, patch меняет отдельные поля, не?

The
01.08.2018
07:36:27
ну даже если дельту, нужно как-то связывать значение новый старый, например по ID, а дальше кодогенерацией создать if newEntity.Name != "" && newEntity.Name != oldEntity.Name { // добавляем в update значение }

а в чем вообще проблема обновить всю строку?

если уж раз с базой работаете?

https://github.com/imdario/mergo

вот структуры мерджить

Admin
ERROR: S client not available

Google
The
01.08.2018
07:39:38
https://github.com/evanphx/json-patch

а вот и json patch, но я думаю вы это видели

Данила
01.08.2018
08:40:05
После компиляции не удаётся запустить бинарник ./http: line 1: syntax error near unexpected token `newline' ./http: line 1: `!<arch>'

С чем это может быть связано?

Aleksandr
01.08.2018
08:41:11
компилишь на хосте или в докере?

Daniel
01.08.2018
08:41:20
погодите

это ошибка компилятора же

Olzhas
01.08.2018
08:41:27
гопаф кривой
человек не смог в установку го

Данила
01.08.2018
08:42:06
Aleksandr
01.08.2018
08:42:29
На хосте
перекомпиль, покажи лог компиляции

Nazary
01.08.2018
08:42:33
там есть Parse и формат по которому парсить
ой, чёт не подумал, благодарю

Данила
01.08.2018
08:43:40
гопаф кривой
GOPATH="/home/user/go" GOROOT="/usr/local/go"

Olzhas
01.08.2018
08:44:41
GOPATH="/home/user/go" GOROOT="/usr/local/go"
а в коде есть строка типа import "./http"?

Данила
01.08.2018
08:45:18
Есть import ( "net/http" "github.com/gin-gonic/gin" )

Olzhas
01.08.2018
08:45:48
а сам пакет как называется?

Данила
01.08.2018
08:46:01
khcp

Daniel
01.08.2018
08:46:33
GOPATH="/home/user/go" GOROOT="/usr/local/go"
gopath и goroot не должны в одно место указывать, вообще-то

Olzhas
01.08.2018
08:47:12
т.е. код примерно такой package khcp import ( "net/http" "github.com/gin-gonic/gin" ) func main() { //blablabla }?

Google
Olzhas
01.08.2018
08:48:48
и собираете командой go build -o http?

Данила
01.08.2018
08:49:12
go build -o http http.go

Вот код: package khcp import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.New() r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World!") }) r.GET("/ping", func(c *gin.Context) { c.String(http.StatusOK, "pong") }) http.Handle("/", r) }

Aleksandr
01.08.2018
08:49:38
go build -o http http.go
так ты лог компиляции покажешь?

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