面向对象与面向过程---开发思想的转变看工作
今天看了一篇非常好的文章,兴奋得我睡不着,一定要写下些东西.
文章是<.NET初学者架构设计指南(一)Hello world的时代>,是作者讲述自己学习开发的全过程,从经典的helloworld讲起,经历了GOTO的面条式编码,到面向过程,接着是现在最流行的面向对象的思想。
很后悔没能在大学时看到如此简单通俗的文章,这绝对是一篇适合一些搞不懂面向过程和面向对象这两个概念的朋友阅读的好文章。
在工作之后,经历过项目实战和企业应用的我对个中的区别深有体会,再一次体会到代码是对事物的解释和重构,里面包含的思想与企业管理,工作模式有着异曲同工之妙。
作者以邮箱开发做了一个很好的解释,但最触动我心灵深处的是下面的一段话:面向过程和面向对象这两种编程思想的区别在于:他们对于需求的理解是不一样的。面向过程的编程人员,他们把需求理解成一条一条的业务流程,他们喜欢问用户“你的业务流程是什么样的?”,然后他们分析这些流程,把这些流程交织组合在一起,最后实现了需求;面向对象的编程人员,他们把需求理解成一个一个的对象,他们喜欢问用户“这个东西叫做什么,他从哪里来,他能做什么事情?”,然后他们制造这些对象,让这些对象互相调用,符合了业务需要。(转自《.NET初学者架构设计指南(一)Hello world的时代》)
现在的思路有点乱,很多话想说,但是找不到主线,体会主要有下面几点(开发思想在规划方面的作用)。(详述在后面的文章中)
1 体会主要在工作方面,虽然现在大家都说自己用到面向对象的思想,但都是只有形没有质的东西,面向过程的思想相对易懂,更容易实现。因此在目前的工作中还是主流(不是指开发,而是工作方式)
2 面向对象的思想对灵活性,扩展性,定位错误等方面都比面向过程的做法强大,但是需要配合的条件也更苛刻。需要a大众对旧模式的抱怨的积累,b一个完善的整体规划,设计,c对新模式的适应。
3 下篇文章将写我眼中的企业IT架构。很好的体现了面向对象和面向过程的优劣。