
Мерлин
05.09.2017
14:25:52
Структура адаптер?
Структуру вида
type User struct {
Id int64 json:",omitempty"
Email string sql:"index"
CreatedAt *time.Time json:",omitempty""
DeletedAt *time.Time json:",omitempty"
Phone *string json:",omitempty"
}


Давид
05.09.2017
14:27:58
Да, у меня сейчас основная структуру именно такая и, видимо, добавлять еще одну схожую, но для json мне не нужно
Но думаю в будущем я сделаю несколько структур для разных вижов запросов, посмотрим
А еще момент:
Где можно посмотреть хороший пример web проекта, в котором испольуется MVC, но без библиотек?
Я сейчас начал делать слой моделей, но не понимаю: создавать ли мне экзмепляр структуры внутри функций типа GetUser и return его, или возвращать pointer на этот эксземпляр или вообще в саму функцию передать pointer на экземпляр предварительно созданный в контроллере
Кстати, есть предложение: я достаточно проженный front-end программист (особенно много работал с React и Redux)
Если здесь есть хороший Go программист секущий в backend и готовый ответить на некоторые мои вопросы взамен на информацию по front-end прошу в ЛС)

Google

Давид
05.09.2017
14:36:38
Или человек, который готов помочь новичку)
Впервые разрабатываю backend на GO для общения arduino девайсов и многое для меня непонятно

Илья
05.09.2017
14:52:03
тк в случае указателя, у тебя уже решен кейс с nil вместо значения. в sql делают сруктуру, тк она копируется и остается на стеке, а ссылка убежит в хип

Давид
05.09.2017
14:55:07

Илья
05.09.2017
14:55:45
если хочешь, чтобы работало omitempty, то да
ну, или сделать структуру https://gist.github.com/sexyhamster/ea0b77308c7df38cd7230baaa2dfa51f

Давид
05.09.2017
15:10:07

Vasily Romanov
05.09.2017
15:12:01
issue можно закрывать или объяснить почему такое поведение получается ?
я погляжу ещё как доберусь что там с TextMarshaler у этих структур

Давид
05.09.2017
15:18:39
Кстати, нашел немного информации про выбор получения \ возврата pointer в функциях:
Основа: https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/02.3.html
Extended: https://github.com/golang/go/wiki/CodeReviewComments#receiver-type

Google

Vasily Romanov
05.09.2017
15:20:50
DeletedAt pq.NullTime `json:",omitempty" db:"deleted_at"`'
это структура, у неё есть моле Valid и Time ( условно )
но сериализатор ничего не знает про то, как проеделить что эта структура Empty
Там у нас есть пачка стандартных типов в opt
у которых определён метод IsEmpty

Илья
05.09.2017
15:21:32
*IsDefined
:P

Vasily Romanov
05.09.2017
15:21:39
А для этой структуры не понятно как считать что она пустая - полей-то несколько
сорян, IsDesined
поэтому и сериализуется оно как
"deleted_at": {
"time": "0001-01-01T00:00:00Z"
}

Илья
05.09.2017
15:22:47
для time.Time тогда тоже wrapper сделать

Давид
05.09.2017
15:24:41
Так, хорошо, а что тогда лучше выбрать для поля с типом 'timestamp with time zone', но которое может быть Null: *time.Time или *pq.NullTime ?

Vasily Romanov
05.09.2017
15:25:57
у меня мало опыта с простгресом, не могу дать хороший совет по его типам данных

Илья
05.09.2017
15:26:54
ой
вижу
сорри

Давид
05.09.2017
15:27:23
Ну, например deleted_at
Пока я не удалил сущность, она должна быть пустой
Правильно же?
Или лучше как-то по-другому вписывать?

Vasily Romanov
05.09.2017
15:28:32
deleted_at - timestamp внутри ?

Google

Давид
05.09.2017
15:28:57
Внутри User struct

Илья
05.09.2017
15:28:59
не понимаю, о чем вы, куда удалять? чтобы всё было ок, то можно аналогично NullString сделать wrapper вокруг NullTime
ну и ++ из моего опыта работы с time.Time в базе, переход на UTC timestamp, лучшее решение :)

Давид
05.09.2017
15:30:47
Вариант) Ладно, в любом случае благодарю, буду продолжать пробовать

Vasily Romanov
05.09.2017
15:31:29
обращайся :)
если что - пиши, я в октебре где-то доберусть до разборов всех задач по easyjson

