@gogolang

Страница 994 из 1630
Pawel
10.04.2018
18:06:52
кто сказал что НЕ сдал?
отрицательные утверждения не доказывают

(я тоже против орм в Го)
а вкаком языке ты не против ORM ?

Илья
10.04.2018
18:14:55
а вкаком языке ты не против ORM ?
В том, где прямо в концепции есть «О» из этого сокращения, и того, где рефлексия не дается кровью и страданиями

Pawel
10.04.2018
18:17:35
пример этого языка в студию пожалуйста

Google
Илья
10.04.2018
18:18:49
Ruby?

C# (.net весь в общем то)

Но все же, не ради холивара я это говорил, а лишь к тому, что в большинстве проектов можно гораздо легче жить на обертке над бд, чем с орм, а конкретно в го пока нет однозначно удобной библиотеки для этого

Pawel
10.04.2018
19:19:00
руби - возможно. Динамическая типизация упрощает дёргалки бд. Но усложняет разработку в целом. C# - ну нет же, там всё ужасно. У меня нагрузка на сервер сократилась на треть после того, как выкинул говнище на ентитифреймворке и перенёс всё важное в хранимки а обёртки над бд, но не орм - это о чём речь?

Sergey
10.04.2018
19:36:50
Об этом
look at https://github.com/go-reform/reform

Илья
10.04.2018
19:37:31
Бля(простите)

Пролистай чуток выше)

Jentry
10.04.2018
19:38:26
Об этом
sqlx не орм, это лишь его часть и далеко на самая удачная, до сих пор открыты весьма критичные issue, годится в целом для простых select/insert

Sergey
10.04.2018
19:38:51
Пролистай чуток выше)
нене. не нужно пытаться в гошу принести подход динамической типизации. будет больно и будет болеть. это против дизайна языка, логично, что всё плохо.

Jentry
10.04.2018
19:39:06
есть еще вторая часть к орм - билдер, я юзаю squirrel вместе с sqlx, но по-прежнему это нельзя назвать ОРМ

Илья
10.04.2018
19:39:13
sqlx не орм, это лишь его часть и далеко на самая удачная, до сих пор открыты весьма критичные issue, годится в целом для простых select/insert
Именно, это не орм, об этом я и говорю, что можно оойтись без них, сдедав все на статических типах и пописав ручками

Google
Sergey
10.04.2018
19:39:29
выезжать в обратную сторону - кодогенерировать по схеме бд (причем весьма изобретательно) - может быть крайне полезно.

Jentry
10.04.2018
19:40:01
самое эпичное в sqlx это left join и вот это поведение - https://github.com/jmoiron/sqlx/issues/162

Jentry
10.04.2018
19:42:03
ормы дают пользу, тот же sqlalchemy в питоне мощнейшая штука

Sergey
10.04.2018
19:42:29
а я с тобой не спорю. ормы в гошке в стиле питона/руби приносят попаболь. IDE не помогает, тайп-чекинга в компайл-тайме нет, подземных стуков будет вагон

Илья
10.04.2018
19:42:57
Илья
10.04.2018
19:43:31
а вкаком языке ты не против ORM ?
Хотя бы с этого момента

Jentry
10.04.2018
19:44:44
в го нет, это очевидный факт)

Илья
10.04.2018
19:45:06
Реформ ближе к полезному да

Для проектов меньше букинг.ком можно и просто намепить моделей на базу

Sergey
10.04.2018
19:47:38
Для проектов меньше букинг.ком можно и просто намепить моделей на базу
лучше даже не думай, как в букинге работают с бд

Jentry
10.04.2018
19:50:55
Для проектов меньше букинг.ком можно и просто намепить моделей на базу
Тем более, что делается это тегами. А больше букинга по-твоему что нужно делать?)

Jentry
10.04.2018
19:52:45
Жестоко, а поддерживать потом это как? Есть позитивный опыт или только теоретически?

Sergey
10.04.2018
19:52:56
используйте модерновую систему сборки, чтобы не коммитить кодогенерированное

если его нет в репозитории и генерируется оно автоматически - то и поддерживать не надо.

Google
Jentry
10.04.2018
19:57:36
А что именно вы генерируете, модельки по схеме из базы?

Jentry
10.04.2018
19:59:55
Тогда нужно поддерживать генератор и вопросы по миграциям, звучит сложнее, чем структурки с тегами объявить

