每个命名空间分支的理想数量的类

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)


cyn*_*man 8

使用现代IDE和其他开发工具,我会说如果所有类都属于命名空间,那么为了可维护性,没有任意数字可以分解命名空间.

  • .Net框架作为一个整体,只有5k类型的东西?这就是在一百个左右的名称空间中分解的 (3认同)