Давид
05.09.2017
15:34:58

Мерлин
05.09.2017
16:43:10
https://twitter.com/umputun/status/904833509109501952

Ivan
05.09.2017
16:56:03
NPE, чего тут удивительного ;)

Mush
05.09.2017
17:19:33
кто-то находил/писал мок для редиса?
для стандартного который просто redis.v5 например

Vasily Romanov
05.09.2017
17:38:56
https://github.com/golang/mock

vktr
05.09.2017
21:15:36
george.vanburgh.pdf
Довольно конкретно расписано про реализацию брокера в go, правда производительность на прядок меньше kafka
Вопрос: почему никто не двигает брокера на go типа кафки и завязанного на Konsul? Поидее, можно ж с Scala побороться, ибо язык позволяет

Evgeny
05.09.2017
21:19:27
вероятно печальный опыт использования nsqd (http://nsq.io)

Slava
05.09.2017
21:23:03
есть же кафка =)

Admin
ERROR: S client not available

vktr
05.09.2017
21:30:17
есть же кафка =)
Вот мне тоже грустно, ибо Кафка то тащит. Но она ведь не на go ??

Давид
05.09.2017
21:40:56
https://habrahabr.ru/post/326880/

Google

Давид
05.09.2017
21:41:13
Они нашли для себя сервис на Go
http://nats.io/about/

vktr
05.09.2017
22:17:25

Ynleynah
06.09.2017
02:54:22
Нашел кое что, вроде годнота, может кому полезно будет тоже
t.me/moneymafia — канал с различными схемами и мануалы для заработка на любой вкус и цвет, а также бесплатные сливы приватных материалы с закрытых форумов.

Roman ?
06.09.2017
06:12:22
/spam

Irek
06.09.2017
06:13:59
/report

xPushkin
06.09.2017
06:17:42
/spam

Dmitry
06.09.2017
08:59:36
Здравствуйте, товарищи.
Нужна небольшая консультация по го -- помочь разобраться с инструментами, запустить пример. За разумный рейт.
Может ли мне здесь кто-нибудь помочь?
Если да, пишите в личку, пожалуйста.
Если такие сообщения здесь писать не принято, прошу прощения -- подскажите, где принято.
Спасибо!

Mush
06.09.2017
09:00:08

Dmitry
06.09.2017
09:00:29
я хочу запустить вот эту штуку: https://github.com/libp2p/go-libp2p/blob/master/examples/echo/main.go
копирую, вставляю. делаю go get. запускаю
c.smuxConn.Serve undefined (type streammux.Conn has no field or method Serve)
зависимости обновились, обратной совместимости нет

Ilya
06.09.2017
09:01:20
и?

Ivan
06.09.2017
09:01:48
добро пожаловать

Dmitry
06.09.2017
09:01:53
привет ?

Ivan
06.09.2017
09:01:53
"вендоринг не нужен"

Dmitry
06.09.2017
09:02:48
я из другой экосистемы, и тут плаваю. я понимаю, как зафиксировать версии в npm или в maven. а тут что делать? какие есть подходы? как добиться воспроизводимости сборки?

Mush
06.09.2017
09:03:13
golog "github.com/ipfs/go-log"
crypto "github.com/libp2p/go-libp2p-crypto"
host "github.com/libp2p/go-libp2p-host"
net "github.com/libp2p/go-libp2p-net"
peer "github.com/libp2p/go-libp2p-peer"
pstore "github.com/libp2p/go-libp2p-peerstore"
swarm "github.com/libp2p/go-libp2p-swarm"
bhost "github.com/libp2p/go-libp2p/p2p/host/basic"
ma "github.com/multiformats/go-multiaddr"
gologging "github.com/whyrusleeping/go-logging"
msmux "github.com/whyrusleeping/go-smux-multistream"
yamux "github.com/whyrusleeping/go-smux-yamux”
вот это все как ты выкачал?

Dmitry
06.09.2017
09:03:19
как получить нужную версию зависимости из форка, если она транзитивная и указана через ссылку на гитхаб?

Google

Mush
06.09.2017
09:03:48
там можно указать номер коммита

Dmitry
06.09.2017
09:04:24
вообще мне кажется, что идея за меня всё резолвит каким-то образом

Mush
06.09.2017
09:04:27
но часто либы делают разные версии и по сути это разные репы получаются. например. redis.v5, redis.v6

Dmitry
06.09.2017
09:05:01
ща загуглю glide