程序-语言-架构师-思想
2016-08-28 12:36
169 查看
程序
程序的本质是对现实生活的建模,反映真实世界。程序是对现实的抽象。那我们拿现实与程序对比着看,在现实生活,最重要的是处理人与人之间的关系,处理好人与人之间的关系,生活就会井井有条,而反映到程序是,在程序里最重要,最关键是处理类与类之间的关系,处理不好类与类之间的关系,到后期,一个项目将会分崩离析。在程序中有个分析关注点思想,也就是MVC思想。其实在现实生活早有体现,不能这么说,感觉程序脱离了现实,应该是现实早有体现,程序将其抽象出来,起了个名字叫MVC。举个例子,比如说一个公司,从上至下,总裁,经理,项目经理,程序员。比如总裁想要做一款APP了,他只会对经理说,去,我要个APP,他不会管你咋做,他只要结果。经理对项目经理说,去,我要做个APP,项目经理负责进度,让程序员做个APP。这是真实生活,其实程序世界也是如此,这才是真正的面向对象思想。现在说程序,比如,老师有个完成一项很复杂功能的题,我全部写到一个main()函数中去了,这是其实就是面向过程思想。而我们需要建一些类来协同完成这些工作,但是类建哪些呢,我不清楚啊,这就是真正的面向对象编程,这是真正提升水平的一个点。只有思想层次的提高,才是升华。说到底,面向对象编程就是处理类与类之间的关系。
语言
说到程序,不得不说一说,程序设计语言,我不清楚语言在大家心里什么地位,反正你如果经常看博客啦,就会看出几大派系之争,这里仅限于服务端语言,其它我也不懂,.NET PHP Java Node.js Python,每大派系都说自己是最好的语言,尤其是PHP,不清楚为啥,每次网上搜资料时,下面总有几个评论,PHP是世界上最好的语言,也是让我很无语。拿出个有意思的事和大家分享一下,我当初学C#的时候,看到C#已死等等各种批评C#的文章,吓得我不清,当时一度想学安卓去,后来我学PHP的时候,又看到了一下PHP只能做些小项目,挣不了大钱的文章。到现在学习Java,博客也有一些说Java存在这么多年,已经老旧了,迟早会被Python Node.js取代,幸亏我承受能力强,要不然这样也顶不住啊。好了,说了这么多,我对语言的看法是工具。既然是工具,就有它最适合的方面。只有在最合适的方面使用工具,工具才是最完美的。反映到现实世界是,一群开车上班的人,说,看,轿车是世界上最棒的工具,而另一群飞行员说,看,飞机是世界上最棒的工具。语言本来不比争来争去的,在最适合的地方使用它,那它就是最好的语言。说到底,语言这玩意就是个工具而已,在最适合的地方使用它就好了。
架构师
在程序世界中,有个称谓让所有程序员心仪神往,那就是架构师,一个程序世界中的老大,掌握着一个程序世界中所有对象的生杀大权。而普通程序员则在他定义的规则下,补充着这个世界。所以,下面我要说的是,架构师和普通程序员。比如做项目,这个项目离了普通程序员照样如期进行,而这个项目离了架构师就会崩溃。这就是两者的区别。不知道大家听过一句话没有,那就是开发者做项目几年之后就是架构师了,我只想说****(此处禁言),普通程序员一直在架构师的框架下工作,面向对象思想根本建立不起来,除非你主动学习框架,尝试打破这个架构师建立的规则,否则你会一直在这个规则下生存。普通程序员其实一直锻炼的是面向过程思想,在架构师定义好的对象世界中,工作,这就是普通程序员为啥成不了架构师,因为他没有架构师的面向对象的思想。这是根本原因。其实,面向对象思想没那么简单。在我看来,架构师深度理解面向对象思想,而普通程序员深度理解面向过程思想,就这样。我希望有一天自己不再是别人框架下的补充者,有一天自己成为一个独当一面的架构师,自己定义这个世界的规则。
思想
因为对架构师的向往,对面向对象思想的向往,我一度认为面向过程是旧的思想,注定要被面向对象替代,我发现自己错了,其实面向对象思想是对面向过程思想的补充,面向对象可离不开面向过程,面向过程可以离开面向对象。当前主流的思想有,面向过程思想,面向对象思想,面向方面思想。多层次看程序世界,最底层其实还是面向过程编程,从这个点处理到另一个点,现实生活做事情也是有个顺序的。其次就是面向对象思想,考虑的层次更高级一些。而发现有一些面向对象无法处理的事情,比如权限验证,日志管理,所以又出来了面向方面思想。而我理解的思想体系是,面向对象思想是对面向过程思想的补充,面向方面思想是对面向对象思想的补充,就这样。
PS:
1 吝啬定律:当一件事你发现它的本质(即最少),那就能发挥它最大的作用。
2 欲戴王冠,必承其重。
相关文章推荐
- 在面向过程语言和开发中借鉴面向对象思想提高程序模块化和阅读性
- 一个小语言的词法分析程序原理及其实现(2)
- 怎样编写支持多国语言的程序, 让它能够根据所运行的操作系统自动显示相应的文字。
- 软件工程思想2 程序员与程序经理
- C语言经典程序!!--------------------------转自C语言经典论坛
- 用 XML 设计一个你自己的程序语言
- 本周着力完成一个服务器控制程序的中文语言包
- 用 XML 设计一个你自己的程序语言
- 用 XML 设计一个你自己的程序语言
- 你该学什么程序语言?[转贴:蔡学墉]
- Java语言入门 -- 第二章 Java程序编译与运行环境
- 计算机和现实世界的接口——程序语言
- 开发多语言版本程序应注意的几个问题
- 隐藏在程序后面的是逻辑、流程,进一步说是管理思想
- 用winrar的脚本语言,实现程序的自动打包
- 零基础易语言入门教程(三)之了解控制台程序
- PL/0语言编译程序分析
- 程序语言漫谈
- DOTNET程序多国语言生成器
- 你该学什么程序语言?[转贴:蔡学墉]