Layers - Logical seperation vs physical
Posted
by
P.Brian.Mackey
on Programmers
See other posts from Programmers
or by P.Brian.Mackey
Published on 2012-04-20T12:37:05Z
Indexed on
2012/11/15
5:09 UTC
Read the original article
Hit count: 226
c#
|architecture
Some programmers recommend logical seperation of layers over physical. For example, given a DL, this means we create a DL namespace not a DL assembly.
Benefits include:
- faster compilation time
- simpler deployment
- Faster startup time for your program
- Less assemblies to reference
Im on a small team of 5 devs. We have over 50 assemblies to maintain. IMO this ratio is far from ideal. I prefer an extreme programming approach. Where if 100 assemblies are easier to maintain than 10,000...then 1 assembly must be easier than 100. Given technical limits, we should strive for < 5 assemblies. New assemblies are created out of technical need not layer requirements.
Developers are worried for a few reasons.
A. People like to work in their own environment so they dont step on eachothers toes.
B. Microsoft tends to create new assemblies. E.G. Asp.net has its own DLL, so does winforms. Etc.
C. Devs view this drive for a common assembly as a threat. Some team members Have a tendency to change the common layer without regard for how it will impact dependencies.
My personal view:
I view A. as silos, aka cowboy programming and suggest we implement branching to create isolation. C. First, that is a human problem and we shouldnt create technical work arounds for human behavior. Second, my goal is not to put everything in common. Rather, I want partitions to be made in namespaces not assemblies. Having a shared assembly doesnt make everything common.
I want the community to chime in and tell me if Ive gone off my rocker. Is a drive for a single assembly or my viewpoint illogical or otherwise a bad idea?
© Programmers or respective owner