What is StaccatoCommons?
Staccatocommons is a FLOSS project that provides libraries to extend and integrate existing Java frameworks in order to fill their gaps and unificate abstractions, focusing on productivity and maintainability, in a full object oriented way and using functional programming techniques.
StaccatoCommons follows some design guidelines, which all its code must observe:
- Java-centric. StaccatoCommons is written in pure Java, and it does not define nor use configuration files.
- Object Oriented. StaccatoCommons offers object oriented solutions - or solutions that explode objected orientation as much as Java can offer - and is implemented using the same techniques and design concepts.
- Functional. StaccatoCommons solutions make use of techniques and concepts taken from functional programming. It encourages immutable objects, pure code - without side effect - messages, laziness, and higher order programming using function-like objects.
- Generic. StaccatoCommons intesively uses Java Generics
- Rich, fluent interfaces. StaccatoCommons classes and interfaces maximize the amount of useful, fluent methods exposed, in order to make client code cleaner and simpler. Complexity is not handled by client.
- DRY. StaccatoCommons libraries have ease of usage and code reuse as a priority, both for its implementation and the client code. It does not reinvent the wheel defining new interfaces and classes, when they are already there.
- Documented and Contract-First. StaccatoCommons codebase is fully documented using Javadoc and source annotations, focusing on well defining contracts between the apis and the client code.
- Pragmatic. StaccatoCommons is not a research project. It offers solutions that work.
- Staccatissimo - the core libraries of StaccatoCommons: exception handling, io, collections, lambdas, validations, and much more
- Legato - libraries that integrate many frameworks and environments, using Staccatissimo and StaccatoCons guidelines