@rubylang

Страница 1114 из 1684
Anton
11.07.2017
13:27:04
ну и нормальная ОРМ
еще интеракторы из коробки, номальное тестирование экшенов, вью объекты, которые спасают и куча всего другого

Di
11.07.2017
13:27:33
ну и нормальная ОРМ
А есть где почитать про нормальность/ненормальность ОРМ для ненастоящих сварщиков?

Anton
11.07.2017
13:27:35
тем, что там больнее
а вот хз, мне сейчас от рельсы большее, но это лично мое мнение

Google
Anton
11.07.2017
13:28:28
можно почитать доки ханами например

http://hanamirb.org/guides/models/overview/

вот от сюда

Ребята, привет! Кто уже начал пользоваться Hanami, есть ли у него реальные преимущества, стоит ли его рассматривать уже сейчас как альтернативу?
а, ну и TLDR: используй, не думай. не понравится - успеешь выкинуть и переписать на то, что нравится

Di
11.07.2017
13:29:29
ничего не понял
Ну ты пишешь что у ханами нормальная орм. Видимо подразумевается что у рельсы не очень. Я кроме рельсовой ничего не видел, поэтому было бы интересно чем нормальная от ненормальной отличается.

v
11.07.2017
13:29:39
Anton
11.07.2017
13:29:48
да не

у меня скорее просто руки от фреймворка отвязались

будет видно что и как работает там

если коротко - мне не нравится ар из-за сложности написания запросов. очень часто скатываешься в арел или голый sql. с ромом пока таких проблем не было

но у рома есть пара минусов: 1. он не очевидный местами и по началу будет больно 2. когда боль уходит, становится больно с остальным

Google
Anton
11.07.2017
13:34:19
Ребята, привет! Кто уже начал пользоваться Hanami, есть ли у него реальные преимущества, стоит ли его рассматривать уже сейчас как альтернативу?
а, ну и если что - всегда у меня можно вопросы спросить, ну или в офф чате, если английский не страшен

Fedor
11.07.2017
13:36:21
Мое ИМХО, что если ты начинающий проггер, который ищет работу, то под рельсу работу найти проще

ханами можно посмотреть из интереса, но если он тебе реально не сильно нужен и уже есть опыт с рельсой, то запилить проект на рельсе проще и быстрее

а вот если есть хорошая работа и там есть ханами, то не грех и выучить

Anton
11.07.2017
13:37:34
Мое ИМХО, что если ты начинающий проггер, который ищет работу, то под рельсу работу найти проще
с работой да, но тот же ханами очень сильно помогает писать не говнокод на рельсе

например там из коробки подумали о DI, что очень спасает порой

Fedor
11.07.2017
13:37:52
писать не говнокод на рельсе помогает код ревью )

Anton
11.07.2017
13:38:00
единственное, там дока отстала и ничего нет про интеракторы

говорю по собтсвенному опыту

на первой работе доебывались к каждому символу на ревью. это вообще никак не помогало писать хороший код

только удручало и заставляло печься

но это мой личный случай

Aleksey
11.07.2017
13:39:17
можно еще раз про интеракторы? что это такое? чем-то отличается от сервисов/команд/операйшн/etc?

Anton
11.07.2017
13:39:38
Получил предложение писать о том, что использую в ежедневной работе, и добавить больше юзкейсов. Давайте попробуем. В последнее время я часто использую паттерн interactor, поэтому расскажу о нем подробнее и покажу на реальном примере, как с помощью этого подхода зарефакторить экшен. Я фанат идеи функциональных объектов. В Rails я использовал сервис-объекты, в текущем dry-web проекте — оперейшены, а в ханами — интеракторы. Текст будет касаться исключительно Hanami и hanami-interactor, но подход возможно использовать в других фреймворках.

вот тут читай

там много и с примерами

вот ссылка даже https://t.me/pepegramming/16

Aleksey
11.07.2017
13:40:31
спасибо

Anton
11.07.2017
13:40:36
хм, ссылки работают в разы лучше

