软件工程

梁辰兴6 小时前
数据结构·软件工程·梁辰兴·面向数据结构的设计方法·jackson方法·warnier方法·方法比较
软件工程:面向数据结构的设计方法面向数据结构的设计方法是以数据结构为中心的软件设计方法,它从系统的数据结构出发,导出程序结构。主要代表方法有Jackson方法和Warnier方法。本文将详细介绍这两种面向数据结构的设计方法。
jufeng13077 小时前
linux·软件工程·个人开发·makefile
【系列:MiniKV 原理剖析 · 第 6 篇】导读: 前几篇我们把 MiniKV 的存储引擎和网络层都拆完了,该聊聊测试了。但 MiniKV 的测试代码有点特殊——它的整个测试框架,加起来不到 100 行。没有 Google Test,没有 Catch2,没有 CMake 的繁琐配置。一个 64 行的头文件,加上一个 19 行的 main 函数,撑起了全部 8 个测试用例。更神奇的是,你写测试的时候不需要手动注册任何东西——只要写 TEST(MyTest) { ... },测试就自动出现在运行列表里。这怎么做到的?秘密全在 C++ 静态初始化顺序和
__zRainy__8 小时前
软件工程·工程化
软件开发工程化 · 入门篇:什么是工程化在软件领域,“工程化"绝不仅仅指用某个打包工具(如 Webpack)或写单元测试。它的核心本质是:将软件开发从"个人英雄主义的艺术创作”,转变为"可量化、可协作、可控制的工业化生产"。
jufeng13078 小时前
linux·网络·c++·软件工程
【系列:MiniKV 原理剖析 · 第 5 篇】导读: 当你用 Redis 客户端发一条命令,背后发生了什么?TCP 是字节流,没有消息边界——一次 recv 可能收到多条命令(粘包),也可能一条命令分三次到达(半包)。本文从零实现 MiniKV 的 RESP2 服务器:socket 生命周期管理、send_all 处理部分发送、pending buffer 解决粘包/半包、RESP2 协议五种类型编解码、命令分发。读完你就能写一个能跑的 KV 服务端。
梁辰兴1 天前
软件工程·设计文档·设计方法·梁辰兴·设计定义·设计优化·软件结构设计
软件工程:软件结构设计软件结构设计是概要设计的核心任务,它将系统需求转化为软件的模块结构,确定系统的层次关系和模块间的调用关系。本文将详细介绍软件结构设计的概念、原则、方法及优化策略。
jufeng13079 小时前
linux·c++·log4j·软件工程·makefile
【系列:MiniKV 原理剖析 · 第 8 篇(完结篇)】导读: 从第 1 篇的 GNU Make 构建系统,到第 7 篇的 Sanitizer,MiniKV 已经走过了 7 个章节。今天收官:用 36 行的 integration_test.sh 打通端到端验证,用 45 行的 benchmark.cpp 量化性能表现。当测试金字塔完整立起,一个可教学、可扩展的 KV 存储项目才算真正落地。
jufeng13071 天前
linux·c++·软件工程
【系列:MiniKV 原理剖析 · 第 2 篇】导读: 缓存系统有一个绕不开的灵魂问题:容量满了,淘汰谁?LRU(Least Recently Used,最近最少使用)的答案是——淘汰最久没被访问的那个。听起来简单,但要在 O(1) 时间内完成"访问即更新""淘汰最旧"两个操作,需要精心设计数据结构。MiniKV 的 Store 类给出了教科书式的答案:std::list 记录访问顺序、std::unordered_map 存键值、Entry 内嵌 list 迭代器,三个结构协作实现 O(1) 的查询、插入与淘汰。本文逐行拆解这个经典组合,并回答一个关
lincats1 天前
人工智能·软件工程·原型模式·vibecoding·claudecode·grillme
智能体工程 vs 软件工程:计算机系那套课程,还能适应 AI 时代吗?AI 让技术平权了。谁都能靠 prompt,搭出一个能跑的东西。但计算机专业的学生,花了四年。从编程语言学到算法,再到软件工程,啃完一整套系统性课程。这套训练,在 AI 时代还有必要吗?这篇文章带你了解其中的差异。
梁辰兴2 天前
软件工程·梁辰兴·总体步骤·各步骤要点·关键原则·实施要点·概要设计的步骤
软件工程:概要设计的步骤概要设计是软件开发生命周期中的关键阶段,它将需求分析的结果转化为系统的总体架构和模块划分。本文将详细介绍概要设计的系统化步骤,包括系统架构设计、模块划分、接口设计、数据设计等各个环节的具体实施方法。
Miao121315 天前
软件工程
软件工程如何兼顾速度与质量在软件工程中,交付速度和工程质量常常被放在一起讨论。有些工程师认为非常重要的工作,例如升级依赖、治理技术债务、重构历史代码,往往不会在项目刚启动时立刻显现价值。它们通常会在项目运行数月后逐渐暴露出来:构建变慢、缺陷变多、改一处牵一片、发布风险越来越高。
凌云拓界2 天前
安全·架构·开源·node.js·编辑器·软件工程·wasm
NodeVerdict | .ndv 二进制格式:为 WASM 解码器设计的紧凑布局阅读时长:约 35 分钟 前置知识:会读 JSON、知道追踪事件长什么样(前几篇)。本篇偏"格式设计与互操作",是进阶内容,但我会把二进制概念讲得非常接地气。 本篇目标:讲清楚三件事——①怎么手工设计一个紧凑二进制格式(.ndv);②为什么字符串驻留能省一半体积;③怎么让三种来源(NodeVerdict JSON / OTel JSON / .ndv)一个入口通吃。
梁辰兴2 天前
软件工程·设计原则·梁辰兴·模块独立性定义·度量标准·提高方法·设计目标
软件工程:模块独立性模块独立性是衡量软件设计质量的重要标准,它反映了模块的独立程度。模块独立性主要通过内聚性和耦合性两个定性指标来度量。本文将详细介绍模块独立性的概念、度量标准、设计原则及提高方法。
梁辰兴2 天前
软件工程·设计原则·模块化·定义·梁辰兴·内聚性·耦合性
软件工程:模块化模块化(Modularity)是软件设计的基本原则和核心思想,它将复杂的软件系统分解为若干个相对独立的模块,每个模块完成特定的功能。本文将详细介绍模块化的概念、原则、内聚性、耦合性以及模块化设计方法。
郝学胜-神的一滴3 天前
开发语言·c++·qt·软件工程·用户界面
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略前言:做过播放器的小伙伴们一定对那个"鼠标悬停音量按钮,弹出滑块调节"的效果不陌生吧?看起来简单,做起来可是坑不少!今天这篇文章,我带你从最基础的事件入门,一路踩坑到最终优雅实现,保证你看完直呼——原来还有这种操作?🤯
rolt3 天前
软件工程·架构师·uml
《软件方法》强化自测题-分析(12)DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集按照业务建模、需求、分析、设计工作流考察,答案不直接给出,可访问自测链接或扫二维码自测,做到全对才能知道答案。
lanfordxb4 天前
rust·软件工程·ai工具
从 Markdown 到图片卡片:MarkCard Studio 的功能设计与官网实现记录说明:本文记录一个开源项目的功能设计与前端实现,不构成商业推荐。文中的功能和版本信息以项目当前代码为准。所有 IMAGE_URL_xx 均为图片地址占位符,发布前需要替换为实际图床链接。
郝学胜-神的一滴4 天前
c++·游戏·unity·游戏引擎·软件工程·unreal engine
[简化版 GAMES 104] 现代游戏引擎 04:从0到1构建你的游戏世界哈喽各位技术小伙伴们!👋 今天咱们来聊一个超级硬核但又贼有意思的话题——如何构建一个真正的游戏世界。
智造ERP规划4 天前
数据库·系统架构·软件工程·制造
项目型制造成本核算:WBS成本归集、变更冲击量、完工百分比,三个逻辑讲透去年给一家做化工压力容器的企业做成本梳理。他们是典型的项目型制造——每台设备按客户工艺要求定制设计,一个合同就是一个项目。订单来了先出技术方案、再做详细设计、然后采购+生产+安装调试,周期从三个月到一年半不等。
Dr.kangder4 天前
架构·嵌入式·软件工程
嵌入式处理器架构解析(七)——SPARCSPARC(Scalable Processor ARChitecture,可扩展处理器架构)是一种经典的精简指令集(RISC)处理器架构,由Sun Microsystems(现为Oracle公司)于1985年设计并推出。其设计初衷是追求高性能、高可扩展性,并采用开放的架构标准,允许其他厂商获得授权并生产兼容处理器。SPARC处理器在历史上曾广泛应用于工作站、服务器领域,尤其在Sun的Solaris操作系统生态中占据核心地位。随着时间推移,其应用场景逐渐向高可靠性、高实时性要求极高的嵌入式系统、航天航空及
智造ERP规划4 天前
大数据·系统架构·软件工程·制造
项目型制造财务核算全流程:收入什么时候确认、成本怎么归集、开票≠收款,一条链讲透前两年去一家做环保设备的厂里做项目,财务总监给我看了一张表——8个项目,5个开了票,3个收了预付款,2个发了货在现场安装,1个验收了。然后他问我:「你说我这个月该确认多少收入?」