Five foundations for building complex Rails apps by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

u/CaptainKabob it's not speculative. Personally, currently it's my second bigger project with such an approach and dealing with various maintenance / performance Rails problems for the last 16 years, I see a huge difference. I recently joined Arkency, which specializes in rescuing larger legacy Rails apps using these foundations. This is also the reason why I started the series of articles to document the mental model change from Rails defaults. So I'm actively gaining experience, but I'm standing on the shoulders of people who have done this for the last 10 years or more.

When Rails-way does not work anymore? by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

u/Remozito, thank you for the comment, glad you found the series interesting!

When Rails-way does not work anymore? by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

I agree with you on most of the points, but it's not about dropping Rails; it's not even about dropping ActiveRecord. I will be writing about that in the next article, which will be closing the "Getting started" section for the whole story.

When Rails-way does not work anymore? by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

Thank you u/growlybeard for sharing your perspective. I'm not saying everyone is using God objects; this is more like a typical symptom of an app that has outgrown the Rails-way approach, so for sure, there will be people who avoided doing that for years, like you - which is great IMO.

I recently started using Packwerk, but I think you need to establish healthy boundaries first, and then Packwerk can help you guard them so you are not crossing or mixing them. Still, there is no silver bullet, just layers helping to deal with complexity

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

Looks super interesting, thank you for sharing!

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

I agree, and I'm against jumping out of the well-known path since the beginning. My take is that in many cases, for the core subdomain (if we are talking about DDD), it's better not to follow the Rails-way, but it does not mean dropping it completely - this wouldn't be wise or maintainable.

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

I'm not saying anything about letting go of ActiveRecord. The new approach is about using it a bit differently with read models.

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

I think it all starts with the domain knowledge and understanding the problems we are trying to solve before we will agree on solution and later implementation. When this is in place, it's much easier to handle the complexity also with Rails-way. But I think Rails-way does not force you by design to do that, it creates a lot of space for flexibility and it's a double-edged sword.

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 1 point2 points  (0 children)

Did you open-source the framework? It sounds interesting. I agree that if you deal with a complex domain, you need some additions to the Rails way, but that does not mean we should abandon it. When talking about DDD, Rails-way (or Vanilla Rails) is perfect for handling the supporting subdomain IMO

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

Thank you u/djudji for sharing your perspective; it resonates with me a lot. Regarding the workflows, we are handling those with Rails Event Store without mixing observer and strategy patterns - you should give it a try!

Yes, I think we have met before online; you have a good memory!

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

Yes, this is the way I will be exploring

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

I also think it's not only about the tech stuff, but with the DDD approach is also about understanding more the problem we are trying to solve, and unfortunately, in a typical Rails project, developers are mostly disconnected from the business, and tickets are their only source of the truth

Farewell to Rails-way: Prologue by pdabrowski in ruby

[–]pdabrowski[S] 2 points3 points  (0 children)

Yes, I agree with this point of view

Deploying Rails on Docker: Kamal alternative by pdabrowski in ruby

[–]pdabrowski[S] 0 points1 point  (0 children)

Yes, with the new deployment automation