Category Archives: Layer

Validating Architecture through LINQ Query

These days we are restructuring the NDepend code base to make it more suited to welcome future features implementation. Here is below the new architecture of the NDepend.UI assembly, made of around 50.000 lines of code, shown through a Dependency Structure … Continue reading 

Also posted in C#, Code Dependency, Code Query, Code Rule, code structure, Code visualization, CQLinq, Dependency Matrix, LINQ, namespace, namespaces, NDepend, Pattern, Patterns, Performance | 2 Comments

The beauty of Evolutionary Design and Levelization

Just a quick blog post to present a very concrete occurrence of Evolutionary Design + Levelization in action. I just stumbled on this occurrence after many days of large-scale refactoring. It was like the ice on the cake that concludes … Continue reading 

Also posted in Acyclic componentization, Code Dependency, code organization, code structure, Component, Dependencies, Dependency Cycle, Dependency Matrix, namespace, NDepend | 3 Comments

Identify Code Structure Patterns at a Glance

Normal 0 21 false false false FR X-NONE X-NONE I think that caring for dependencies is the best thing you can do to make your program maintainable and to fight against complexity. I’d like here to provide some tips to … Continue reading 

Also posted in Acyclic componentization, complexity, coupling, Cycle, Dependencies, DSM, high cohesion, Indirect Dependency, matrix, Patterns | 4 Comments

Re-factoring, Re-Structuring and the cost of Levelizing

I think there is a clear distinction between re-structuring and re-factoring code. This is because of the nature of the OOP code which is made of 2 distinct artifacts: methods’ bodies and fields on one hand, and methods’ declarations, types’ declarations, namespaces’ declarations on the … Continue reading 

Also posted in .NET assemblies, Acyclic componentization, Afferent Coupling, Graph of Dependencies, Layering, Maintainability, Partitioning, re-engineering | 8 Comments

Layering, the Level metric and the Discourse of Method

When we are discussing the architecture of a code base, we often qualify a piece of code with terms such as high level and low level. This is common vocabulary and we all intuitively know what does it means. A piece of code … Continue reading 

Also posted in .NET assemblies, Afferent Coupling, Application wide, Code metrics, code organization, CQLinq, DAG, Dependency Cycle, Layering | 2 Comments