为何使用面向对象

  • 答:因为程序执行无非是:“顺序,判断,循环”,而面向对象是基于这三个作数据结构化
  • 编程应该 简单&抽象
  • 返回对象的函数叫构造函数

关于「如何取舍一些技术」:

无论使用的是什么技术,往上走必然会走到一个更高的抽象层面,这个时候所有「变化的表象」就 merge 成了「更不变的基础」:

  • Domain-specific (领域特定) 的有一大堆 spec 规范
  • TC39 的 ECMAScript、
  • IEFF 的 HTTP、
  • W3C/whatwg 的HTML/CSS/WebAPI
  • 框架「特征」的MVC/MVP/MVVM/Flux、数据流、状态管理、广义的「脏检查」、广义的「脏更新」等等)

计算机科学的划分

  • 「编程语言理论」(类型系统、运行时、OOP/FP/FRP 等范式)、
  • 「系统」(比如 GUI 并发、网络 IO 的并行与并发、各种缓存)、
  • 「图形学」(渲染/动画/可视化的实现与性能优化)、
  • 「软件工程」、
  • 「数据库」、
  • 「安全」…… 所谓「条条大路通罗马」,有句话叫「有造轮子的能力和不造轮子的觉悟」,我觉得对很多技术则可以抱着「有学轮子的能力和不学轮子的觉悟」来看待。