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

  • 106 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
106
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
6
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ruby: ROM и его составляющие Алексей Микка
  • 2. ROM — Ruby Object Mapper
  • 3. Зачем он нужен, если есть ActiveRecord? Ну в Java же есть...и в .Net
  • 4. ROM стек состоит из: ● Axiom relations ● Gateway proxies with adapters ● ROM relations & mappers ● ROM session with state tracking
  • 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. Axiom adapters & gateways ● Adapters — слой логики взаимодействия с ресурсами — бд, yaml, xml... ● Gateways — прокси слой, который направляет данные либо сразу в бд, либо к Axiom Relations
  • 7. ROM relations & mappers ● Relation берет данные из Gateway ● Генерит из данных объекты с помощью mapper
  • 8. ROM session with state tracking ● Обертка над ROM relations — перегруженные CRUD методы ● State tracking, однако ж пока без UoW
  • 9. Еще бед и плюшек ● Нет UoW как такогого ● Нет нормальной поддержки RDBMS ● Нет стандартного интерфейсов между слоями ● Есть конфиг для vagrant
  • 10. Еще бед и плюшек ● Все слои независимы друг от друга (туча отдельных реп на Github) ● По уверениям, классный генератор SQL и оптимизатор SQL, но это больше относится к Axiom
  • 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. Спасибо за внимание! =)