This message was imported from the Ruby/Rails Modularity Slack server. Find more info in the import thread.
Message originally sent by slack user U7213XMGS3H
Are there any moderately sized open source rails codebases out there that could offer public example cases for modularization. I’d love to see a collection of 20 min screencasts of how different folks would modularize a feature with different and techniques
Spree Commerce: Spree is an open-source e-commerce solution built with Ruby on Rails. It’s highly customizable and used by many online retailers to create their e-commerce websites. The codebase is quite large and complex, making it a good resource for studying a large Rails application.
a. GitHub Repository: spree/spree
GitLab: GitLab is a web-based Git repository manager that provides source code management (SCM), continuous integration, and more. It’s a large and comprehensive application that’s built with Ruby on Rails.
a. GitHub Repository: gitlabhq/gitlabhq
Redmine: Redmine is a flexible project management web application that’s built with Ruby on Rails. It’s widely used for issue tracking, bug tracking, and project management.
a. GitHub Repository: redmine/redmine
Discourse: Discourse is an open-source discussion platform, commonly used for community forums and online discussions. It’s built using Ruby on Rails, and its codebase is substantial.
a. GitHub Repository: discourse/discourse
Forem: Forem is a platform for hosting discussion communities, and it’s the software that powers DEV, a popular community for programmers. It’s built with Ruby on Rails.
a. GitHub Repository: forem/forem
Solidus: Solidus is another e-commerce platform built with Ruby on Rails. It’s a fork of Spree and focuses on flexibility and customization.
a. GitHub Repository: solidusio/solidus
<@U737QIBNBNV> I’m particularly interested in example code that sort of represents the median old-ish rails app and some of the pathologies that tend to come up
Well, that’s the thing @stephan, I haven’t seen this process all the way through before on a big rails app, and that’s part of why i want to see how others would think about going about it. but I think:
• i’d want to look at the model dependency graph and just get a feel for the starting point
• then probably chuck stuff into packs with no regard for any violations
• then set up some kind of layers and address those violations
• then try to establish dependencies and slowly figure out those violations
…
• public apis
I think what I’m reaching for is a common system that people can use a reference when talking about this because we’re all working in private codebases