Sergey
10.04.2018
20:00:36
Тогда нужно поддерживать генератор и вопросы по миграциям, звучит сложнее, чем структурки с тегами объявить
звучит сложнее в перспективе "как написать прямо щас на мой таск, а то дедлайн в пятницу". когда у тебя 10 миграций в неделю - генератор становится НАМНОГО проще.

Jentry
10.04.2018
20:01:38
Прикольно, а какой-нибудь открытый проект не подскажете посмотреть, как это работает? Или у вас своя кухня и наработки?

Sergey
10.04.2018
20:02:16
открытый не подскажу, увы. :( мы используем https://github.com/perseas/Pyrseas и bazel

Pawel
10.04.2018
20:15:17
Именно, это не орм, об этом я и говорю, что можно оойтись без них, сдедав все на статических типах и пописав ручками
так чем в этом плане sqlx хуже аналогичных решений из других языков, вот я что не пойму. ИМХО сама идея типизировать SQL - она не очень, соотв. и реализации у неё все одинаково плохие

Pawel
10.04.2018
20:18:51
а я за максимальный перенос бизнеслогики в хранимки, чтобы клиент бд получал от неё минимум сырых данных. Соотв. и типизировать ничего не надо, а если и надо то совсем чуть чуть и локально. И ещё овер дохера проблем уходит - выкидывается твердотельный кеш, ручное управление пулом соединений и тому подобная срань.

Jentry
10.04.2018
20:49:59
Спасибо, хранимки мы уже проходили в сердине нулевых, сейчас бы не очень хотелось вспоминать тот горький опыт

Kirill
10.04.2018
20:50:36
Да ну эти грабли

Pawel
11.04.2018
04:36:01
А масштабировать как?
как и обычный код. plpgsql не така страшен как может показаться с первого взгляда) В крайнем случае - на питоне

У нас посчитали что обще количество человеко часов на сопровождение системы после переписывания логики с EntityFramewirk на plsql в итоге уменьшилось чуть более чем на 50%.

Nick
11.04.2018
05:08:38
как и обычный код. plpgsql не така страшен как может показаться с первого взгляда) В крайнем случае - на питоне
Да, но нагружать базу какой-то логикой, учитывая что базы плохо масштабируются, решение спорное

Мерлин
11.04.2018
05:16:36
Мы тоже думали, что хранимки — это весело, здорово, и вообще, почему бы благородным донам не перенести больше логики внутрь БД Сейчас, конечноя, творится АД, и мы попытаемся перенести обратно

Nick
11.04.2018
05:17:21
И как тестировать это все?

Александр
11.04.2018
05:22:16
Юнит-тесты на хранимки:)

Nick
11.04.2018
05:22:39
Отличное решение

Александр
11.04.2018
05:26:03
Ну вьюхи вполне можно использовать, но хранимки вообще нафиг

Google
Алексей
11.04.2018
05:42:41
а что не так пошло?
Наверное, здорово жить на одной базе?)

Nick
11.04.2018
05:43:02
Забавно будет, если кто-то придёт и скажет «нафиг pg, хочу oracle»

Pawel
11.04.2018
05:44:01
Забавно будет, если кто-то придёт и скажет «нафиг pg, хочу oracle»
пойдёт лесом пока не предоставит тех. и экономическое обоснование. А он не предоставит

Наверное, здорово жить на одной базе?)
не на одной. часть логики на Го

Nick
11.04.2018
05:45:21
Отлично, размазать логику

А какой смысл ?

Алексей
11.04.2018
05:45:58
пойдёт лесом пока не предоставит тех. и экономическое обоснование. А он не предоставит
Ну, а вы потеряете деньги. Есть большие кампании в которых по религиозным и не очень убеждениям запрещено все, кроме Oracle, например. Что говорить, нам докер не везде разрешают юзать.

Pawel
11.04.2018
05:46:40
А какой смысл ?
выше обсуждали. проще клинты для бд писать. не надо всякие там твердотельные кеши, не надо вручную рулить пул соединений, проще типизировать данные (или вообще не надо) и т.п. Проще разграничивать права доступа. Меньше нагрузка на сервер.

Nick
11.04.2018
05:51:48
Когда гошник говорит о типизации мне становится больно

Nick
11.04.2018
05:53:00
Да и кэши не обязательны

Pawel
11.04.2018
05:53:50
решает, но не на 100%. иногда прищодится дополнительные коннекты делать и распихивать трафик между ними

Алексей
11.04.2018
05:54:06
Да и кэши не обязательны
Когда меньше 1000 rps?

