Hello RubyConf Malaysia! Thanks for exploring functional Ruby with us! Want to learn more? Here are some resources to get you started.
Slides
Real-world Functional Ruby, Thursday 12th October, 2017
Resources
- dry-rb documentation
- dry-rb on GitHub
- rom-rb documentation
- rom-rb on GitHub
- roda documentation
- roda on GitHub
- Hanami
- Trailblazer
rom-rb is very close to its 4.0 release right now, so if you'd like to explore it, please go ahead and install the release candidates: gem install rom rom-sql --pre.
Open source examples
Check out dry-rb/dry-web-blog for our work-in-progress example app using the dry-rb gems. We're developing this gradually, pull request by pull request, so watch the repository and you'll be able to follow along and even chime in if you have questions or thoughts.
For a slightly more developed app, you can also check out icelab/berg, which is the code behind the Icelab company website. This one's a little bit stale now, but it should hopefully give you some ideas about how everything fits together.
Further reading
Tim started a small blog series last year about “next-generation” Ruby apps, which explored how he started and explains in more detail some of the principles covered in the talk.
- My past and future Ruby
- Inactive records: the value objects your app deserves
- Functional command objects in Ruby
- Effective Ruby dependency injection at scale
- Better code with an inversion of control container
- A change-positive Ruby web application architecture
- Put HTTP in its place with Roda
- A conversational introduction to rom-rb
- Conversational rom-rb, part 2: types, associations, and update commands
There are also others in the community who've been thinking and blogging about a functional approach to Ruby. A couple of good recent posts:
- The Pure Function As An Object (PFAAO) Pattern, Tom Dalling
- Refactoring From Inheritance To Composition To Data, Tom Dalling
- Embracing Functional Programming in Ruby, Kelly Sutton
Other talks
To learn more about rom-rb 4.0, check out Piotr Solnica's talk from RailsClub this year:
Get involved!
Questions? Join our friendly dry-rb chat and rom-rb chat. We’d love to see you there!