美文网首页每日记事本深度思考
【515→计算机】架构思维2

【515→计算机】架构思维2

作者: Koala谦爸 | 来源:发表于2020-08-20 10:33 被阅读0次

02大厦基石:无生有,有生万物

当我们设计或分析一个零部件时,我们会关心哪些问题?

第一个问题,是需求。这个零部件的作用是什么?它能被用来做哪些事情?(某种意义上来说更重要的是)它不会被用来做哪些事情?

第二个问题,是规格。这个零部件接口是什么样的?它如何与其他零件连接在一起的?

为了实现"解决一切可以用计算,来解决的问题"这个目标,冯诺依曼引入了三类基础零部件:中央处理器;存储;输入输出设备。

架构思维上我们学习到什么?

架构的第一步是需求分析。从需求分析角度来说,关键要抓住需求的稳定点和变化点。需求的稳定点,往往是系统的核心价值点;而需求的变化点,则往往需要相应去做开放性设计。

对于"电脑”这个产品而言,需求的稳定点是电脑的"计算"能力。需求的变化点,一是用户"计算"需求的多样性,二是用户交互方式的多样性。

03汇编:编程语言的诞生

程序称得上是计算机的灵魂。指令序列的可能性是无穷的,程序的可能性就是无穷的。今天计算机创造的世界如此多姿多彩,正是得益于程序无穷的可能性。

为了解决编程效率的问题,汇编语言(和解释它的编译器)诞生了。汇编语言的编译器将汇编语言写的程序编译成为CPU指令序列,并将其保存到外置的存储设备(比如硬盘)上。

在表达能力上,编语言主要做了如下效率优化。

第一,用文本符号表达机器指令。

第二,用文本符号(symbol)表达要操作的内存地址,并支持内存地址的自动分配。

第三,用文本符号(symbol)表达要调用的函数(function,也叫"过程-procedure")地址。

第四,用文本符号(symbol)表达要跳转的目标地址。

总结来说,汇编从指令能力上来说,和机器指令并无二致,它只不过把人们从物理硬件地址中解脱出来,以便专注于程序逻辑的表达。

04编程语言的进化

软件是活的书籍,是我们人类知识传承能力的一次伟大进化,有两方面原因:

其一,表达方式的多样性。

其二,对技术的现场还原。

编程范式的进化

其一是过程式。过程式就是以一条条命令的方式,让计算机按我们的意愿来执行。过程式编程中最核心的两个概念是结构体(自定义的类型)和过程(也叫函数)。

其二是函数式。函数式本质上是过程式编程的一种约束,它最核心的主张就是变量不可变,函数尽可能没有副作用。

其三是面向对象。面向对象在过程式的基础上,引入了对象(类)和对象方法(类成员函数)它主张尽可能把方法(其实就是过程)归纳到合适的对象(类)上,不主张全局函数(过程)。面向对象语言的代表是Java,C#、C++、Go等等。

面向对象有两个显著优点:

其一是清晰的使用界面,某种类型的对象有哪些方法一目了然,而不像过程式编程,数据结构和过程的关系是非常松散的。

其二是信息的封装。面向对象不主张绕过对象的使用接口侵入到对象的内部实现细节。因为这样做破坏了信息的封装,降低了类的可复用性,有一天对象的内部实现方式改变了,依赖该对象的相关代码也需要跟着调整。

面向对象还有一个至关重要的概念是接口,可以实现多态。

另外,还会引入一个叫继承的概念。

什么是面向连接的语言?在此之前,你可能并没有听过这样的编程范式,这应该算Go自己发明出来的范式名称。在我看来,所谓面向连接就是朴素的组合思想。研究连接,就是研究人与人如何组合,研究代码与代码之间怎么组合。

其他方面的进化

工程化能力:

1)包(package),即代码的发布单元。

2)版本(version),即包的依赖管理。

3)文档生成(doc),单元测试(test)。

语言的执的行为:

1)编译的目标文件为可执行程序。

2)生成跨平台的虚拟机字节码。

3)直接解释执行。

网络图片

编程语言选择:开发效率和后期维护。

相关文章

  • 【515→计算机】架构思维2

    02大厦基石:无生有,有生万物 当我们设计或分析一个零部件时,我们会关心哪些问题? 第一个问题,是需求。这个零部件...

  • 2020-08-25

    电脑硬件入门——基础之计算机架构计算机架构

  • 一、计算机概论

    2.计算机架构和接口设备 一般计算机机构主要指x86架构计算机;目前主要有Intel和AMD两大主流开放商的CPU...

  • 01|第一课:框架发展和Dubbo环境准备

    一、历史回顾 (一)、软件发展历史(按照编号顺序发展) 1、集成在一起架构 2、mvc架构 1和2都在同一台计算机...

  • 2019-02-20 复杂系统的产品设计与开发

    目录 编辑 第一部分系统思维 第1章系统架构简介 …… 2 1.1复杂系统的架构 …… 2 1.2良好架构的优势 ...

  • 分布式讨论

    1.什么是分布式 为了完成共同的任务,需要多个计算机节点共同组成的系统。 2.架构演进 单体架构->集群架构->服...

  • 高级系统架构设计师-计算机组成与体系结构思维导图

    高级系统架构设计师-计算机组成与体系结构思维导图 https://www.processon.com/view/l...

  • iOS技术栈

    1.设计模式、架构开发,终端app各种架构的优劣以及使用场景 2.计算机网络及网络协议(HTTP/TCP/HTTP...

  • 软件架构II:架构思维

    架构思维 != 思考架构。 架构思维是: 了解架构与设计之间的差异,并了解如何与开发团队合作以使架构正常工作。 这...

  • 再谈架构思维(22.2.28)

    今天谈一下架构思维。对于架构思维本身应该类似与系统思维、结构化思维、编程思维等诸多思维模式的一个合集。由于架构本身...

网友评论

    本文标题:【515→计算机】架构思维2

    本文链接:https://www.haomeiwen.com/subject/dlcsjktx.html