热贴转:对Spring抱怨

09-07-21 banq
              

一个老外对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修改过]

              

crycz
2009-10-29 09:06

>>作者认为:Spring有 1943行代码 ,而遵循Jee6的glassfish3 只有450.

1943个类和接口吧,怎么可能只有这么多行。。。

javaonejcy
2009-10-30 10:49

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

jamesqiu
2009-12-07 13:49

命名,我欣赏Effective Java和jQuery;

尤其是jQuery,命名现在尽量靠近jQuery,简洁明了;