soma.js version 2 has finally been released!
Even though it shares the same goals as the previous version, the version 2 is completely different.
What is soma.js?
The following might not ring a bell to everyone, but the only thing developers should care about is writing code that is maintainable. This is sort of an ultimate goal to reach. And sometimes, it can be really hard, even for seasoned teams of developers.
Why should you bother think about that? Well, because a maintainable code will require less work and allow your application to grow. It is that simple.
It will also make you much happier, trust me. Have you never a reach a point looking at your code: "It is really becoming messy now, this will be a nightmare...". So you know what I'm talking about?
In all successful and maintainable structures, these smaller pieces probably have a common point: they have very small number of dependencies. In other words, these smaller pieces can work on their own and don't know about the application itself. They can be swapped, interfaced. They are meant to do a single job, nothing more, and have no idea what other elements will do with it. They are put together, moved, refactored, enhanced, and so on.
What is different in soma.js?
They all had the same goal: make your developer life easier.
People are talking about their framework of choice, what is good and what is not. Some famous developers offering solutions to solve problems in more effective ways. And so on.
In different languages, I saw something happen. All these highly-coupled code problems, dependencies, non-maintainable code issues, and framework fights, got a solution that has been a revelation for a lot of developers: dependency injection.
Of course, I'm not saying that dependency injection is a solution for everything and should be used everywhere. But where complexity lies, I'm a strong believer in dependency injection. I also think that it has been a turn in a lot of developers' carrier. It is helping, it is pretty, it is simple. You can find literally thousands of blog posts talking about its benefits, in various languages.
That is what soma.js version 2 brings: dependency injection.
How does it look?
I've spent a lot of time explaining the what, why and how. A site is available with tons of examples, guidelines to follow, what is dependency injection, and so on.
Hope that will help some of you having a better time with your own code!