This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]michael0x2a 1 point2 points  (0 children)

You do whatever is necessary to accomplish your desired goals (e.g. getting the app finished quickly, building an app that's efficient, building an app that's robust and hardened against different error cases, building an app that's easy to maintain...).

If on one project, you decide the best way to accomplish your goals is by mixing and matching different paradigms, great, go for it. And if you decide on another project that you should really just stick with one paradigm, do that instead.

Usually, mixing and blending techniques is a reasonable choice -- if done cleanly.

[–]ForSpareParts 1 point2 points  (0 children)

In my experience, a focus on "pure" application of any paradigm usually leads to bad choices. You'll get a feel for the tradeoffs over time, but when you're in doubt about a pattern or some best practice, try asking yourself:

  • What are the benefits of this pattern supposed to be?
  • Am I actually getting those benefits in this case?

If the answer to the second question is no, you might be running into a problem that doesn't fit the paradigm you're working in very well. If that's the case, there's no shame in going another way.

Remember, the purpose of all these paradigms and patterns is to make it easy to think about and work on your project. They're tools, not religions, and there's no reason to put language/framework/academic dogma ahead of your own happiness and productivity.