why hanami? @ 1º hanami sao paulo meetup
TRANSCRIPT
![Page 1: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/1.jpg)
WHY HANAMI?
By Matheus Cáceres
![Page 2: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/2.jpg)
![Page 3: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/3.jpg)
WHAT IS HANAMI?
![Page 4: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/4.jpg)
WHAT IS HANAMI?●Web Framework for Ruby
●Rack-Based
●Luca Guidi(Italy)
![Page 5: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/5.jpg)
WHAT IS HANAMI?●Router
●Model Repository
●Entity
●Validation
●Controller
●View
●Assets
●Mailers
●Utils
![Page 6: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/6.jpg)
Conteiner Clean ArchitetureIt can host several Hanami (and Rack)
applications in the same Ruby process.
![Page 7: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/7.jpg)
Performancehttps://gist.github.com/
jodosha/42a954b5ea3fcfc063f9
Action Template
Rails 1148.16 req/s
1027.73 req/s
Sinatra 2922.74 req/s
2207.73 req/s
Hanami 5018.70 req/s
4175.90 req/s
![Page 8: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/8.jpg)
Minimal gems dependency
![Page 9: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/9.jpg)
![Page 10: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/10.jpg)
POROEasily Testable
![Page 11: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/11.jpg)
Less magic
![Page 12: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/12.jpg)
Less magic
More objetcs
![Page 13: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/13.jpg)
Less magic
More objetcs
No monkey-patching
![Page 14: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/14.jpg)
Repository pattern for decoupling persistence
from business logic
![Page 15: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/15.jpg)
Eric Evans - Domain Driven Design
Repository pattern for decoupling
persistence from business logic
![Page 16: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/16.jpg)
Composition over inheritance
![Page 17: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/17.jpg)
Relations?
![Page 18: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/18.jpg)
WHY NOT?
![Page 19: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/19.jpg)
Thanks!
![Page 20: Why Hanami? @ 1º Hanami Sao Paulo meetup](https://reader034.vdocument.in/reader034/viewer/2022051706/58ef9b951a28ab7d2e8b4619/html5/thumbnails/20.jpg)
Questions?