
redbeard
05.06.2017
15:42:07

Like
05.06.2017
15:46:16
Парни, какая альтернатива
./name
Для виндовс?:с
Не могу запустить

Aleksandr
05.06.2017
15:48:40
name

Google

Like
05.06.2017
15:48:44
Не катит

Aleksandr
05.06.2017
15:48:45
вроде так
Не катит
google => windows console execute current dir

Like
05.06.2017
15:50:14
Спасибо )

Ywein
05.06.2017
16:59:16
Здрасти. Довольно возможно нубский вопрос.
Я делаю запрос в базу
db.QueryRow("SELECT ...")
И я хочу засунуть результат в struct.
в духе
someStruct := new(MyStruct)
db.QueryRow("SELECT ...").Scan(&someStruct)
это естественно не работает
вот вопрос - как замапить результат который я получаю из базы в мой struct?
ну понятно что я могу прописать там типа &someStruct.Id, &someStruct.text и т.д.

Morran
05.06.2017
17:00:45

Ywein
05.06.2017
17:01:58

Anton
05.06.2017
17:18:01

Ywein
05.06.2017
17:19:21
ну я уже в общем переделал на sqlx, но пока что оно не совсем работает, у него какая то проблема с возвращением массивов из postgre.
у меня в struct идет
Things []string db:"things"
при StructScan выдает ошибку
Scan error on column index 0: unsupported Scan, storing driver.Value type []uint8 into type *[]string
в postgre это character varying[]
при записи все работает ок. но там вроде в доках есть секция про advanced scanning

Google

Ywein
05.06.2017
17:21:44
читаю пока
Или gorm
sqlx больше нравится, не очень люблю ORM

Morran
05.06.2017
17:28:43

Ywein
05.06.2017
17:29:02

Borat
05.06.2017
17:29:19
постгресные массивы норм
json тоже нарушение тогда

Maxim
05.06.2017
17:32:06

Vladislav
05.06.2017
17:33:25

Morran
05.06.2017
17:33:28
первая это когда в кортеже в каждом атрибуте только одно значение
а не массив например

Maxim
05.06.2017
17:35:12

Morran
05.06.2017
17:35:47
тут ты не прав, там одна вытекает из другой

Vladislav
05.06.2017
17:35:48
не катит

Ywein
05.06.2017
17:40:37

Vladislav
05.06.2017
17:42:08

Ywein
05.06.2017
17:44:05

Vladislav
05.06.2017
17:44:41
ну это просто упрощение

Ywein
05.06.2017
17:45:00
Оно скорее усложнение

Google

Ywein
05.06.2017
17:45:26
Менять данные морока

Vladislav
05.06.2017
17:46:25
чтение проще, с записью да

Kirill
05.06.2017
17:48:17
угу. окей, спасибо, попробую
В общем случае sqlx просто с помощью рефлексии узнает какие поля в стракте и в записи в базе, и сопоставляет их используя дескрипторы. Тут основной косяк - рефлексия

Stanislav
05.06.2017
18:48:37
Вот пеп8 для питона
Классный стандарт но по инфраструктуре там нет ничего
Жавашники будут выносить каждый блядский класс в отдельный файл

Like
05.06.2017
18:52:13
Пиздец не удобно на го после ооп херачить
честн слово
но язык топчик канеш

anton
05.06.2017
18:59:30
гофаны
https://github.com/evanphx/json-patch
юзает кто?

Vladislav
05.06.2017
19:00:00

Like
05.06.2017
19:00:12

Like
05.06.2017
19:00:12
Рили

Vladislav
05.06.2017
19:00:43
нафигачил структуру, нафигачил методы, вот тебе типо класс

anton
05.06.2017
19:01:15
в чем неудобство?

Ilya
05.06.2017
19:04:31
Надо просто перестроиться и понять плюсы композиции вместо наследования. Ну и минусы тоже.

