代码改变世界

读《锤子和钉子》有感

2012-07-03 14:36  ddback  阅读(1208)  评论(1编辑  收藏  举报

刚才在刘未鹏南方周末的专栏上看到一遍文章《锤子和钉子》(http://www.infzm.com/content/76918),写得挺深刻的。

文章里面提到了软件开发的工程中框架开发和业务开发的冲突,我在的工作中也会遇到。在实际工作中我这个公司是没有框架开发人员的,只有业务开发人员,但我们总监一直鼓励我们使用框架。前段时间我们做一个比较复杂的业务,整个业务流程下来很复杂,各种情况之间的关联程度很高,分支特别的多,总监为了规范公司的开发流程,决定在此次开发中使用一下框架,我们服务器端的组长提出了反对意见,认为这样干进度很难有保障,我们几个开发人员也是这么认为的,最后,总监给了一个妥协方案,业务部分不用框架,但与之相关的管理系统要使用框架。我们不用框架的理由是面对如此复杂的业务流程,往往要用到的关联数据是非常多的,而框架在这方面的处理能力相对较弱,如果你用过框架(hibernate,mybatis),在处理many to many, many to one, one to one这些关系有时候很是头疼, 有时候一句关联SQL就能解决的问题,到了框架中你不知道要建多少个model,要加多少个配置文件才行。

我也曾对设计模式很为迷恋,希望将更多的设计模式带到自己的代码中,但在实践中往往不是很如意,往往一个函数能搞定的问题,非得写n多个封装层,搞得很高深,实际上是累了自己。《代码大全》上说要明白代码最终是要写给人看的。适度的封装确实能降低耦合度,使得修改变得简单方便,但过度的依赖框架,会是简单的事情变得复杂起来。

作为开发人员确实要拥有很多锤子,才能搞定各种业务需求,找到合适的锤子能迅速把钉子钉下去,而滥用锤子的下场就是,简单的事情复杂化,工期滞后,钉子生锈了都没钉下去。老板希望看到的是结果,至于你用那种锤子,自己要权衡好才行。