Google
Anton
11.07.2017
13:40:48
спасибо
там же дальше про базовый DI будет

Inna
11.07.2017
13:41:20
Спасибо всем за ответы. Я хочу организовать команду фрилансеров. Фрилансеры, поделитесь, плиз, опытом, кто где ищет заказчиков?

Aleksey
11.07.2017
13:42:10
про DI вчера читал, честно говоря не сильно понял всю супер-крутость идеи понятно про тестирование, но вот со слабым связыванием пока не понятно видимо, еще не возникало больших сложностей

Serhii
11.07.2017
13:42:26
покажи реальный пример где справляется hanami orm и не справляется активрекорд? не защищаю рельсу, просто интересно

Aleksey
11.07.2017
13:43:30
буду ждать :)

Anton
11.07.2017
13:43:38
т.е. пока описывалась сама идея, скоро напишу про dry-containers, а потом про dry-system, а вот там прямо заходит на ура

Fedor
11.07.2017
13:44:06
хорошие фрилансеры сидят на upwork и хотят зп в еврах

Anton
11.07.2017
13:44:21
есть просто несколько проектов, где используется ром (включая все рабочие), так что тут просто мое имхо связанное с опытом

ну как самый простой пример, ILIKE постгреса

Serhii
11.07.2017
13:44:45
ну не сравнения, просто сложный запрос который тяжко было бы в рельсе

Anton
11.07.2017
13:44:47
в АР из коробки нет этого

в роме есть

аналогично с нормальным чейном запросов

ну не сравнения, просто сложный запрос который тяжко было бы в рельсе
хм, у меня нет прямо БОЛЬШИХ запросов, сейчас найду что-нибудь большое

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

вот так выглядит https://github.com/davydovanton/octostar/blob/master/lib/octostar/repositories/project_repository.rb

и то, я бы мб его переписал сейчас

Aleksey
11.07.2017
13:48:51
в 24 строке OR симпатичный

Google
Anton
11.07.2017
13:49:12
ага, not тоже норм выглядит

ojab
11.07.2017
13:49:57
в роме есть
http://www.rubydoc.info/gems/rom-sql https://github.com/rom-rb/rom/search?utf8=%E2%9C%93&q=ilike&type=

пичалька

Anton
11.07.2017
13:50:02
вот так выглядит

[3] pry(main)> repo.accounts.where { email.not('123@test.com') } => #<Persistence::Relations::Accounts name=accounts dataset=#<Sequel::Postgres::Dataset: "SELECT \"id\", \"status_id\", \"email\", \"created_at\", \"updated_at\", \"deleted_at\" FROM \"accounts\" WHERE (\"email\" != '123@test.com') ORDER BY \"accounts\".\"id\"">>

http://www.rubydoc.info/gems/rom-sql https://github.com/rom-rb/rom/search?utf8=%E2%9C%93&q=ilike&type=
https://github.com/davydovanton/octostar/blob/master/lib/octostar/repositories/project_repository.rb#L24

ojab
11.07.2017
13:51:44
https://github.com/davydovanton/octostar/blob/master/lib/octostar/repositories/project_repository.rb#L24
это я вижу, я не вижу где оно реализовано в rom и иже

Anton
11.07.2017
13:54:22
вот это уже не ко мне :D

ojab
11.07.2017
13:55:58
меня терзают смутные сомнения что там method_missing или подобное, так что об "изкоробке" говорить не совсем корректно

Admin
ERROR: S client not available

Anton
11.07.2017
13:56:13
ну а в целом, у меня, спустя 2 года, сложилось такое мнение обо всем этом: если вы чувствуете какое-то давление со стороны рельсы или понимаете, что много времени тратите на то, что бы побороть фреймворк - попробуйте ханами или dry-web. скорее всего вы почувствуете себя свободнее

скорее всего на самом деле

ojab
11.07.2017
13:57:27
а по выразительности, судя по беглому взгляду, напоминает скорее Arel, а не AR

синтаксис поприятнее, да, но Arel при необходимости облагородить не особо сложно

