PerfectPan / Collection

杂货铺
0 stars 0 forks source link

Other #18

Open PerfectPan opened 2 years ago

PerfectPan commented 2 years ago

面向对象编程的弊端是什么?

封装 继承 多态 前两者是属于战略的东西,后者是属于战术的东西

核心是封装和归一化,归一化可以简化使用者的处理逻辑,封装可以让各模块各司其职

面向对象好处:

  1. 通过封装明确定义了何谓接口、何谓接口内部实现、何谓接口的外部调用者,使得大家各司其职,不得越界;
  2. 是通过继承+多态这种内置机制,在语言的层面支持归一化的设计,并使得内行可以从代码本身看到这个设计——但,注意仅仅只是支持归一化的设计。不懂如何做出这种设计的外行仍然不可能从瞎胡闹的设计中得到任何好处。

显然,不用面向对象语言、不用class,一样可以做归一化的设计(如老掉牙的泛文件概念、游戏行业的一切皆精灵),一样可以封装(通过定义模块和接口),只是用面向对象语言可以直接用语言元素显式声明这些而已;

而用了面向对象语言,满篇都是class,并不等于就有了归一化的设计。甚至,因为被这些花哨的东西迷惑,反而更加不知道什么才是设计。

PerfectPan commented 2 years ago

https://developer.chrome.com/blog/inside-browser-part1/

4 篇文章讲述了浏览器整个运作的流程,browser 进程处理非 Tab 页相关的事情,一个 Tab 页一个 render 进程,用户的交互事件会通过 browser 进程分发到 render 进程的合成线程,如果页面有绑定相关事件,会由合成线程通知主线程去做梳理,这之前还要进行一次碰撞检测(Hit Test)去确认具体的元素。

PerfectPan commented 2 years ago

从实现原理看低代码

  1. 「声明式」可以直接从展现结果反向推导回源码
  2. 「命令式」无法做到反向推导

综合来看这些「声明式」语言有以下优点:

而这些语言的缺点是:

低代码都是一种「声明式」编程,因为只有声明式才能可视化编辑,而可视化编辑是低代码唯一不可少的功能。

低代码的优缺点其实来自于「声明式」本身。

编写代码是一种抽象思维,因此并不适合可视化,导致低代码只能面向特定领域,复杂应用需要和专业开发配合。

前端界面的 HTML+CSS 可以认为是一种低代码 DSL,因此界面的低代码比较容易实现,只需要在 HTML+CSS 基础上抽象一层。

后端存储的低代码有几种方案,但没有哪个方案是完美的,它们都有各自的优缺点,这将决定一个低代码平台的适用范围,建议在选型时重点关注。