🧑‍💻几何科工社🤖

【安全效率灵活】是不可能三角。

数学化编程#

【数学化编程】就是以数学为逻辑基础的编程。从逻辑结构上考虑,确定性比较强,而不是像现在这样搞出这么多五花八门的东西。数学上,同样的逻辑,只有一种描述,极少情况下会换个视角描述。

【数学化编程】约束强,优先考虑安全,灵活性差一些,然后没有特别去考虑效率,所以牺牲了很多效率。

FP 开发#

其实【函数式编程】,即 FP,有点符合数学化编程,FP 在我看来就是代数化编程。FP 同样的逻辑都是同样的概念堆砌,虽然概念名字很奇怪,但可以在不同语言通用。

我觉得用 FP 范式就差不多了,足够的数学化了,也有足够的约束,保证了安全和效率,但是牺牲了一定的灵活性。

OO 开发#

【面向对象编程】,即 OO,模拟现实,造出很多类似但又不同的逻辑。OO 本质上基于想象,先有想象然后填充逻辑,自然千变万化。OO 偏向于灵活性与一定的效率,牺牲了安全性。

现实太复杂,我们需要数学一样的简单与确定。虽然基础物理规律很简单,但是我们不是模拟物理规律,而是模拟现实。当然也不绝对,游戏就是另一种情况。金融就得数学一样精确。

UI 开发#

另外,举个 UI 开发的例子。我的经验,游戏的 UI 不能跟应用一个逻辑,最好就是高度灵活可定制的图元组合。性能、灵活、安全,不可能三角中,牺牲一下安全,毕竟只是游戏。

游戏 UI 可以不搞响应式,反正有游戏循环每帧重建即可,一般有大量 UI 的时候不是游戏主场景。游戏主场景一般只有少量UI,或者暂停游戏后再弹出大量UI。

应用的话,需要优先保证安全。所以应用 UI 可以用响应式,以保证安全。这也是应用开发很流行响应式框架的原因之一。

普通应用牺牲性能效率。React 流行也是因为 React 优先保障安全与灵活,牺牲了一定的性能效率。

企业级应用牺牲灵活。所以很多企业级应用会选择 Angular,因为它优先保障安全与性能,牺牲了一定的灵活性。Angular 的模式也是学习的 Java Spring 框架,其约束了大部分 Javaer 的自由灵活发挥,更符合企业需求。

安全效率灵活不可能三角
https://lab.lushisang.com/posts/20250624-safety-efficiency-flexibility-impossible-trinity
Author 😼Andy Lu
Published at 2025年6月24日