Like
05.06.2017
19:05:06
в чем неудобство?
Те же классы, как ни крути, но процедурщина никогда не была моей "практиктой"
Хотя это и не совсем процедурщина (в го)
+ пакеты
Не привык, что без "импорта" можно юзать функцию в любом файле этого пакета)
Ну и прочее
Ну и де foreach :c
Не хочу range :D

Vladislav
05.06.2017
19:06:25
ну в пределах пакета это норм, тупо разбиение на файлы

Ilya
05.06.2017
19:06:30
Почитай про композицию поподробнее - возможно проникнешься. Она и в тех же плюсах периодически крайне полезна.

Google

Like
05.06.2017
19:06:51

Anton
05.06.2017
19:07:52

Like
05.06.2017
19:08:17

Anton
05.06.2017
19:09:00
Да читал) просто ищу хорошую статью добавить в список маст рид

Ilya
05.06.2017
19:09:03
Ну например есть у тебя логгер. Делаешь его не методом, не глобальным обьектом, а интерфейсом. И где нужно, передаешь его как аргумент или хранишь в обьектах. Это позволяет подменить логер на другой хоть на лету. Или для тестов.
Так делаешь со всем, и у тебя все кусочки твоего кода могут в любой момент быть заменены например на моки для теста.

Like
05.06.2017
19:10:19

Anton
05.06.2017
19:10:38

Ilya
05.06.2017
19:10:53
А когда у тебя в обьекте 10 таких интерфейсов которые реализуют каждый свое?

Admin
ERROR: S client not available

Anton
05.06.2017
19:11:11

Ilya
05.06.2017
19:11:39
Ок :)

Like
05.06.2017
19:12:23

Ilya
05.06.2017
19:12:45
Isp?

Like
05.06.2017
19:13:02
Забей, я понял, спасибо за совет :)
Попробую

Ilya
05.06.2017
19:13:45
Ок :)
Мы так делаем со всеми внешними сущностями - интерфейс к бд, логгер, трейсинг, клиенты к другим микросервисам

Like
05.06.2017
19:15:05
Ну твоя реализация не всегда "уместна")

Ilya
05.06.2017
19:16:00
Ну да, нужно применять мозг :) Но сторонние вещи практически всегда прячем за своим интерфейсом

Like
05.06.2017
19:16:01
Не все может иметь несколько различных реализаций

Google

Ilya
05.06.2017
19:16:44
Тут дело не в колве реализаций даже, а в удобстве подмены когда понадобится и уменьшении связности кода

Like
05.06.2017
19:17:05

Ilya
05.06.2017
19:17:39
Вот понадобилось тебе написать тест модуля, который в постгрес лазит - как без постгреса это сделать? Без мока никак. А интерфейс как раз позволит замокать и сделать это просто.
А каждый раз интеграционные тесты делать с поднятой бд не айс

Like
05.06.2017
19:18:38
> каждый раз интеграционные
Вдруг я извращенец?

Ilya
05.06.2017
19:19:07
Тебе виднее ;)

Like
05.06.2017
19:19:16
Или вообще без тестов живу)
Кто знает)

Ilya
05.06.2017
19:21:24
Ооооок...... ;)

Like
05.06.2017
19:21:36
Уже флуда начался, пора заканчивать наверное ))

Ilya
05.06.2017
19:22:09
Наши пыхари пишут :|

Like
05.06.2017
19:22:44
Психи

Ilya
05.06.2017
19:23:37
Ну почему бы и нет... кому что :)
Мне иногда кажется, что у некотрых индивидуумов тдд превращается в религию. Хотя по факту это всего лишь один из инструментов, который причем не всегда подходит.

Like
05.06.2017
19:26:56
Расскажи это компании которая аутсорсит на cms :D
Просто про тесты скажи)
Правда, один раз я нашел вакансию типа такого:
> мы крутые, у нас микросервисная архитектура и прочая лебурда. Мы используем ddd, eda (event driver), cqrs, tdd
Вот это, скорее всего, относится к "религии" )

Ywein
05.06.2017
20:12:30

Like
05.06.2017
20:12:44

Ywein
05.06.2017
20:12:53
окееей.

Like
05.06.2017
20:13:04
На пхп