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

程序

程序的本质是对现实生活的建模,反映真实世界。程序是对现实的抽象。那我们拿现实与程序对比着看,在现实生活,最重要的是处理人与人之间的关系,处理好人与人之间的关系,生活不会太难,而反映到程序是,在程序里最重要,最关键是处理类与类之间的关系,处理不好类与类之间的关系,到后期,一个项目将会分崩离析。在程序中有个分析关注点思想,也就是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取代,幸亏我承受能力强,要不然这样也顶不住啊。好了,说了这么多,我对语言的看法是工具。既然是工具,就有它最适合的方面。只有在最合适的方面使用工具,工具才是最完美的。反映到现实世界是,一群开车上班的人,说,看,轿车是世界上最棒的工具,而另一群飞行员说,看,飞机是世界上最棒的工具。语言本来不比争来争去的,在最适合的地方使用它,那它就是最好的语言。

说到底,语言这玩意就是个工具而已,在最适合的地方使用它就好了。

架构师

在程序世界中,有个称谓让所有程序员心仪神往,那就是架构师,一个程序世界中的老大,掌握着一个程序世界中所有对象的生杀大权。而普通程序员则在他定义的规则下,补充着这个世界。所以,下面我要说的是,架构师和普通程序员。拿我自身举例子,我曾经做.NET PHP项目的时候,就是我老师,他当然是架构师啦,我,普通程序员,这么说,这个项目离了我照样如期进行,而这个项目离了我老师,就是架构师就会崩溃。这就是两者的区别。不知道大家听过一句话没有,那就是开发者做项目几年之后就是架构师了,我只想说去他妈妈的(此处禁言),普通程序员一直在架构师的框架下工作,面向对象思想根本建立不起来,除非你主动学习框架,尝试打破这个架构师建立的规则,否则你会一直在这个规则下生存,做着70%的工作,拿着30%的工资。普通程序员其实一直锻炼的是面向过程思想,在架构师定义好的对象世界中,工作,这就是普通程序员为啥成不了架构师,因为他没有架构师的面向对象的思想。这是根本原因。其实,面向对象思想没那么简单。在我看来,架构师深度理解面向对象思想,而普通程序员深度理解面向过程思想,就这样。

我希望有一天自己不再是别人框架下的补充者,有一天自己成为一个独当一面的架构师,自己定义这个世界的规则。

思想

因为对架构师的向往,对面向对象思想的向往,我一度认为面向过程是旧的思想,注定要被面向对象替代,我发现自己错了,其实面向对象思想是对面向过程思想的补充,面向对象可离不开面向过程,面向过程可以离开面向对象。当前主流的思想有,面向过程思想,面向对象思想,面向方面思想。多层次看程序世界,最底层其实还是面向过程编程,从这个点处理到另一个点,现实生活做事情也是有个顺序的。其次就是面向对象思想,考虑的层次更高级一些。而发现有一些面向对象无法处理的事情,比如权限验证,日志管理,所以又出来了面向方面思想。

而我理解的思想体系是,面向对象思想是对面向过程思想的补充,面向方面思想是对面向对象思想的补充,就这样。

PS:

1 吝啬定律:当一件事你发现它的本质(即最少),那就能发挥它最大的作用。

2 欲戴王冠,必承其重。

2016-08-28 12:24:46

一个欲戴王冠的人

时间: 2024-11-06 01:49:09

程序-语言-架构师-思想的相关文章

再谈编程范式—程序语言背后的思想

编程范式 托马斯.库尔提出“科学的革命”的范式论后,Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词.编程范式一般包括三个方面,以OOP为例: 1,学科的逻辑体系——规则范式:如 类/对象.继承.动态绑定.方法改写.对象替换等等机制. 2,心理认知因素——心理范式:按照面向对象编程之父Alan Kay的观点,“计算就是模拟”.OO范式极其重视隐喻(metaphor)的价值,通过拟人化,按照自然的方式模拟自然. 3,自然观/世界观——观念范式:强调程序的组织技术,视程序为松