Nick
11.04.2018
05:55:43
Когда меньше 1000 rps?
По твоей логике pg больше не может?)))

Pawel
11.04.2018
05:56:43
Да и кэши не обязательны
кеши лучше бы вообще выкинуть, но когда скейлится система, в котороый из бд приходят сырые данные, рано или поздно они возникают.

Алексей
11.04.2018
05:56:44
По твоей логике pg больше не может?)))
По моей 2к вывозил mssql, но правда очень и очень плохо. В зависимости от задач опять-таки.

Google
Alexander
11.04.2018
05:57:24
логика в хранимках - так себе затея, имхо. одно дело засовывать туда тяжелые запросы или группировать по пакетам запросы, которые по смыслу должны лежать в одном пакете, а не раскидывать их по сорцам. но сложную БЛ в хранимки пихать - это самому себе и эксплуатации подкидывать кучу головной боли

Nick
11.04.2018
05:57:58
Alexander
11.04.2018
05:59:18
опять же, надо мне обновить сорцы хранимок. вот условная постгря умеет делать так, чтобы имеющиеся на момент обновления сессии работали со старой версией кода, а все новые сесиии - уже с новой ? или руками нужно это разруливать? или прерывание устраивать ?

Nick
11.04.2018
06:00:15
Страшно представить что там Павел пишет

Marlik
11.04.2018
06:01:33
Чем распарсить вот такое из базы 2018-04-11T03:47:28Z ? Есть практики?

Нужно день вынуть для сравнения.

Pawel
11.04.2018
06:04:31
ни чем не парсить. Использовать sqlx, она выведет из этого time.Time. Гуглить. Вникать вдумчиво

Marlik
11.04.2018
06:04:57
ни чем не парсить. Использовать sqlx, она выведет из этого time.Time. Гуглить. Вникать вдумчиво
Понятно, спасибо. Подошло var id int64 var dt time.Time for rows.Next() { err = rows.Scan(&id, &dt) if err != nil { log.Fatal(err) } fmt.Printf("%d, %v\n", id, dt.Day())

Мерлин
11.04.2018
06:05:11
а что не так пошло?
Чем плохо писать бизнес логику на с огромным трудом тестируемой платформе и динамически типизированном языке с хреновым синтаксисом? Что может пойти не так?

Да, на go писать сложную бизнес логику не сахар, но всё таки лучше хранимок

Алексей
11.04.2018
06:14:02
Mykyta
11.04.2018
06:14:06
Да, на go писать сложную бизнес логику не сахар, но всё таки лучше хранимок
Интересно, чем бизнес-логику на го писать не сахар? Я до го на дотнете работал, мне го своей прямолинейностью и простотой даже больше нравится

Pawel
11.04.2018
06:17:02
Чем плохо писать бизнес логику на с огромным трудом тестируемой платформе и динамически типизированном языке с хреновым синтаксисом? Что может пойти не так?
ну plpythonu, у него синтакчис наверное лучше. Хотя я честно говоря большой разницы не вижу. plsql только на первый взгляд кобол, к нему быстро привыкаешь

Alexander
11.04.2018
06:17:46
Alexander
11.04.2018
06:18:48
Интересно, чем бизнес-логику на го писать не сахар? Я до го на дотнете работал, мне го своей прямолинейностью и простотой даже больше нравится
если писать прямо очень сложную БЛ, то лучше использовать для этого BPM cценарии и движки. на го, я боюсь, сделать реализацию BPMN будет сложновато.

Pawel
11.04.2018
06:18:52
А что делать если у меня касандра?)
я тебе ничего не навязываю)

Алексей
11.04.2018
06:19:13
Alexander
11.04.2018
06:19:31
так да, симпатичнее

Pawel
11.04.2018
06:20:28
Из-за парсинг даты юзать sqlx?) Сомнительное предложение ?
а что, разве стандартная либа не умеет в TIME column type ? sqlx в любом случае надо использовать вместо стандартной либы

Alexander
11.04.2018
06:22:07
Ну тут уже нужна Java животворящая
ну в целом нормальный кейс для тырпрайза, кучка микросервисов на чем-то, на той же гошке, со своей простой логикой. если надо выполнить что-то адски сложное, то кладем сообщение в очередь, а оттуда уже ее вычитывает BPMN на джавке, выполняет. ответ кидает обратно в очередь, и там уже его вычитывает кому надо.

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