+++
title = "Maintainability Index"
weight = 770
tags = ["C/AL"]
categories = ["Best Practice"]
+++
[Maintainability Index][anchor0]: Do not write functions that have a very low maintainability index. This makes the code hard to maintain.

Bad code

    Any procedure / trigger that has a maintainability index < 20  
      
    

Good code

    Any procedure / trigger that has a maintainability index >= 20\.
    The Maintainability Index is computed as a function:
        - Lines Of Code (inverse proportional)
        - the Halstead Volume
        - Cyclomatic Complexity (inverse proportional).

More info

* [Halstead Volume][anchor1]
* [Cyclomatic Complexity][anchor2]

Bad code

    Any procedure / trigger that is > 100 lines of code  
      
    

Good code

    Any procedure / trigger that is <= 100 lines of code.
    A full C/AL Statement counts as 1 line of code



[anchor0]: http://blogs.msdn.com/b/codeanalysis/archive/2007/11/20/maintainability-index-range-and-meaning.aspx
[anchor1]: http://en.wikipedia.org/wiki/Halstead_complexity_measures
[anchor2]: http://www.aivosto.com/project/help/pm-complexity.html
