跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言SaaSjava

低代码诞生的背景与软件复杂度累积

综述由AI生成回顾了企业软件从硬件导向向数据导向的演变历程。早期软件依赖底层硬件,成本高且复用性差。1970 年代关系型数据库的出现实现了数据抽象,降低了技术门槛。随后为提升用户体验,在数据库之上构建了应用层“壳”,形成了“高级语言 + 数据库”的技术范式。然而,这种分层结构导致了数据模型膨胀、业务规则叠加及交互逻辑复杂化,使得企业软件演变为需长期维护的复杂系统,这也构成了低代码技术诞生的背景。

JavaCoder发布于 2026/4/5更新于 2026/5/2329 浏览
低代码诞生的背景与软件复杂度累积

第一章 企业软件复杂度的逐步累积

1.1 从硬件导向到数据导向

早期的软件开发几乎完全围绕计算机硬件展开。机器语言与汇编语言要求开发者理解 CPU 指令、寄存器和内存地址,软件的表达方式高度依赖具体硬件体系结构,如 SSE 指令集中用于比较字符串的 pcmpistr,无法运行在不支持 SSE 的 CPU 上。这一阶段的软件极其昂贵、开发周期漫长、可复用性极低,应用范围也因此被限制在政府、科研机构和少数大型企业的核心场景中。随着电子工业的发展,计算机开始进入企业管理领域。跨行业、跨规模推广计算机应用的关键,在于找到一种足够通用的抽象方式。

1970 年,来自 IBM 的 E.F.Codd 博士在 ACM 通讯杂志上发表的论文《大规模共享数据银行的关系型模型》,为解决这一问题提供了一种切实可行的技术路线。该路线中,现实世界中的业务单据、业务流程和管理决策,被统一抽象为数据的存储、处理与分析,而执行这些操作的软件被统称为'关系型数据库'。企业的用户只需要一个连接到数据库软件的终端,就能用一套近似于英语的、统一的语言来操作这个软件,以此实现所有的业务操作。如用户想要查询姓名中包含'李'的员工档案,需要输入 SELECT * FROM STAFFS WHERE NAME LIKE '%李%' ,界面上就会呈现出纯文本呈现的员工档案信息。

image

图:早期的数据库服务器与操作终端

关系型数据库的出现,标志着企业软件第一次在抽象层面实现了规模化。通过关系模型描述业务实体及其关系,通过统一的数据操作语言处理不同业务场景,数据库成功降低了企业信息化的技术门槛,也显著扩展了软件需求的边界。

1.2 '壳'的出现与复杂度外溢

当数据库从档案管理走向财务、库存、成本核算等复杂业务场景时,一个新的问题随之出现:直接操作 SQL 对最终用户并不友好,一个业务操作需要多次打印和重复输入,导致操作员工作负荷高、出错概率大。为此,行业选择将数据库抽象为数据模型(数据模型可近似理解为数据库的结构,由数据表、列和表关系构成),在模型之上构建应用软件。这种做法很像是给数据库'套壳',让用户操作应用,应用去操作数据库,而非用户直接操作数据库。

这一决策带来了企业软件形态的根本变化。业务逻辑开始在数据库与应用程序之间重新分配,用户交互界面成为差异化竞争的核心。随着抽象度更高的新一代高级语言(如 C++、Java 语言)在应用层的普及,企业软件正式进入'高级语言 + 数据库'的长期技术范式。

image

图:DOS 时代的企业软件操作界面

然而,这种分层结构也埋下了复杂度累积的种子:

  • 数据模型持续膨胀:一个小型订单管理系统可能只有十几张表,但经过几年演进后,堪比 ERP 的系统重,表数量可能增长到数百张
  • 业务规则不断叠加:每次业务流程调整都会增加新的验证规则、计算公式和例外处理逻辑
  • 交互逻辑日益复杂:从简单的表单录入发展到复杂的向导流程、多标签页面和实时校验
  • 应用规模和生命周期显著拉长:企业软件往往需要运行十年甚至更长时间,期间不断打补丁和加功能

企业软件不再是一次性交付的工具,而是需要多年演进、持续维护的复杂系统。

目录

  1. 第一章 企业软件复杂度的逐步累积
  2. 1.1 从硬件导向到数据导向
  3. 1.2 “壳”的出现与复杂度外溢
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 Rust 的二维码艺术生成器实现
  • 汽车雷达多径幽灵目标检测:GLRT 与稀疏压缩感知解析
  • AI 辅助开发:从需求描述到 SpringBoot 项目生成
  • 论文笔记:π₀ 视觉 - 语言 - 动作流模型通用机器人控制
  • C++ string 类常用成员函数与全局函数解析
  • Whisper 模型国内镜像源汇总及各版本快速获取方法
  • 腾讯云轻量应用服务器部署 OpenClaw 并接入 QQ 飞书机器人
  • 医疗 NLP 实战:电子病历分析与疾病诊断辅助
  • C++11 左值与右值引用区别及移动语义解决传值返回销毁问题
  • YOLOv8 C++部署:OpenCV DNN 实现 V5/V7/V8
  • 数据结构基础:树的概念与二叉树详解
  • Kafka 核心架构与分布式存储深度解析
  • 二分查找实战:x 的平方根与搜索插入位置
  • llama.cpp 技术指南:从底层原理到实战部署
  • OpenClaw Gateway 服务运维指南:启动、停止与监控
  • SWE-agent:基于 GPT-4 的开源 AI 程序员系统解析与实战指南
  • ROS2 基础:从零理解 URDF 机器人模型描述格式
  • C++ 哈希表原理与 unordered 容器实战
  • Pretext:突破前端文本测量性能瓶颈的 TypeScript 引擎
  • HTTP Cookie 深入解析:Web 会话追踪机制

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online