Hacker News new | ask | show | jobs
by bobkazamakis 1432 days ago
Focus on how you wish to share your code, and what features you need to deliver. If you're developing multiple small applications, it might make sense to build some re-useable core libraries after you've assembled the first one (do it too early and you'll be trying to 'bake an apple pie from scratch').

Need variations and reuseble front-end components? Package em up and take advantage of es modules.

Need to share common business logic? Package it up and share ruby modules.

At a certain point, you'll find domain boundaries within these, and be able to split them based on their use (delegate authN/Z to an sso "service").

Microservices (when not taken to an extreme) help build a pathway to re-useable code, much like TDD helps you write code that doesn't abuse side-effects, static classes, etc.

Don't split them out too early or you'll spend all your time keeping all these dependencies in parity - don't want to serve a raw steak or a burnt one.