pet*_* k. 11 c# grouping namespaces
您认为每个命名空间"分支"的理想数量是多少?人们会决定将一个名称空间分成多个名称空间?我们不讨论类的逻辑分组(假设它们在逻辑上被正确分组),在这一点上,我将重点放在可维护类和不可维护类的数量上.
Con*_*tin 27
"42?不,它不起作用......"
好吧,让我们的编程能力发挥作用,看看微软的意见是什么:
# IronPython
import System
exported_types = [
(t.Namespace, t.Name)
for t in System.Int32().GetType().Assembly.GetExportedTypes()]
import itertools
get_ns = lambda (ns, typename): ns
sorted_exported_types = sorted(exported_types, key=get_ns)
counts_per_ns = dict(
(ns, len(list(typenames)))
for ns, typenames
in itertools.groupby(sorted_exported_types, get_ns))
counts = sorted(counts_per_ns.values())
print 'Min:', counts[0]
print 'Max:', counts[-1]
print 'Avg:', sum(counts) / len(counts)
print 'Med:',
if len(counts) % 2:
print counts[len(counts) / 2]
else: # ignoring len == 1 case
print (counts[len(counts) / 2 - 1] + counts[len(counts) / 2]) / 2
Run Code Online (Sandbox Code Playgroud)
这为我们提供了每个命名空间的类型数量的以下统计信息:
C:\tools\nspop>ipy nspop.py
Min: 1
Max: 173
Avg: 27
Med: 15
Run Code Online (Sandbox Code Playgroud)
使用现代IDE和其他开发工具,我会说如果所有类都属于命名空间,那么为了可维护性,没有任意数字可以分解命名空间.