ojab
11.07.2017
13:58:38
ну и, прозреваю, arel помощнее будет

приходилось периодически

Anton
11.07.2017
13:58:51
ну и арел прямо не читаем в 90% случаев

0x58
11.07.2017
13:59:51
Парни, привет. Как можно добавить в relation элемент во время выполнения скоупа? если проверять возвращаемое кол-во, такое ощущение, что возвращается кэширование значение и relation не изменился, хотя внутри скоупа он меняется.

Google
Serhii
11.07.2017
13:59:53
для большей гибкости можно сырой SQL подучить тогда вообще все доступно будет

0x58
11.07.2017
14:00:00


Anton
11.07.2017
14:00:43
а, ну и главный плюс - маппинг данных быстрее

ojab
11.07.2017
14:00:46
А что ты пытаешься этим сделать? Relation не массив.

Anton
11.07.2017
14:00:49
так как в энтити нет ничего лишнего

ни валидации, ни каких-то колбэков

0x58
11.07.2017
14:01:43
А что ты пытаешься этим сделать? Relation не массив.
Я согласен что не массив, однако методом « можно добавить значение

В общем в relation домержить запись надо при опред. условиях

ojab
11.07.2017
14:02:50
ну и арел прямо не читаем в 90% случаев
прозреваю что в 90% случаев или проблема не в ареле, или на роме получится не сильно лучше

Anton
11.07.2017
14:03:14
ojab
11.07.2017
14:03:15
В общем в relation домержить запись надо при опред. условиях
relation — результат выполнения запроса, туда нельзя мержить записи

Serhii
11.07.2017
14:05:14
ханами конечно интересно, но с точки зрения коммерческой - сильно мало спроса на него.всем нужна рельса. если же идти в ханами за скоростью - то это вообще ошибочно, т.к. руби и скорость в корне не совместимо. под производительность берутся другие языки

ojab
11.07.2017
14:06:15
В общем в relation домержить запись надо при опред. условиях
ты так и не ответил, что в итоге хочешь получить. Возможно тебе поможет testscope.to_a + result.

ojab
11.07.2017
14:07:47
для большей гибкости можно сырой SQL подучить тогда вообще все доступно будет
Как бы ORM и созданы для того чтобы сырой SQL не писать и не читать. Arel по сути и есть сырой sql обёрнутый в объекты, что позволяет более-менее удобно оперировать кусками сложных запросов.

0x58
11.07.2017
14:08:13
нужно чтобы скоуп возвращал всегда reletion оригинальный или измененный (если передан параметр).

ojab
11.07.2017
14:08:54
Тебе точно нужен Realtion, а не Array, например?

0x58
11.07.2017
14:09:09
просто есть места где его используют в связке с другими скоупами и все поломается если будет Array)

Serhii
11.07.2017
14:10:11
так никто и не говорит что сырой SQL писать всегда. только в особо тяжких случаях пару раз на всем проекте. Из-за этих пары случаев менять весь фреймворк - нонсенс. А если сырых SQLов сильно много в проекте, то это верный признак неправильности структуры базы

ojab
11.07.2017
14:10:44
Подсказка: его можно использовать с другими scope'ами, потому что это результат sql-запроса и к нему можно надобавлять ещё sql'a. Добавление произвольной записи это ломает.

Anton
11.07.2017
14:11:53
ханами конечно интересно, но с точки зрения коммерческой - сильно мало спроса на него.всем нужна рельса. если же идти в ханами за скоростью - то это вообще ошибочно, т.к. руби и скорость в корне не совместимо. под производительность берутся другие языки
коммерческая проблема - проблема новой технологии. за последний год интереса и спроса стало в разы больше, так что это просто дело времени скорость - тут не только про скорость самого кода (хотя бенчмарки получаются в 2-3 раза быстрее минимум), а про скорость разработки (не сколько начальной, а уже после "бурста). и тут получается достаточно все красиво, ибо разделение логики сильно спасает

Страница 1114 из 1684