
Александр
06.02.2018
14:24:59
поясни
ну смотрите, сценарий поиска в классческой орм. Моделька с параметрами аля имя таблицы. Для поиска нам надо иницилизоровать пустую модельку, там вызвать поиск, для создания так-же берем пустую модельку. В результате модель пораждает коллекцию моделей (в случай поиска), что немного тяжко

Aleksandr
06.02.2018
14:25:44
ничерта не понял, либо у нас с тобой разные классические орм

Александр
06.02.2018
14:25:53
я же рассматриваю двух уровневую систему, поиск и создание в "драйвере" над бд, которые в результате плодят легкие модели которые работают только с 1 записью

Aleksandr
06.02.2018
14:25:57
зачем пустые модельки?

Google

Александр
06.02.2018
14:26:19

Mykyta
06.02.2018
14:26:21

Александр
06.02.2018
14:26:36
мы пораждаем сначало пустую модель юзвера, потом заполняем
у модели далее будет какой то метод аля save()
который уже проведет в бд транзакцию и заполнит примери кей например

Aleksandr
06.02.2018
14:27:33
дальше

Александр
06.02.2018
14:28:02
а поиск?
опять пораждаем пустую модель, у которой есть метод search?

Aleksandr
06.02.2018
14:28:32
подожди. ты про AR?

Александр
06.02.2018
14:28:34
или find, не суть
да про AR

Google

Aleksandr
06.02.2018
14:29:04
я бы не сказал что AR - это классическая орм.

Александр
06.02.2018
14:29:30
я еще в пыхе с этим сталкивался, модель пораждают другие модели в поиске, так не удобно было
боль и страдания

Aleksandr
06.02.2018
14:29:51
ну если про AR, то паттерн AR традиционен и в принципе в любых языках реализован одинаково - моделька и сохраняет и ищет себя

Александр
06.02.2018
14:30:26
я вот пробую его переосмыслить

Aleksandr
06.02.2018
14:30:47
создаешь инстанс квери и возвращаешь модельки


Александр
06.02.2018
14:31:59
может конечно я и перемудрил
у меня есть некие системные поля, нужные для обслуживание записи
ну для примера "имя таблицы в бд"
я не хотел их смешить в данными, и начались извращения
структура в базовом пакете, куда в свойство data подгружается уже структра пользовательская
плюс пользовательская структура (их около 6 штук) тоже имеет повторяемые поля, неплохо бы еще и базовую модель захреначить
чешу репу как это провернуть
type SystemRow struct {
TableName string
Data DataModelInterface
}
type DataModelInterface interface {
......
}
-------
type BaseModel {
id string 'json:id'
}
// Реализует DataModelInterface
-------
import "BaseModel"
type UserModel {
BaseModel
name string
}
ну немного не правильно синтаксически, но идея понятно
мы когда UserModel в фабрике создаем, мы не ее отдаем напрямую, мы засовываем внутрь SystemRow
но что-то мне эта схема не ах

Aleksandr
06.02.2018
14:38:57
придумываешь ar заново. подсмотри в готовой реализации

Michael
06.02.2018
14:39:50
ar- active record?

Google

Aleksandr
06.02.2018
14:41:58
type Model struct {
TableName string
Attributes map[string]inteface{}
}
func (model) Get(attribute string) interface{}
func (model) Set(attribute string, value interface{})
func (model) Save()
func Find(...) ActiveQuery
что-то типа такого

Александр
06.02.2018
14:42:03
они тут не вписываются красиво

Aleksandr
06.02.2018
14:43:44

Александр
06.02.2018
14:44:39
охото сразу наплодить еще один слой абстракции
если в твоем примере имя таблицы станет int, то приехали. Править в 6 местах аж
(пример идиотский, но все же)

Aleksandr
06.02.2018
14:47:19

Александр
06.02.2018
14:48:55
эээм
ааа у тебя универсальная модель под все типы

Aleksandr
06.02.2018
14:49:45
у тебя

Александр
06.02.2018
14:50:12
у меня как раз нет, она наследует ?

Aleksandr
06.02.2018
14:50:23
у меня тоже. это же твоя модель

Александр
06.02.2018
14:50:29
хотя ты прав
туплю уже чутка

Aleksandr
06.02.2018
14:50:51
в AR можно наследовать, но необязательно

Александр
06.02.2018
14:51:47
ну такое честно говоря
я про мое решение

Google

Александр
06.02.2018
14:52:05
опять какие то универсальные ножи пошли
зачем так жить ?

Aleksandr
06.02.2018
14:52:49
ну так ар же

Александр
06.02.2018
14:52:59
ну такое...

Admin
ERROR: S client not available

Aleksandr
06.02.2018
14:53:06
какое есть

Александр
06.02.2018
14:53:06
я просто ничего другого не придумал

Aleksandr
06.02.2018
14:53:41
я устал думать об этом. просто делаю репозитории на голом sql и возвращаю модельки

BlackTrojan
06.02.2018
14:54:16
/stat@combot

Combot
06.02.2018
14:54:16
combot.org/chat/-1001046001048

Roman
06.02.2018
14:57:08
http://go-talks.appspot.com/github.com/mhausenblas/fosdem2018-godevroom-networkingdeepdive/main.slide#1

Michael
06.02.2018
15:25:41

Olzhas
06.02.2018
16:12:57
Ебанутые спамеры

Foxcool
06.02.2018
16:14:25
Это ещё норм. У нас каждый день больше десятка памп каналов, предложений гарантировано заработать на бирже и т.д

Alex
06.02.2018
16:28:01
Добрый вечер сообществу! Будет ли уместно опубликовать здесь вакансию golang разработчика в проект связанный с highload онлайн видео сервисами? (я не HR, ищем человека в команду)

Sergey
06.02.2018
16:29:16

Roman
06.02.2018
16:30:20

Alex
06.02.2018
16:40:36
@likipiki этот - https://t.me/golangjob ?

Sergey
06.02.2018
16:40:54

Alex
06.02.2018
16:41:37
Согласен, но складывается впечатление что там очень тихо

Google

Alex
06.02.2018
16:42:46
@pragus я ссылочку кину чтобы много здесь не постить - https://integros.com/jobs/golang.html

Виталий
06.02.2018
18:02:18
⁉️ Ищу програмиста знающего Go, Tarantool для написания классифайта по недвижимости. Пишите в личку. Обсудим сотрудничество.

Slach
06.02.2018
18:41:12

Виталий
06.02.2018
18:42:03
для скорости
луа вроде умирающий язык
а Go hазвивается

Kirill
06.02.2018
18:42:25

Виталий
06.02.2018
18:42:26
развивается

Dan
06.02.2018
18:42:34

Slach
06.02.2018
18:42:38
для скорости
встроенный в tarantool LUA
будет быстрее чем go + tarantool

Kirill
06.02.2018
18:42:48

Dan
06.02.2018
18:42:51
lua пожалуйста не трогать. он идеален для скриптования

Kirill
06.02.2018
18:43:06

Slach
06.02.2018
18:43:07

Dan
06.02.2018
18:43:39