Naali Dependency Policy
From Rex community wiki
Selecting Library Classes
The following is the policy regarding selection of library classes within Naali.
As Naali is an application written in C++ and Qt, preference should be made for classes that exist already within the C++ standard or within Qt:
- When modifying an existing module, preference should be made for re-using the same classes already found within the module.
- When adding new functionality, standard C++ or Qt should be preferred to custom-made classes, or those from other libraries such as PoCo or Boost.
- When adding new functionality, standard C++ should be preferred to Qt classes where the functionality is comparable.
- Objects should be QObjects where beneficial or appropriate; such as classes that act as a model which might be exposed via reflection to interested observers.
- Objects should use Qt slots/signals and other Qt features where it is beneficial or appropriate; such as interacting with Qt GUI or other Qt utility classes.
- Functionality from custom or outside classes that duplicate Qt functionality can be introduced with rationale why the customer or outside class is superior or necessary.
Exceptions
- Classes which are in Boost and are likely to become standardized within C++ itself may be considered the same as "standard C++". When they become standardized, they should be migrated from boost to std name spaces.
Licensing
- Licensing and Copyright declarations cannot be removed from 3rd-party code. If a new license is included as part of a code drop, it must be added to the root directory in version control.
|