Better

Ethan的博客,欢迎访问交流

编程语言杂记

编程语言的繁荣发展,那么背后的推动力是啥呢?哈哈,一些不成体系的杂记。

使用高级语言编写的业务逻辑,设计模式、函数式、响应式编程,都只是一层层抽象,帮助程序员更好地编写代码,在最底层,还是汇编语言。

编译角度理解不同语言编程范式:面向对象 => 面向过程 => 汇编。

解释执行语言特点:源码 => parser => AST => 解释执行。

编译执行语言特点:源码 => 编译 & 链接 => 机器指令 => 在硬件上直接执行

字节码语言(Java):编译 + 解释

  • 源码 => 编译 => 字节码
  • 方式一:在虚拟机上执行
  • 方式二:JIT => 机器执行 => 在硬件上直接执行

这种方式结合了解释执行和编译执行的优势,字节码平台中立,任何平台,只要有一个虚拟机就可以执行。

抽象函数的过程中,发现有些函数的参数太长,这时候就需要找个数据结构把参数组织起来,改为传递这个数据结构。程序 = 数据结构 + 算法

对象 = 数据 + 操作。class 把重复的方法从对象中剥离出来,放到一个公共的 class 中。那函数中如何确定,该操作哪个实例呢,因此 this 也就出来了!解决 class 之间的重复,于是就出现了继承!面向接口编程,从而出现了多态

继承其实破坏了封装性,因此记住两条准则

  • 有效使用组合而不是继承
  • 面向接口编程,而不是面向实现编程

随后出现了多(23?)种通用设计模式

编程的关键是抽象,你得把系统需求抽象成高层的概念,然后在概念层次进行编程。这句话本身非常抽象!

深入编程设计之前,更重要的是打好基础,多思考,没准哪天就自己悟了

我们可以先做好基础,如果你能熟练的使用他们,模式就会自然地呈现出来

  • 给方法,类,模块划分好职责
  • 做好信息隐藏和封装
  • 做好组合

掌握了基础后,可以进一步思考

  • 从接口的角度考虑:人们如何使用我的组件
  • 让代码易读、简单、可以自我描述,并尽可能避免明确使用模式
  • 探索业务的本质模型


留言