程序员/架构师/CTO:如何画出一张美观的架构图

作为一名程序员或架构师,有时候我们需要画一张架构图去给同Team同事或其他组的同事或者给上级/老板进行汇报.我们都梦想画的架构图,很漂亮,让人一看就眼前一亮的感觉. 在这里我们介绍一种画图的方法论,来让架构图或流程图更加清晰,层次化.首先我们来看一个网站 (https://c4model.com/).该网站提出了一个被称之为C4模型的东西.什么是C4?Context(上下文).Container(容器).Component(组件).Code(代码).C4就是代表上述一系列分层的图表,可以用这些图

Java进阶之路——从初级程序员到架构师,从小工到专家

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题.希望这篇文章会是你看到过的最全面最权威的回答. 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的.下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法. 1-1 常用数据结构 数组.链表.堆.栈.队列.Hash表.二叉树等

10个重要部分,讲述从程序员到高级系统架构师该如何进阶?

1 前言 说到系统架构师,相信很多企业都有这样的高级人才.系统架构师已然成为国内一门十分紧俏的职业,一名优秀的系统架构师常常会吸引各方企业争抢. 系统架构师的职责是在项目开发过程中,制定这个项目的总体脚骨,指导整个开发团队完成这个计划,他必须对开发技术非常了解,并且需要良好的组织管理能力,可以这样说,一个架构师的好坏决定了整个项目的成败. 当前,我们国家经济形势热度不减,软件企业成长速度惊人.随着信息时代的来临,架构师在业务发展中扮演的角色越来越重要,如何做好整个IT架构的设计,已经成为企业信息

程序员养成架构师之路

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题.希望这篇文章会是你看到过的最全面最权威的回答. 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的.下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法. 1-1 常用数据结构 数组.链表.堆.栈.队列.Hash表.二叉树等

java架构师之路:JAVA程序员必看的15本书的电子版下载地

转自:http://www.shangxueba.com/faq/view376.html 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们. 一.Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java

程序员到架构师需要的编程基础

程序员到架构师的进阶之路是非常艰辛和漫长的,不但需要掌握很多高级的知识技能,还需要有过硬的基础知识.<Java架构师指南>就是这样一本指导小白到架构师进阶的书.本文摘取了这本书中的第一章节,主要介绍Java程序员走向架构师的基础知识,还有开发环境的搭建.通过本文的学习,可以大致了解程序员的进阶之路,也可更加深刻地认识到程序员的发展方向. 点此链接购买纸书 本书特别适合Java Web领域的开发人员以及刚步入职场的新手.本书通过讲述Java架构师必备的知识技能,让广大读者在原有知识的基础上更上一

从程序员到高级系统架构师完美进阶

前言 说到系统架构师,相信很多企业都有这样的高级人才.系统架构师已然成为国内一门十分紧俏的职业,一名优秀的系统架构师常常会吸引各方企业争抢. 系统架构师的职责是在项目开发过程中,制定这个项目的总体脚骨,指导整个开发团队完成这个计划,他必须对开发技术非常了解,并且需要良好的组织管理能力,可以这样说,一个架构师的好坏决定了整个项目的成败. 当前,我们国家经济形势热度不减,软件企业成长速度惊人.随着信息时代的来临,架构师在业务发展中扮演的角色越来越重要,如何做好整个IT架构的设计,已经成为企业信息化建

Java架构师成长之道之程序流程控制

Java架构师成长之道之程序流程控制 Java架构师成长之道 4.1 程序流程控制概述 之前编写的绝大多数程序都是顺序执行,也就是从main函数开始,由上到下一行一行的执行,也被称为顺序结构. 在生活中除了顺序结构以外还有选择结构.循环结构,例如在淘宝购物时登录账号就是一个选择结构,如果输入的正确的用户名和密码才能购买商品,否则就会提示用户名密码错误. 而在淘宝首页的Banner就是一个循环结构,在指定的时间内循环切换图片. 在Java中,支持if/else和switch case两种选择结构,