单个 JSON 文件如何成为您的整个代码库

2025-05-28

单个 JSON 文件如何成为您的整个代码库

问题

好吧,对于我们来说,开发软件的成本很高,而且需要花费大量的时间和精力,这并不是什么新鲜事,毕竟我们谈论的是代码,好的代码

这种代码可以解决问题,而且它既优雅又易读......但做到这一点很难,而这正是我们触及难题表面的地方。

好的代码确实很昂贵,大多数人和公司都无法获得。

糟糕/有缺陷的代码不仅常常无法解决它本该解决的问题,反而会成为它自身的问题。我敢打赌,你肯定也曾经因为被要求修复一个“简单”的bug而不得不去理解遗留代码库中极其混乱的类系统。

我的理论

我有一个有趣的个人理论,即所有关于代码的创建都可以追溯到代码可访问性问题,其唯一目的是使其一点一点变得更容易一些。

人们开始使用 C 语言,这样他们就不需要频繁地手动移动字节了。在 Web 领域,JQuery 的兴起带来了越来越复杂、功能越来越强大的网站,这在当时简直是遥不可及的梦想。之后,Java、C#、ReactJS、Docker 等工具以及无数其他好东西的出现,让我们的生活更加美好。

然而,“编写好的代码”问题仍然存在,尽管它已经适应了当前的场景。

说实话,我不认为这个问题有明确的解决方案。随着社会和技术的进步和复杂程度的提升,我们的问题也随之加剧;但我确实认为我们可以做得更好,让软件更容易被用户接受。

让代码更易于访问且更便宜

那么,如果这样的“好代码”只需编写一次,并且我们所有人都可以自由地将其用于自己的目的,那会怎样?如果我们可以将多个好代码串联起来,而无需为此编写样板代码,那会怎样?

或许,更好的是,我们可以只编写我们的用例绝对必要的代码

这就是 JSON 的用武之地。

代码即数据

在我们开始之前,为了使“代码即数据”存在,必须满足以下条件:

如果可以将任何代码表示为一条信息,那么就可以组织它来组成特性和功能。

对我们来说幸运的是,数据可以代表任何事物。

不相信吗?不妨读一读这个:

{
  "variables": [{ "name": "highestAllowedNumber", "value": 3 }],
  "code": [
    {
      "procedureName": "if",
      "boolean": {
        "procedureName": "higherThan",
        "input": "functionInput1",
        "targetValue": "highestAllowedNumber"
      },
      "then": { "procedureName": "stdOut", "message": "too high!" },
      "else": { "procedureName": "stdOut", "message": "you're fine." }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

当用户输入高于3时,我们会收到一条消息:“太高了!”

现在,也许您会问自己,这与常规代码有什么区别?

乍一看没什么区别,但实际上它们有着根本的区别。你无法执行这些数据,但你可以将其解析成代码(这也是好代码!),然后执行。

数据即代码

如果我们仔细想想,编程的很大一部分就是将业务流程的信息转换成计算机更容易使用的语言。

尝试做一下这个简单的练习。获取上一节的数据,然后用 JavaScript、C# 和 C++ 编写。

完成后,我想您可以想象我们可以告诉计算机为我们进行这种转换。

数据和您使代码可访问

为了理解的目的,我们将其简化,假设您已经写出了最好的、无与伦比的if statement,它可以用我们上面看到的相同数据结构来表示。

如果我们设法获取能够正确表达我们意图的数据,它就能成为我们拥有的最佳代码,我们甚至无需考虑它的实现。为了获得最佳效果,请将其开源

单个 JSON 文件如何成为您的整个代码库

现在,我敢打赌,标题和你最初想象的相比,应该不会差太远。其实,这样的东西已经存在了,这里有一个正在开发中的例子

这得益于Meta-System,这是一款开源软件,我很荣幸参与其中。它使软件变得易于访问,同时也为您提供了为软件的可访问性做出贡献的途径。

检查存储库,并加入discord,我们在这里讨论如何让软件世界变得更受欢迎、更少挑战。

文章来源:https://dev.to/zelcion/how-a-single-json-file-could-become-your-entire-code-base-356j
PREV
三个有用的 Express 中间件
NEXT
轻松学习正则表达式