- Description has changed:

Diff:

~~~~

--- old
+++ new
@@ -11,7 +11,7 @@
 - Replace legacy data structures such as lists with STL std::vector 
(prefered), std::list etc.
     - Change SU::list_of_susi and SI:: list_of_sisu to std::vector [#1234] 
HansN
    -
-
+- Replace internal use of SaNameT with std::string
 - Use std::maps instead of Patricia trees.
 - Reduce duplicate code.
 - Improve cyclomatic complexity (McCabe) numbers.

~~~~




---

** [tickets:#1520] AMF: Refactoring for 5.0**

**Status:** unassigned
**Milestone:** 5.0
**Created:** Tue Oct 06, 2015 11:08 AM UTC by hano
**Last Updated:** Tue Oct 06, 2015 11:19 AM UTC
**Owner:** hano


This is a 5.0 ticket for continue code re-factoring of the AMF service for 4.6. 
The work started with #94 in 4.4
and continued in #713 in 4.5 and #1142 in 4.6.
This ticket is to continue the work started in #94, #713 and #1142 to get
a more maintainable, understandable and testable code base.
We should aim for many small changes instead of few big ones.
The Google C++ Style Guide is to be followed and Google's cpplint to be run on 
the code base.

An ordered list, (highest priority first), of things to work on, for each task 
sub tasks
can be added together with a separate ticket:

- Replace legacy data structures such as lists with STL std::vector (prefered), 
std::list etc.
    - Change SU::list_of_susi and SI:: list_of_sisu to std::vector [#1234] HansN
   -
- Replace internal use of SaNameT with std::string
- Use std::maps instead of Patricia trees.
- Reduce duplicate code.
- Improve cyclomatic complexity (McCabe) numbers.
- Simplify conditional statements.
- Reduce the amount of 'nesting' in the code
- Split up long functions into smaller ones doing one things and not many.
- Convert model derived C structs to classes and change functions into methods.
- Use bool which is a native type in C++ (and remove SaBoolT)
- Write unit-test when refactoring code into units.
- Reduce number of casts in the code (introduced because of C++ files)
- Remove use of EDU and do direct encode/decode
- Change macros to (inline) methods
- Use design patterns where appropriate.
- Change bit fields (flags) to boolean attributes (see 
https://sourceforge.net/p/opensaf/tickets/717/#d4b2)
 
**Investigations that can be done:
**- Use Boost libraries that requires only the boost header file, e.g 
multiindex.
- Introduce two builds, debug and product, e.g debug build can be used for 
various support during development, e.g. defensive programming , additional 
compiler options, e.g. -Weffc++ , etc.
- Investigate if pointers in data structure can be changed to a class 
(owns/uses relationships) that maintains referential integrity in the internal 
data structures.
**Non C++ related changes:
**- Use UML, (which tool?) to document parts of the design, sequence diagrams, 
state charts, etc.



---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports 
Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911&iu=/4140
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to