[vc_row][vc_column][vc_btn title=”SOFTWARE ELEGANCE” style=”flat” color=”black” i_icon_fontawesome=”fa fa-shield” add_icon=”true” link=”url:http%3A%2F%2Fdoc.casthighlight.com%2Fsoftware-elegance%2F|||”][vc_btn title=”CODE COMPLEXITY” style=”outline” color=”black” i_icon_fontawesome=”fa fa-code” add_icon=”true” link=”url:http%3A%2F%2Fdoc.casthighlight.com%2Fcategory%2Fproduct%2Findicators-methodology%2Fcode-insights%2Fsoftware-elegance%2Fcode-complexity%2F|||”][vc_empty_space height=”12px”][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text]
Why you should care
[/vc_column_text][vc_column_text]This code insight sanctions data accesses in operands having a too high level of indirection. The level of indirection is determined by the path you need to go through in order to get your data from an object (e.g. myObject.a.b.c.myData). Too many occurrences of this pattern generally decreases readability of the code, especially when indirection layer names are not meaningful. It may also reveal a lack of Oriented-Object encapsulation.[/vc_column_text][/vc_column_inner][/vc_row_inner][vc_empty_space height=”12px”][vc_empty_space][vc_single_image image=”5362″ img_size=”full”][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text]
CAST Recommendations
CAST recommends reducing the level of indirection when possible, whether by creating a variable that accesses to intermediate levels or by using Getters.
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/2″][vc_column_text color=”#dd3333″]
References
https://stackoverflow.com/questions/288623/level-of-indirection-solves-every-problem[/vc_column_text][/vc_column_inner][/vc_row_inner][vc_separator][vc_column_text]
How we detect
[/vc_column_text][vc_column_text]This Code Insight counts the level of indirection found in operands.[/vc_column_text][vc_empty_space][vc_row_inner][vc_column_inner][vc_single_image image=”5362″ img_size=”full”][vc_column_text]
About CAST and Highlight’s Code Insights
Over the last 25 years, CAST has leveraged unique knowledge on software quality measurement by analyzing thousands of applications and billions of lines of code. Based on this experience and community standards on programming best practices, Highlight implements hundreds of code insights across 15+ technologies to calculate health factors of a software.
[/vc_column_text][vc_empty_space height=”16px”][vc_btn title=”SEE FEATURES” style=”flat” color=”black” i_icon_fontawesome=”fa fa-desktop” add_icon=”true” link=”url:https%3A%2F%2Fwww.castsoftware.com%2Fproducts%2Fhighlight%2Foutputs-analytics||target:%20_blank|”][vc_btn title=”HOW IT WORKS” style=”outline” color=”black” i_icon_fontawesome=”fa fa-cog” add_icon=”true” link=”url:https%3A%2F%2Fwww.castsoftware.com%2Fproducts%2Fhighlight%2Fhow-it-works||target:%20_blank|”][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row]
Leave a Reply