从单一代码库构建一个能在 Windows、macOS 和 Linux 上原生运行的桌面应用程序,正是 Qt 的设计初衷。在 2026 年,Qt 仍是构建跨平台桌面应用和嵌入式软件最强的选择之一,尤其是在性能、原生体验和长期可维护性至关重要的场景中。本指南将介绍 Qt 如何进行跨平台开发,以及如何在它的两种界面技术之间做出选择。 摘要 Qt 让你用一套 C++ 代码库编译出面向 Windows、macOS、Linux 及嵌入式目标的原生应用程序 它提供两种界面技术:Qt Widgets(经典桌面界面)和 Qt Quick/QML(流畅、现代、带动画的界面) 与基于 Web 的封装相比,Qt 提供原生性能和更小的体积,代价是需要 C++...
软件开发
关于软件开发的文章、指南和教程,为开发者和企业提供实用知识与技巧。
Qt 6 是一个主版本,将一个真实的 Qt 5 应用迁移到它,远不止是重新编译那么简单。框架经过了模块化,构建系统转向了 CMake,部分 API 被移除或替换,模块也被移动到别处。这些都不是无法克服的,但一次成功的 Qt 5 到 Qt 6 迁移是被规划出来的,而不是碰运气得来的。本指南介绍了发生了哪些变化,以及在 2026 年应如何着手这次迁移。 要点速览 Qt 6 是一个带有破坏性变更的主版本发布:模块化的结构、作为主要构建系统的 CMake、被移除和替换的 API,以及被重新安置的模块 将构建系统从 qmake 转到 CMake,往往是单项工作量最大的部分 在可能的情况下增量迁移,利用 Qt 提供的兼容性辅助工具,并依靠你的测...
这是一篇面向开发者的 Claude API vs OpenAI API 对比,针对两款使用最广泛的大语言模型 API:Anthropic 的 Claude API 和 OpenAI 的 API。它讨论的不是哪个聊天机器人在随意使用时显得更聪明,而是当你在其上构建软件时真正重要的东西:集成、tool use、structured output、上下文处理、成本模型和可靠性。两者都很出色,对许多项目而言,正确的答案是把系统设计成两者皆可使用。 摘要 两个 API 都成熟、文档完善,并按 per-token 计费(input 与 output 分别计),支持 streaming、tool calling / function...
通用 AI 模型对世界了解甚多,却对你的业务一无所知。它从未见过你的产品手册、你的内部制度或上季度的报告。检索增强生成(retrieval-augmented generation,RAG)正是弥合这一鸿沟的技术:它让模型能够使用你自己的文档来回答问题,既准确又附带来源,而无需重新训练模型。本指南解释 RAG 是什么、如何工作,以及何时该使用它。 要点速览 RAG 从你自己的内容中检索相关片段并放入 prompt,让模型基于你的知识作答,而不仅仅依赖其训练数据 它的原理是把文档转换成 embeddings,存入 vector database,并为每个问题检索最接近的匹配 RAG 减少 hallucination 并让你能够引用来...
调用 OpenAI API 获取一条回复很容易。构建一个可靠、不跑题、控制成本并能在真实用户压力下稳定运行的 OpenAI API 聊天机器人,才是真正的工作。本指南将梳理那些把演示与可以放到客户面前的产品区分开来的架构和生产问题。 TL;DR 聊天机器人是一个循环:管理对话历史,带着清晰的 system prompt 发送出去,streaming 回复,然后重复 system prompt 和上下文管理对行为的决定作用远大于模型选择 在生产问题(rate limiting、错误处理、成本控制和 guardrails)上,大多数项目投入不足 对于面向知识的机器人,通常正确的模式是 retrieval-augmented...
大型机现代化很少是单一决策。它是在几种截然不同的策略之间做选择,每种策略都有非常不同的成本、周期和风险特征,而正确答案取决于你的业务目标,而非技术偏好。在 replatform 已足够时却选择"全部重写",或在真正问题是不可维护的代码时却选择"lift and shift",正是现代化项目浪费数百万的原因。 本指南比较主要的现代化策略、每种策略何时合理,以及如何选择。 TL;DR 主要策略是 rehost、replatform、refactor、rearchitect/rewrite、replace 和 retire;大多数通常归为 rehost、replatform 和 refactor/rewrite rehosting 最快最...
“摆脱 COBOL 要花多少钱?”是每个董事会最先提出的问题,而诚实的答案是:它取决于的因素远不止代码库的规模。本指南拆解在英国真正驱动 COBOL 迁移成本的要素、切合实际的预算与时间表区间,以及那些把一个规划良好的项目变成超支的风险。 要点速览(TL;DR) 英国中等规模的 COBOL 迁移通常花费 200,000 至 800,000 英镑,耗时 1 至 2 年;完整的大型机退役则高达数百万英镑并持续多年 成本受代码库复杂度、未记录的业务逻辑以及数据访问层重新设计的影响,远大于单纯的代码行数 目标语言和迁移方式的选择会实质性地改变预算 项目超支最常见的原因是低估范围,尤其是未记录的业务规则和数据访问层 真正驱动 COBOL 迁移...
Rust 是一个日益受欢迎的 COBOL 迁移目标,适合那些希望在没有垃圾回收器的情况下同时获得内存安全和高性能的组织。对于安全关键型和性能敏感型系统而言,COBOL 迁移到 Rust 的保证极具说服力:整类内存错误在编译时就被捕获,生成的二进制文件快速且可预测。 Rust 同时也是此列表中要求最高的目标,因为它的所有权和借用模型与 COBOL 的扁平数据模型有着根本性的不同。本指南解释 COBOL 迁移到 Rust 实际涉及什么、英国企业可用的方法、成本如何,以及如何管理风险。 要点(TL;DR) Rust 适合内存安全和性能都很重要的 COBOL 迁移,没有垃圾回收器,也没有运行时开销 Rust 的所有权和借用模型是决定性的挑...
当简洁性、快速构建和轻松部署比庞大的企业框架生态系统更重要时,将 COBOL 迁移到 Go 是一个务实的选择。它编译为单个静态二进制文件,没有运行时依赖,随处可运行,其内置的并发模型天然适合将 COBOL 批处理现代化为并行工作负载。 本指南阐述 COBOL 迁移到 Go 实际涉及哪些内容、英国企业可采用的方法、成本几何,以及你必须提前规划的那一个精度问题。 摘要 Go 适合那些看重简洁性、快速编译、单一二进制部署和轻松并发,而非厚重企业框架栈的 COBOL 迁移 Go 没有原生十进制类型:COBOL 压缩十进制(COMP-3)字段默认映射为 float64,因此金融计算需要一个十进制库,例如 shopspring/decimal ...
Java 是企业 COBOL 迁移最常见的目标,其原因不难理解。它成熟、强类型、由庞大的库生态系统支撑,并得到英国最深厚的开发者人才库之一的支持。对于在 IBM 大型机上运行关键 COBOL 的组织而言,COBOL 到 Java 迁移提供了一条通往现代平台的路径,同时无需放弃这些系统所要求的企业级严谨性。 本指南阐述 COBOL 到 Java 迁移实际涉及哪些内容、英国企业可采用的方法、成本如何,以及如何管理风险。 摘要(TL;DR) 凭借其成熟的生态系统、强类型和庞大的开发者库,Java 是大型企业默认的 COBOL 迁移目标 金融精度不容妥协:COBOL 压缩十进制(COMP-3)字段必须映射到 Java...