1 mike 1.1
|
2 mike 1.2 1. Indent four spaces (not three and not tabs).
|
3 mike 1.1
4 2. Literals used (other than 0 or 1).
5
6 3. NULL used in several places.
|
7 mike 1.2
8 4. Put braces on their own lines like this:
9
10 if (condition)
11 {
12
13 }
14
15 Avoid this style:
16
17 if (condition) {
18
19 }
|
20 mike 1.3
21 5. Makedepend utility was made the default depend
22 utility on some platforms. The deafault should be
23 "mu depend".
|
24 mike 1.4
25 6. Regression tests should only print this:
26
27 "+++++ passed all tests"
|
28 mday 1.14
29 SOME TESTS TAKE A LONG TIME TO RUN AND NEED TO PRINT IMTERMEDIATE OUTPUT SO THE
30 DEVELOPER DOES NOT THINK THE TEST IS HANGED.
|
31 mike 1.4
32 Extraneous output should be removed.
|
33 mike 1.5
34 7. All defined constants must begin with "PEGASUS_".
35
36 8. All method must use the form myMethodName(). Many places
37 have my_method_name() (with underscores).
38
|
39 mday 1.14 9. Avoid use of (void). Use () instead. WHY?
|
40 mike 1.5
41 10. Either get rid of throw() declarations or use them
42 everywhere (perhaps they are not supported by some compilers).
43
44 11. Avoid indenting "private:", "public:" and "protected". Use this
|
45 mday 1.14 style: WHY?
|
46 mike 1.5
47 class X
48 {
49 private:
50 ...
51 public:
52 };
53
|
54 mday 1.14 12. Use "Type* x" rather than "Type *x". WHY?
|
55 mike 1.5
|
56 mday 1.14 13. Use "if (" rather than "if(". WHY?
|
57 mike 1.5
|
58 mday 1.14 14. Avoid use of spaces around the condition: WHY?
|
59 mike 1.5
60 if( cond )
61
|
62 mike 1.8 15. Keep all lines within 80 columns.
|
63 mike 1.5
|
64 mday 1.14 16. Build fails on many Linux system (threading support problems). WHICH ONES ?
|
65 mike 1.6
|
66 mike 1.8 17. SSL is the default on Linux (is this okay?).
|
67 mike 1.6
|
68 mike 1.8 19. Fix main logic (Unix v.s. Windows).
69
70 21. Get rid of CIMIndication class.
71
|
72 mday 1.14 22. Revise licensing headers on all files. BE CAREFUL NOT TO CHANGE LICENSE AGREEMENT
|
73 mike 1.6
|
74 mike 1.11 23. Add Log CVS directives.
|
75 mike 1.8
76 24. Avoid inlining of large functions.
77
|
78 mike 1.10 25. Find decent code formatter.
79
80 26. Revisit use of bit masks in provider interfaces.
|
81 mike 1.11
82 27. Revisit provider loading/manager etc.
|
83 mike 1.12
84 28. Consolidate CIMOM handles.
85
86 29. Get rid of directories containing .old extensions.
87
88 30. Use constant global queue ids as described in MessagQueue.h
|
89 mday 1.14 docs. USE META DISPATCHER TO FIND QUEUES. CONSTANT IDS LIMIT QUEUES
90 TO ONE OF EACH PREDEFINED TYPE.
|
91 mike 1.12
92 31. Is the Facade class necessary.
93
94 32. Response handler need not have to action methods (for single
|
95 mday 1.14 and multiple objects). WHY CREATE AN ARRAY OBJECT THAT WILL ONLY HOLD ONE CIM OBJECT?
96 TOO MUCH OVERHEAD. HAVING A DUAL INTERFACE IS AN IMPORTANT OPTIMIZATION.
|
97 mike 1.12
98 33. Clean up warnings on NT.
99
|
100 mike 1.13 34. Use Linkage.h files everywhere.
101
|
102 mday 1.14 35. Need to add notifiers (using message queue observer scheme). USE META DISPATCHER INSTEAD
|
103 mike 1.13
104 36. Need to define services's interface to CIMOM.
105
106 37. Finalize the client interface (SDK).
107
|