当前时间: 2026-05-08 12:17:05
分类:办公文件
评论(0)
软件架构的意义及“软件日抛论”为何站不住脚.最近与公司人事探讨BSP工程师、系统工程师、应用工程师的区别。最后他问了我一句“架构师是干什么的?”。他说架构师好像也没干什么就是画画框图。从某些视角上看,架构师的工作的确只是画画框图。因此我想以本文分享一下我认为的架构师工作的目的和意义是什么。一切要从“软件的核心价值”谈起。我相信绝大多数软件从业者都会认为“软件的核心价值是能正确地解决问题”。这句话固然正确,但需要进一步刨析。“解决问题”自不必谈,金主们出钱开发软件一定是要解决一些问题。无外乎“提高效率”、“节约成本”、“创造实用价值”和“创造情绪价值”等。但“正确地”值得深思。下文换一种表达方式,称其为“软件的正确性”。“正确性”是一个相对的概念。时间上“在今天正确”不等于“在明天正确”;空间上“在这里正确”不等于“在那里正确”。物理学是最典型的例子。牛顿三定律在宏观慢速世界被认为是正确的,在宏观高速世界被认为是不正确的;相对论在宏观世界被认为是正确的,在微观世界被认为是不正确的。量子物理在微观世界被认为是正确的,在宏观世界被认为是不正确。“软件的正确性”也遵循这一特性。因此所有软件开发者,无论是组织还是个人,都在追求尽可能地延长和拓宽其开发的软件的正确性。可以说软件的正确性才是软件的价值核心,也是软件最根本和护城河。为什么Windows、Linux、Mac三大PC操作系统能一直保持流行,难道是没人能开发出新的操作系统吗?当然不是,它们能保持流行是因为长期的演化和广泛的被使用证明了它们的正确性。后续被开发出来的操作系统无法证明自己比它们更具正确性。回到架构师的工作,架构师的工作就是要设计出能延长和拓宽软件正确性的架构。依照架构开发出的软件可以随时间和空间不断演化,并且在演化后依然能保证其正确性。又要提一下AI编程的问题。用户愿意使用或愿意付钱给你所开发的软件,无非出于两点:一是独特的功能;二是正确性。由于AI编程的流程,网上掀起了一股“软件日抛论”。只要从“正确性”的角度去分析,“软件日抛论”就是站不住脚的。首先AI输出的代码本身就带有极大的不确定性。并且这些带有极大不确定性的代码又没有通过严格的测试和长期的使用证明其正确性。一个不确定性的软件,其输出也一定是不确定的。因此仅通过提示词让AI编码开发出来的软件是毫无价值的。下一篇我将以最近重构的一个模块来展示软甲架构如何让软件在演化的同时保证其正确性。
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-05-09 06:47:07 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/585591.html
- 运行时间 : 0.107303s [ 吞吐率:9.32req/s ] 内存消耗:4,652.20kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=36d05b9ecf93d7b85ef660c255df1632
- CONNECT:[ UseTime:0.000659s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000723s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000300s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000366s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.000483s ]
- SELECT * FROM `set` [ RunTime:0.000236s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.000593s ]
- SELECT * FROM `article` WHERE `id` = 585591 LIMIT 1 [ RunTime:0.000369s ]
- UPDATE `article` SET `lasttime` = 1778280427 WHERE `id` = 585591 [ RunTime:0.005295s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000246s ]
- SELECT * FROM `article` WHERE `id` < 585591 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000429s ]
- SELECT * FROM `article` WHERE `id` > 585591 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000493s ]
- SELECT * FROM `article` WHERE `id` < 585591 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000699s ]
- SELECT * FROM `article` WHERE `id` < 585591 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004689s ]
- SELECT * FROM `article` WHERE `id` < 585591 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000704s ]
0.108892s