海神


面向对象与公司管理

2016-05-09

这篇文章的标题很难起,很难用一句话来表达我要表达的意思。我第一次起的标题是“代码的现实指导意义”,但是读者肯定不好懂,改成“面向对象与公司管理”就明白多了,但是有点局限,并不是我要表达的全部意思。

起因是公司技术群里面的一次讨论。老大觉得每次客服给我们提需求,我们都老老实实的改太不安全了。每个客服都可以给我们提需求,我们马上就改,导致很多想法都没有梳理,不一定就对。于是我半开玩笑地说:

应该把客服部封装起来,只保留一个客服经理的接口。

没想到老大深以为然,马上就让技术从客服群里撤出来,只留一个测试在里面。

提出这个想法,我基本是没有经过思考的,不就是是面向对象的解决方法嘛。在获得赞同之后, 我突然觉得若有所悟,脑子里闪过一个想法:

原来面向对象是可以指导现实生活的!

面向对象的初衷是用现实生活的方法来解决编程的问题,把现实的物品抽象为程序中的类和对象,使程序最大程度地模拟现实生活。面向对象的几个基本思想:封装、继承、多态。基本上每个学程序设计的人都应该学过,也应该或多或少掌握这些基本思想。在编程的初始阶段,我们哪怕靠死记硬背,记得一些这些基本思想,也能写出一些还算过得去的代码。

虽然面向对象来源于现实,但是我们每个生活于现实中的人,却绝不可能从中悟出封装、继承、多态这样的思想,我们作为生活中的每一份子,行事已经完全不需要思考了。

正是有着各位计算机科学界的先贤,为了解决程序设计中的难题,将生活中的经验抽象为面向对象的思想,我们才能拥有如此强大的工具。

面向对象的思想很简单,可是每个人的理解程度却有深有浅。我自忖编程也有些年头了,面向对象的思想也已经深入骨髓,所以面对上面的问题,我很自然就想到用面向对象的思想来解决。有一句古话:如果你手里有一把锤子,所有东西看上去都像钉子。我目前的状态有点类似,但是其实也不算什么坏事。

不过我没有想到的是,面向对象作为编程界的工具,拿到现实生活中一样有指导意义!具体到上面的例子,客服与技术直接沟通,明显破坏了封装,所以是混乱的根源。将客服和技术全部封装起来,留下一个单一的接口来访问,使得所有的需求经过梳理才交由技术来处理,客服和技术都不需要太关心各自的内部实现。

引申开去,编程思想结合到生活中就是哲学思想,每一个学编程的人或多或少都会成为一个哲学家。这也从另外一个方面回答了为什么每个人都要学习编程的问题。


blog comments powered by Disqus