程序-语言-架构师-思想

news/2024/7/3 1:38:32

程序

      程序的本质是对现实生活的建模,反映真实世界。程序是对现实的抽象。那我们拿现实与程序对比着看,在现实生活,最重要的是处理人与人之间的关系,处理好人与人之间的关系,生活就会井井有条,而反映到程序是,在程序里最重要,最关键是处理类与类之间的关系,处理不好类与类之间的关系,到后期,一个项目将会分崩离析。在程序中有个分析关注点思想,也就是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 欲戴王冠,必承其重。

 

                                                                                                                                                                                   

 

转载于:https://www.cnblogs.com/kingofkai/p/5814736.html


http://www.niftyadmin.cn/n/2928401.html

相关文章

nginx的配置——实现日志切割

1.什么是日志切割? 日志切割就是把系统的日志以天为单位进行存放,即每一天的日志都分开放 企业当中每天都要备份昨天的日志,然后生成一个新的日志记录今天的 如果不做日志切割,当日志文件很大的时候,vim打开的时候可能…

nginx的配置——实现网页压缩和图片压缩

1.为什么要进行压缩? 在实际的企业当中,nginx服务器上的资源要尽可能的占用的空间少一点 实际上信息量大的网页和高清图片占用存储空间是非常大的,这样不利于服务器性能的优化 因此我们要在服务器上面将网页和图片进行压缩,让客户…

nginx日志可用变量梳理

nginx日志可用变量梳理近期需要统计一下公司相关域名下的某些文件的下载速度,初步计划打算联系专业页面监测厂家,购买页面监测服务,对相关页面下载速度进行监控,这个需要花费成本,部署周期也比较长。后来扒拉一下nginx…

nginx服务配置——对客户端的访问控制

(1)设置访问的并发量,一秒只能接受一个请求(限制客户端请求的并发量为1个) 在配置文件里面编写,访问/usr/local/nginx/html/search/这个目录下的资源 这里的根表示的是/usr/local/nginx/html/ 建立共享的…

三、JSX 语法

上一节的代码&#xff0c; HTML 语言直接写在 JavaScript 语言之中&#xff0c;不加任何引号&#xff0c;这就是 JSX 的语法&#xff0c;它允许 HTML 与 JavaScript 的混写&#xff08;查看 Demo02 &#xff09;。 var names [Alice, Emily, Kate]; ReactDOM.render( <div&…

nginx的配置——自定义日志的格式

一般情况下&#xff0c;nginx服务器有自己默认的日志格式 作为一个管理员&#xff0c;也可以将日志格式自定义为自己想要的格式

MYSQL常用的性能指标

(1) QPS(每秒Query量) QPS Questions(or Queries) / seconds mysql > show global status like Question%; (2) TPS(每秒事务量) TPS (Com_commit Com_rollback) / seconds mysql > show global status likeCom_commit; mysql > show global status likeCom_rollb…

Hive入门到剖析(二)

5 Hive参数hive.exec.max.created.files说明&#xff1a;所有hive运行的map与reduce任务可以产生的文件的和默认值:100000hive.exec.dynamic.partition说明&#xff1a;是否为自动分区默认值&#xff1a;falsehive.mapred.reduce.tasks.speculative.execution说明&#xff1a;是…