Ruby: ROM и его составляющие
Алексей Микка
ROM — Ruby Object Mapper
Зачем он нужен, если есть ActiveRecord?
Ну в Java же есть...и в .Net
ROM стек состоит из:
● Axiom relations
● Gateway proxies with adapters
● ROM relations & mappers
● ROM session with state ...
Axiom
Relational algebra (RA) abstraction (gem)
relation = Axiom::Relation.new(
[[:id, Integer], [:name, String]],
[[1, 'J...
Axiom adapters & gateways
● Adapters — слой логики взаимодействия с ресурсами —
бд, yaml, xml...
● Gateways — прокси слой,...
ROM relations & mappers
● Relation берет данные из Gateway
● Генерит из данных объекты с помощью mapper
ROM session with state tracking
● Обертка над ROM relations — перегруженные
CRUD методы
● State tracking, однако ж пока бе...
Еще бед и плюшек
● Нет UoW как такогого
● Нет нормальной поддержки RDBMS
● Нет стандартного интерфейсов между слоями
● Ест...
Еще бед и плюшек
● Все слои независимы друг от друга (туча
отдельных реп на Github)
● По уверениям, классный генератор SQL...
Источники
● http://solnic.eu/2013/08/26/a-closer-look-at-how-ruby-object-mappe
● http://rom-rb.org/roadmap/
● https://gith...
Спасибо за внимание! =)
Upcoming SlideShare
Loading in …5
×

Rom и его составляющие

307 views
196 views

Published on

Ознакамливающая с ROM презентация с кратким описанием архитектуры гема + краткое описание его составляющих частей

Published in: Technology
6 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
307
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
6
Likes
2
Embeds 0
No embeds

No notes for slide

Rom и его составляющие

  1. 1. Ruby: ROM и его составляющие Алексей Микка
  2. 2. ROM — Ruby Object Mapper
  3. 3. Зачем он нужен, если есть ActiveRecord? Ну в Java же есть...и в .Net
  4. 4. ROM стек состоит из: ● Axiom relations ● Gateway proxies with adapters ● ROM relations & mappers ● ROM session with state tracking
  5. 5. Axiom Relational algebra (RA) abstraction (gem) relation = Axiom::Relation.new( [[:id, Integer], [:name, String]], [[1, 'John'], [2, 'Jane']] ) # now we can do lots of RA operations, like for example restrict and sort user_tuple = relation.restrict(name: 'Jane').sort_by(:name).to_a.first user_tuple # => [2, 'Jane']
  6. 6. Axiom adapters & gateways ● Adapters — слой логики взаимодействия с ресурсами — бд, yaml, xml... ● Gateways — прокси слой, который направляет данные либо сразу в бд, либо к Axiom Relations
  7. 7. ROM relations & mappers ● Relation берет данные из Gateway ● Генерит из данных объекты с помощью mapper
  8. 8. ROM session with state tracking ● Обертка над ROM relations — перегруженные CRUD методы ● State tracking, однако ж пока без UoW
  9. 9. Еще бед и плюшек ● Нет UoW как такогого ● Нет нормальной поддержки RDBMS ● Нет стандартного интерфейсов между слоями ● Есть конфиг для vagrant
  10. 10. Еще бед и плюшек ● Все слои независимы друг от друга (туча отдельных реп на Github) ● По уверениям, классный генератор SQL и оптимизатор SQL, но это больше относится к Axiom
  11. 11. Источники ● http://solnic.eu/2013/08/26/a-closer-look-at-how-ruby-object-mappe ● http://rom-rb.org/roadmap/ ● https://github.com/rom-rb/rom ● https://github.com/dkubb/axiom ● Исходные коды гемов axiom, rom, axiom-memory-adapter, rom-relation, rom-session, axiom-do-adapter
  12. 12. Спасибо за внимание! =)

×