Difference between revisions of "Code Quality"

From Apache OpenOffice Wiki
Jump to: navigation, search
(adding links to static source code analysis of the Office)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This wiki page contains resources to support high quality coding for Openoffice.org. It is about the '''design''' and '''implementation''' phases of developing software. Or you could say about "preventive quality assurance".  
+
This wiki page contains resources to support high quality coding (design and implementation) for OpenOffice.org. It shall support "preventive quality assurance": Coding such that as few as possible defects are introduced, instead of finding them later.
 
+
  
 
== References ==
 
== References ==
 +
''Resources that can be used as references.''
 
=== [[Coding Standards]] ===
 
=== [[Coding Standards]] ===
 
* [[Cpp Coding Standards|C++ Coding Standards]] - the commonly agreed on standards when coding for OpenOffice.org in C++
 
* [[Cpp Coding Standards|C++ Coding Standards]] - the commonly agreed on standards when coding for OpenOffice.org in C++
 +
* [[Writer Code Conventions]] - additional conventions agreed upon by the Writer Team. It might service as a basis for other Teams (or be added to the general [[Cpp Coding Standards|C++ Coding Standards]], if that makes sense).
 
* [[Perl Coding Standards]]
 
* [[Perl Coding Standards]]
  
Line 12: Line 13:
  
 
== Education ==
 
== Education ==
 +
''Resources for learning.''
 
=== Books ===
 
=== Books ===
 
==== Programming in C++ ====
 
==== Programming in C++ ====
Line 24: Line 26:
 
==== Object Oriented Methods and Languages ====
 
==== Object Oriented Methods and Languages ====
 
* [http://www.cetus-links.org Cetus Links]<br>Huge collection of links about all major programming languages and object orientation. A standard resource!  
 
* [http://www.cetus-links.org Cetus Links]<br>Huge collection of links about all major programming languages and object orientation. A standard resource!  
 
  
 
== Research ==
 
== Research ==
 +
''Various resources that may give ideas for further exploration.''
 +
==== Defect Prevention ====
 +
* [[Defect Prevention]]
 +
 
==== Code Reviews ====
 
==== Code Reviews ====
 
* [[Code Reviews]]
 
* [[Code Reviews]]
 
 
 
  
 
== OpenOffice.org Code Exploration ==
 
== OpenOffice.org Code Exploration ==
 +
''Analysis of OOo's existing code base.''
 
* [[Architecture/Source_Code_Inventory|The Source Code Inventory project]] tries to statically analyze OpenOffice.org code to evaluate its overall quality, find dead and duplicate code and remove unnecessary or circular dependencies
 
* [[Architecture/Source_Code_Inventory|The Source Code Inventory project]] tries to statically analyze OpenOffice.org code to evaluate its overall quality, find dead and duplicate code and remove unnecessary or circular dependencies
 
* [http://oopp.multiracio.com/ OpenOffice++] is a project that has done static source code analysis on several versions of OpenOffice.org. There exists a general [http://oopp.multiracio.com/downloads/Riport.pdf report] and detailed data may be available [http://www.frontendart.com/ooomo.php here].
 
* [http://oopp.multiracio.com/ OpenOffice++] is a project that has done static source code analysis on several versions of OpenOffice.org. There exists a general [http://oopp.multiracio.com/downloads/Riport.pdf report] and detailed data may be available [http://www.frontendart.com/ooomo.php here].
  
 +
== Links to Related Topics ==
 +
''Related topics not exactly in the scope of this page.''
 +
* Child Workspaces: [http://tools.openoffice.org/dev_docs/child_workspace_policies.html CWS Policies]
 +
* Specifications: [http://wiki.services.openoffice.org/wiki/Specification_Template Template for writing specifications]
 +
* Using UNO: [http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html Developers Guide]
  
  
== Links to Related Topics ==
+
[[Category:Coding Standards]]
* [http://tools.openoffice.org/dev_docs/child_workspace_policies.html Child Workspace policies]
+
* [http://wiki.services.openoffice.org/wiki/Specification_Template Template for writing specifications]
+

Latest revision as of 12:09, 28 March 2010

This wiki page contains resources to support high quality coding (design and implementation) for OpenOffice.org. It shall support "preventive quality assurance": Coding such that as few as possible defects are introduced, instead of finding them later.

References

Resources that can be used as references.

Coding Standards

Refactoring Guidelines


Education

Resources for learning.

Books

Programming in C++

Herb Sutter, Andrei Alexandrescu - "C++ Coding Standards"
A very useful definitive book about high quality C++. Summarizes the professional experience of the most recent years (in 2005). Includes much content of the following books in a tightened form.
Scott Meyers - "Effective C++" and "More Effective C++"
Famous classic about all that C++ rules necessary, but often not in the tutorials.
Herb Sutter - "Exceptional C++", "More Exceptional C++" and "Exceptional C++ Style"
Gathers articles (in the form of little exercises with solutions and comments) to various issues in C++ programming, including for example exception safety, inheritance, generic programming pitfalls and "what is wrong about std::string?".

Code Improvement

Martin Fowler - "Refactoring"
Shows many typical error prone patterns/phenomena in source code. Provides technically exact ways to improve them without changing the semantics of the code.
The examples are in Java but easily transferable to similar programming languages.

Links

Object Oriented Methods and Languages

  • Cetus Links
    Huge collection of links about all major programming languages and object orientation. A standard resource!

Research

Various resources that may give ideas for further exploration.

Defect Prevention

Code Reviews

OpenOffice.org Code Exploration

Analysis of OOo's existing code base.

  • The Source Code Inventory project tries to statically analyze OpenOffice.org code to evaluate its overall quality, find dead and duplicate code and remove unnecessary or circular dependencies
  • OpenOffice++ is a project that has done static source code analysis on several versions of OpenOffice.org. There exists a general report and detailed data may be available here.

Links to Related Topics

Related topics not exactly in the scope of this page.

Personal tools