平时在做开发的过程中,总是有同事抱怨,这个项目没技术含量,那个项目又技术太落后了。我就问他们,这些项目怎么没技术含量了,怎么落后了?他们的答案叫我啼笑皆非:这个项目的后台没用到Hibernate和Spring,那个项目的页面没用到Ajax或者Flex等等。难道用到这些框架和新技术就是有技术含量了?平时在网上也经常看到ExtJS+NHibernate+Spring.Net=最强组合,我不知道这个最强组合是怎么得来的,也不明白为什么用了这些各种各样的别人写的框架就是有技术含量,我想说的是,恰恰相反,用这些东西的人,根本就是在告诉别人我没料,我不懂编程。如果你技术高,那么你还需要用这些高手写的框架吗?既然你技术高,你干嘛不自己开发一个框架呢,干嘛要屁颠屁颠的跟着这些框架走呢?我们看看Google,看看网易,看看淘宝等等这些大网站,他们是否使用了Hibernate,是否使用了Spring?没有吧。难道你能说这些大的公司没有高手?高手的代码都是自己一行行写出来了,他们要求的是成熟和稳定的产品,而不是那些经常出新版本的框架。
一个软件,最终的目标是什么?不是炫耀使用了什么什么新框架,而是满足了客户的需求,只有满足客户需要的产品才是好的。软件的质量是很重要的,只有自己一行行地写代码,我们才能知道这些代码都是干什么用的,有没有多余的代码,有什么隐含着不稳定,不安全的因素,有没有实现了需求的功能。软件的质量是很重要的,使用这些框架拼凑起来的软件,代码不够透明化,又如何对产品的质量有保证呢。如果就这样简单地把这几框架丢给了客户,他又怎会放心我们的质量呢?框架像个黑匣子,我们很难清楚地知道它在内部究竟做了些什么工作,有没有做了些额外的事情,会不会泄漏客户的资料,有没有安全隐患,这些都是很难预测的。万一有天出了问题发现是框架的原因,难道你想对客户说,等新版本出来就能解决了?一个软件,连开发者都不清楚的,那么客户又如何信任它的质量,你是要客户信任框架的质量呢还是你的能力?客户花钱买的是软件,而不是框架。这些框架不过是些玩具而已,我们要学习的,是框架的设计思想,而不是怎么使用这些框架。
框架,让一个程序员变迟顿了,变懒了,变得不会思考了。基础才是最重要的。建议有些基础的读者多看看设计模式,多看看重构,一个好的程序员是一个能写出漂亮的代码的程序员。我们应该要经常的想,我们为什么要这样写代码而不是那样写代码。只要不断地思考,不断地领悟,那么,我们离高手也不远了。