首页 > 代码库 > 技术闲扯

技术闲扯

框架及其思想值得一学.任何技术都会过时,为了赶技术而去学,学一辈子学到都是皮毛,深入一个研究,一通全通.所以,无所谓过时与不过时.想学就学了,不想学就不学了

机器语言是电路的框架,汇编指令又是机器语言的框架,c语言又是汇编指令的框架,所谓的框架都是相对的,对上一层的封装,越高级的语言给你封装的东西越多。

微软公司是一个框架,各个分公司也是框架,各个部门还是一个框架!

框架越大,我们越难掌握,很多家庭关系出问题,离婚,孩子教育不好,婆媳关系,这还是一个小框架,如果是市,省份,国家呢?所以问题多多,同样编程语言里面的框架也不完美,不同的框架就像不同的国家管理方法一样,操作系统本身也是一个很大的框架,因为这个框架太复杂,以至于世界级顶尖的程序员的智慧去维护。把我们现在的操作系统比作摩天大楼,而很多程序员研究操作系统,都是研究的那个最简单的茅草屋操作系统,因为太大了,研究不了。

核心也是相对的。。操作系统的内核?cpu的内核?可这些也在变化,也在进步。

比如qq的语音速度变快了,但是你使用qq方法和以前一样。

这是接口。

接口会变化,会增加,但变化速度没那么快。如果变化太快了,我今天学开车,方向盘是左边,明天变成右边就不好玩了。但内部却在不断进步,比如更加安全,更省事,电瓶蓄电能力更强。

程序员是编程语言的用户,又是软件的创造者。 程序员编程使用的接口,这个接口就像手册一样,就告诉有什么功能,如何使用。程序员用这些功能组合出来的软件给了用户,也应该有一个手册,这个功能如何使用。

学习任何知识,先有了全局观,再去理解局部知识,就会心中有数,就好比一座摩天大楼,你至少知道自己在几层楼的几号房间,大概其他大楼是什么人,也明白,我和他们是什么关系。

一个玩具流水线工人,只负责一个环节,它最后都不知道自己做的什么玩具,只知道是一个玩具的某部分。

包括编程语言添加了什么新语法,增加了什么新特性,本质就是编译器对cpu的指令集做了新的封装,甚至没任何改变,但cpu的电路更加简洁速度更快了,程序也任何改变,但速度也快了。这也是为什么硬件升级了,人们换了新电脑,感觉qq不卡了。

其实编译器也是做的同样的事情。

包括编程语言添加了什么新语法,增加了什么新特性,本质就是编译器对cpu的指令集做了新的封装,甚至没任何改变,但cpu的电路更加简洁速度更快了,程序也任何改变,但速度也快了。这也是为什么硬件升级了,人们换了新电脑,感觉qq不卡了。

代码的设计和硬件的设计都会影响程序的速度。

所以,有的程序员侧重硬件,有的侧重于软件。

我们两个同样用C语言写了一段代码。 都是50行代码。 但是转换成汇编语言,可能你的是100行,我的是200行。 如果使用Java,你用了某个框架里面的代码。 而我没有用。 虽然都是20行代码。 但你真正的代码量可能是1000行。

mov ax,0 xor ax,ax 这两个指令都是把ax变成0,但生成的机器指令,一个是3个字节,一个是2个字节。 第二个更高效一些。 我是看书上这么说的,没具体测试过。 谁知道CPU里面里面的电路设计,哪个更加速度快呢。 这种微秒级别的差距,需要很大的数据量才能测试出来。 值的庆幸的编译器现在很智能化了,编译器生成的汇编语言,比我们自己写的要优化很多。

好老师需要对全局有一个把握,重点在哪里,其他知识点也需要了解,浅尝而止到什么程度,如何把一个抽象的东西,用通俗易懂的方式让人理解。 汇编语言的本质就是用CPU把内存里面的东西搬来搬去,搬到CPU内部,传给某个电路,再把结果输出到寄存器或者内存。  C语言,又是对汇编语言的一层封装。   CPU又是对很多运算器,控制器的封装。  而很多运算器和控制器,又是非门,与门,或门,以及这三个门组合成的其他门封装起来的。   

技术闲扯