avatar
Articles
415
Tags
259
Categories
26

Theqiqi_blog
Search

Theqiqi_blog

01-从指令到业务系统
Created2026-08-13|架构|从指令到系统•从指令到业务系统
从指令到业务系统——软件组织的第一条演化线 从一条指令开始,经过结构化、函数、文件、分层,最终长成一个业务系统——由模块组成,每个模块 = 数据结构 + 算法 + 接口。这是所有软件的第一条演化路径。 一、从一条指令开始最开始,程序就是几条连续的指令: 123MOV EAX, 5 ; 把 5 放进寄存器ADD EAX, 3 ; EAX = EAX + 3MOV [addr], EAX ; 结果存进内存 CPU 按地址顺序取指令,一条执行完再执行下一条。没有分支、没有循环、没有函数。 二、第一次拐弯:判断与跳转要让程序根据情况选择不同处理,需要比较 + 条件跳转: 1234CMP EAX, 10JGE label_doneADD EAX, 1label_done: 程序第一次有了「逻辑」——根据输入/状态,走不同的路。这就是 if-else 的硬件本质。 三、重复与复用:循环和函数雏形循环 = 往回跳 1234567MOV ECX, 0loop_start:CMP ECX, 10JGE loop_end ...
08-领域模型
Created2026-08-13|架构|业务分析•领域模型
领域模型——正向从业务建模型,逆向从模型展开成流程 领域模型有两条方向:正向是从业务语言/现实问题分析出对象、属性、关系、规则与状态(把业务世界压缩成一个模型);逆向是把已经建好的模型展开成开发流程——转成具体的步骤序列,每一步做什么、产出什么都有明确约定。正向回答「业务世界里有什么」,逆向回答「有了模型之后按什么顺序、一步步把它变成程序」。 一、正向:从业务语言到领域模型1.1 一个例子:图片管理器要做一个图片管理器,不能直接开始写界面。先问:这个软件操作的对象是什么? 123456Project 项目(一组图片的集合)Folder 文件夹(图片分组)ImageFile 图片文件ImageMetadata 图片元数据(尺寸/格式/拍摄时间)SearchQuery 搜索条件EditorDocument 编辑中的文档 这就是领域模型的第一步:识别领域对象。 再往下,对象有属性、有关系、有状态: 123456789Project ├── 属性:name, path, cover ├── 关系:包含多个 ...
07-游戏与建模的领域对象分析
Created2026-08-12|架构|业务分析•游戏与建模的领域对象分析
游戏与建模的领域对象分析 游戏和建模(CAD/绘图/场景)的领域对象分析和一般软件是两条不同的线:一般软件的对象来自「用户要完成什么业务流程」,游戏/建模的对象来自「这个世界里有什么东西、什么规则」。分析游戏,就是在分析一个允许玩家行动的世界的结构;分析建模,就是在分析一个要被描述的场景的结构。 一、从一般软件到游戏:对象来源变了一般软件问: 12「用户要通过这个软件完成什么任务?」 → 对象:图片、订单、进程、项目 游戏问的是完全不同的问题: 12「这个世界里有什么东西?它们遵循什么规则?」 → 对象:玩家、敌人、道具、地形、关卡 以闯关游戏为例,领域对象不是从「用户任务」来的,而是从世界结构来的: 123456789101112Game├── Player 玩家(可控制的实体)├── Scene 场景│ ├── Background 背景│ ├── Terrain 地形│ ├── Obstacle 障碍│ └── Object 物体├── Enemy 敌人├─ ...
06-一般软件的领域对象分析
Created2026-08-12|架构|业务分析•一般软件的领域对象分析
一般软件的领域对象分析 领域对象分析是建领域模型的第一步:从现实问题里把对象一个一个找出来。一般软件(GUI、服务器、工具类)找对象的方法有固定套路——从业务名词、用户操作目标、数据流里挖。这条线和「游戏/建模的领域对象分析」是两条不同的线:一般软件的对象来自业务流程,游戏的对象来自世界规则。 一、对象不是「想出来的」,是「分析出来的」新手做软件,常常直接从界面或类开始: 12❌ 先画界面 → 再补数据 → 对象随机出现❌ 先建类 → 类名凭感觉 → 对象和业务对不上 领域对象分析的正确顺序是从业务出发: 1234567业务问题 ↓ 分析业务名词(对象候选) ↓ 追问对象属性、关系、状态 ↓ 确认领域对象 对象不是发明的,是在业务里发现的——它本来就存在于问题描述里,只是需要分析动作把它挖出来。 二、三个分析来源1. 业务名词(最常用)业务描述里的名词就是对象候选: 12「用户可以创建项目,把图片按文件夹整理,搜索时按元数据过滤, 编辑后的图片可以保存回原文件」 1用户 / 项目 / 图片 / 文件夹 / 搜索 / 元数据 / 原文件 但名词要筛: ...
05-技术流
Created2026-08-12|架构|业务分析•技术流
技术流:业务流每个步骤的「怎么做」链 业务流回答「做什么」——用户要完成的任务、程序要提供的能力;技术流回答「怎么做」——每个业务步骤在程序里如何实现。这一条线:把「怎么做」从一句笼统的话,展开成一条完整的决策链,并追踪它在五个演化阶段里的形态。 一、定义:做什么 vs 怎么做同一个业务步骤,有两个视角: 12业务流(做什么):解析参数 → 格式化 → 返回结果技术流(怎么做):怎么解析(strcmp?正则?)→ 怎么格式化(snprintf?流?)→ 怎么返回 业务流是用户视角:任务是「保存文件」,用户不关心用 fopen 还是 open。 技术流是实现视角:同一个「保存文件」,实现方式有无数种。 分层之前,二者常常被当成一回事——「保存文件」就是写那几行代码。分层之后,二者彻底分开:业务层写「做什么」,基础设施层写「怎么做」。 所以技术流的本质是: 每个业务步骤背后,都有一条「怎么做」的决策链。 二、技术流的展开:五个环节「怎么做」不是一步到位的,它层层深入: 123456业务步骤(做什么) ↓ ① 功能流程:程序内部怎么组织步骤(先做什么、后做什么、什么条件下做 ...
04-数据结构来自其他设计
Created2026-08-12|架构|业务分析•数据结构来自其他设计
数据结构来自其他设计:一条独立的设计来源 前三条线是功能分析链:需求 → 业务流程 → 功能点 → 功能流程 + 算法。数据结构不在这条链上——它不是从功能流程里分析出来的,而是来自另一条独立的设计链:领域对象分析 → 领域模型 → 数据结构。这一条线说明:数据结构为什么来自其他设计,以及那条独立设计链是什么。 一、功能分析链产生不了数据结构功能分析链的产物是「做什么、怎么执行」: 12需求 → 业务流程 → 功能点 → 功能流程 → 算法 做什么 怎么完成 提供什么 怎么执行 怎么计算 这条链上每一步回答的都是行为(做什么、怎么做),不是数据(有什么、怎么组织)。从头到尾走完这条链,得到的是一组功能和流程,而不是一份数据结构设计。 例如「结束进程」功能点,功能流程能推出「调用结束进程的接口」,但推不出「进程对象有哪些字段、进程列表用什么结构存」——后者来自对问题世界里事物本身的分析。 二、数据结构的真正来源:领域对象分析 → 领域模型数据结构来自对「问题世界里有什么」的分析: 1234567现实问题 ↓领域对象分析(问题世界里有哪些对象) ↓ ...
03-功能点到功能流程与算法设计
Created2026-08-12|架构|业务分析•功能点到功能流程与算法设计
功能点 → 功能流程 + 算法设计:功能内部怎么执行 功能点回答「软件要提供什么能力」,功能流程回答「这个功能内部一步步怎么执行」,算法设计回答「每一步里具体的计算怎么做」。这一条线:分析功能点,得到功能流程和算法设计。它是四条分析链的第三条,也是最后把「业务」翻译成「程序执行」的一条。 一、功能流程:功能内部的执行步骤业务流程图是「用户视角」的流程,功能流程图是「程序视角」的流程——一个功能点内部,程序一步步做什么: 123功能点:读取进程内存 ↓ 功能流程(程序内部的执行步骤)ReadMemory → 检查参数 → 地址转换 → 调用驱动 → 返回数据 12业务流程图(用户视角):查看进程 → 选择进程 → 打开 → 读取 → 显示功能流程图(程序视角):检查句柄 → 地址校验 → 转换地址 → 读取 → 返回 业务流程描述用户的操作,功能流程描述程序的执行——同一件事的两个视角。 二、算法设计:功能流程里的计算功能流程的每一步,都可能需要具体的计算。算法就是这些计算: 123功能流程:ReadMemory → 检查参数 → 地址转换 → 调用驱动 → 返回数据 ...
02-业务流程到功能点
Created2026-08-12|架构|业务分析•业务流程到功能点
业务流程 → 功能点:软件要提供什么能力 业务流程描述「用户怎么完成任务」,功能点描述「软件需要提供什么能力来支撑这个流程」。这一条线:分析业务流程,得到功能点。它是四条分析链的第二条。 一、从流程到能力用户的任务不能由用户自己完成——要由软件提供能力来支撑。分析业务流程,就是要找出:每一步流程,软件需要提供什么能力。 123业务流程:查看进程 → 选择进程 → 打开进程 → 读取信息 → 显示 ↓ 每个环节都需要软件能力支撑功能:列出进程 / 打开进程 / 读取进程信息 / 显示信息 1234567流程步骤 需要的软件能力──────────────────────────────────查看进程 → 枚举进程列表选择进程 → 按 PID 定位进程打开进程 → 打开进程句柄读取信息 → 读取进程信息显示 → 输出格式化 功能不是凭空设计的——它从业务流程的每一步反推出来。 二、功能点:把功能拆到可设计的最小单元一个功能可能很粗(「管理进程」),需要继续拆成功能点: 12345功 ...
01-需求分析到业务流程
Created2026-08-12|架构|业务分析•需求分析到业务流程
需求分析 → 业务流程:用户要完成什么任务 需求回答「用户要做什么」,业务流程回答「用户怎么一步步完成任务」。这一条线:分析需求,得到业务流程。它是四条分析链的第一条——之后才是「业务流程 → 功能点」和「功能点 → 功能流程 + 算法设计」,而数据结构来自另一条独立的设计链(见线 04)。 一、需求分析:从想法到需求点开发不是从「写代码」开始,而是从「想法」开始。想法先要被分析成需求: 1234567想法(模糊的、零散的) ↓问题分析(要解决什么问题) ↓需求分析(要做什么) ↓需求点(一条一条可追踪的需求) 例如「做一个进程管理器」: 1234想法:我想看看电脑里有哪些进程在跑问题:怎么查看、怎么结束不想要的进程需求:列出所有进程、查看进程详细信息、结束进程需求点:① 列出进程 ② 查看进程详情 ③ 结束进程 需求点的关键:每个需求点都能被追踪——后面设计的功能、写的代码、做的测试,都要能对应回某个需求点。这是工程控制线里「确保每个需求都有归宿」的分析侧版本。 二、业务流程:用户怎么完成任务需求点说「要做什么」,业务流程说「用户怎么一步步完成」: 123需求点:查看 ...
15-游戏领域的工程地图
Created2026-08-12|架构|游戏•游戏领域的工程地图
游戏领域的工程地图——游戏是多工程组合体,还有普通软件没有的玩法工程与平衡工程一句话 游戏工程不是「游戏代码工程」,而是「创造游戏 / 实现游戏 / 理解游戏」三条线的组合体:创造游戏靠设计(玩法→规则→状态→事件→交互→反馈),实现游戏靠程序(逻辑/图形/音频/内容/工具/性能/测试),理解游戏靠逆向/调试/静态分析;此外游戏还有普通软件几乎没有的两层——把玩法本身做成工程的「玩法工程」,以及把数值做成反馈控制系统的「平衡工程」。 一、游戏工程的整体流程传统软件大致是: 1需求 → 设计 → 实现 → 测试 → 发布 游戏则更像: 12游戏目标 → 游戏概念 → 玩法设计 → 规则设计 → 世界/系统设计 → 交互设计→ 内容设计 → 技术设计 → 实现 → 调试 → 平衡 → 测试 → 打磨 → 发布 → 运营/迭代 最关键的是玩法和规则。例如闯关游戏的「玩家 → 移动 → 遇到敌人 → 攻击 → 敌人受伤 → 死亡 → 掉落 → 获得资源 → 下一关」实际上就是一个规则系统 ...
1…345…42
avatar
Theqiqi
Articles
415
Tags
259
Categories
26
Follow Me
Announcement
This is my Blog
Recent Post
03-反馈流2026-08-21
02-错误流2026-08-21
01-控制流2026-08-20
05-多系统协作的十条流2026-08-19
04-多层系统的十条流2026-08-18
Categories
  • C with Socks16
  • C_Sound10
  • C_Windows_Graphi9
  • Cpp5
  • Cpp_Socket4
  • C语言在Windows中实现抓包4
  • C语言的万种用法9
  • Debian1
Tags
十阶段 接口先行 Qt主题架构 WindowsDriver python 从输入到交互 select LinuxDriver 入口系统 UDP服务器与可靠性 微服务与组装边界 DLL javascript 多系统组成的网络通信软件 Piano 拆解资源 游戏类型演化 Kali 建模与逆向 BSD Sockets x86汇编程序 IPV4 Drvier 认知能力分解 技术流 qemu Ninja 业务流程到功能点 用头文件验证依赖 引擎组装 Sound 从状态到系统 epoll QEMU 依赖接口 shell 依赖关系 Graphi 拆解美术 只有组件的子系统如何被加载
Archives
  • August 2026128
  • January 20261
  • April 20251
  • March 202595
  • February 202523
  • September 20242
  • August 202471
  • June 20242
Info
Article :
415
UV :
PV :
Last Update :
©2020 - 2026 By Theqiqi
Framework Hexo|Theme Butterfly
Search
Loading the Database