Technology Stack

Architecture
  • Frameworks
  • Loose coupling
  • Reusable components

 

Chief Software Architect Point of View
Smooth, fast, enjoyable and error/bug defended process of development of software is possible when right architecture selected. Frameworks are a basis of fast and bug free software creation. All products share 2 frameworks, one is an application framework providing SOA. It contains a service providers registry, a component factory, base services and set of reusable utilities. Second framework  plays a similar role for creation of web applications. It can use also the application framework for creation multi services web applications. Supporting MVC helps developers separate presentation and business logic.  Using frameworks free developers and designers from thinking about details of life cycle of component, allowing dedicate more time on implementation of functionality. The frameworks are not over complicated, and do not sacrifice 90% of complexity in favor of 1% of functionality. Used approach considers that in case of 1% required functionality can be done in custom code without heaving of frameworks. An interface driven design also allows to replace parts of frameworks easily by more robust or smarter implementations.  Commonly, entire architecture is based on using light weight components, keeping just minimal required functionality, and leaving anything extra on usage of a custom code. As was stated above an interface driven design and a loose coupling allows create very different configurations based on set of replaceable and reusable light weight components.

7Bee is a sort of exception because doesn't use any framework. It's done to make it very light weight, however it uses fundamental principles and built using SOA. It used as a build tool for all other projects.

All other projects share the same application framework. Web applications like jAddressBook, ChatHouse, Tree View, and other small demo web projects. Tree View itself shared by all web interfaced projects.