Hanami in Production @ Hanami User Group SP

Preview:

Citation preview

in production?

?why

”What's this application do?”

”Why should the top level directory structure communicate that information?”

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin (https://www.youtube.com/watch?v=WpkDN78P884)

”The web is a detail”

”The web is a delivery mechanism!”

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin (https://www.youtube.com/watch?v=WpkDN78P884)

Back in October/2015 – Hanami was called Lotushttp://hanamirb.org/blog/2016/01/22/lotus-is-now-hanami.html

Starting up a Proof of Concept

The selection• Hanami Model• Repositories• Entities• Object Mapping• Sequel abstraction

• Hanami Validation• Input Filtering• Input Validation

The Requirement

• Asset Pipeline• ERB-like Views• Javascript helpers

We’re asked to keep Rails under the hood due frontend requirements

The Plan

PoC’s Final PresentationThe idea was gain the ”green card” from our tech team to starting the project with this structure

https://github.com/hlegius/hanami-rails-as-frontend

Right after* PoC’s approval

All frontend-related stuff goes to

applications

Actually, it was 5-7 days after PoC’s approval =P

Release v0.99

=> /web

Form Objects

Grape gem

JSON API Spec Representation

Hanami Validations

Domain Model(Hanami Model)

DDD Boundaries(Infra & Application layers)

Rake Tasks

in production! <3

Rails autoloading Hell

http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/

After 7 months, Rails decided to demand attention

Good bye Rails; Hello Hanami (again)

Changes applied in Production env in 5 working days

Final considerations• Your team must be engaged and

accept the adoption• You can not do this alone! (read it

multiple times)

• PoC is a game changer• Practice; Practice; Practice*

• Hanami v0.7.3 is not ready for production, they say.

* The Passionate Programmer - Chad Fowler – The Pragmatic Bookshelf

Thank you!

@hanamirb

http://hanamirb.org

@hanamirb_sp Presented by @hlegius

Recommended