Avalanche was designed in a way that it makes it possible (easier for you) to write good unit-tests for your code. That is not only making it easy to write tests. A unit-test should:

Mostly every framework claims that some kind of reusability is one of their design goals. Avalanche “reusability” goals means source-code reusability.

Many frameworks provide some mechanisms for reusable/plugable sub-applications however it is not always easy to re-use these applications source code in case you need to configure/modify it. Plugable applications is also a very important feature but as of now Avalanche has no support for that.

It should not only be possible to write reusable code, the code should be reusable on the first time you write it. You should not be advised to write the code in one way, and than later have to modify it to make it reusable. I.e. it is opposed to saying “Use view (handler) functions”. And than... “if you want your views to be re-usable convert them to class-based views!”.

Of course Avalanche does not do miracles. Testability and reusability will ultimately depends on the application code. But the framework have a big role on setting up the right path.

The goals are presented below, hopefully after reading the design and tutorial it will be clear to you how these goals are achieved.