热贴转:对Spring抱怨

一个老外对Spring过长的API名称引起反感:
AbstractBeanFactoryBasedTargetSourceCreator ContextSingletonBeanFactoryLocator
AspectJAdviceParameterNameDiscoverer UserRoleAuthorizationInterceptor
TransactionAwarePersistenceManagerFactoryProxy SQLStateSQLExceptionTranslator
SimpleBeanFactoryAwareAspectInstanceFactory

写了一篇博客:
http://fiber-space.de/wordpress/?p=1016
作者认为:Spring有 1943行代码 ,而遵循Jee6的glassfish3 只有450.
认为Spring有违背软件工程最佳实践software engineering best practices。

这篇文章引起轩然大波,讨论今天还正在不断进行中.....
Spring自身也陷入了重量和轻量(heavyweight vs. lightweight )的是非之中了。

其实,类名取名真的很重要,就象人名一样,中国人还从周易五行来取名呢,说明,名可名,非常名啊。类名反映设计者的设计水平,如果一个类不能用一个简单名词说清楚,就表示设计有复杂之嫌疑,没有能够很好地进行切分 松耦合。

有一个讨论者把Spring冗长名词翻译成中文:
AbstractBeanFactoryBasedTargetSourceCreator ContextSingletonBeanFactoryLocator AspectJAdviceParameterNameDiscoverer UserRoleAuthorizationInterceptor TransactionAwarePersistenceManagerFactoryProxy SQLStateSQLExceptionTranslator SimpleBeanFactoryAwareAspectInstanceFactory

Another natural language might help, e.g.

摘要豆厂的靶源造物主,语境独豆厂定位,AspectJ告参数名发现者,用户角色授权拦截,交易意识持久管理厂代理,Sql状况Sql异常翻译,简豆厂意识方面例厂
[该贴被banq于2009-07-21 16:56修改过]

>>作者认为:Spring有 1943行代码 ,而遵循Jee6的glassfish3 只有450.
1943个类和接口吧,怎么可能只有这么多行。。。

个人认为包名可以代表一定程度的API名称,所以单个的API名称如果可以根据这个原则缩短,那么就应该尽量缩短。更多的字符需要更多的辨识时间(至少对人而言),更多的疲劳和误读。

命名,我欣赏Effective Java和jQuery;
尤其是jQuery,命名现在尽量靠近jQuery,简洁明了;