设计「业务」与「技术」方案
三天研发,两天设计;
01
【优先做设计方案】
职场中的那些魔幻操作,研发最烦的是哪个?
作为一个数年且资深的互联网普通开发,可以来说明一下为什么是:缺乏设计;
面对业务需求的时候,可能都听过这样一句话:
这个很简单,直接开发,三天内上线;
产品听了流泪,测试见了崩溃,研发眉头一皱直呼什么鬼;
如果没有听过,那么职场的经历可能是不完美的,但是幸运爆棚;
这种魔幻般的神奇操作,逻辑在哪里?底线在哪里?唯独离谱在这里;
从实践经验上来看,产品研发抛开业务设计所带来的反伤,也许会迟到,但绝对不会缺席;
所谓的简单业务流程,仓促上线之后,后续补坑的成本可能高的离谱;
相对于完整的研发周期来说,设计、落地、一次性的高质量完成,就是成本最低,效率最高的决策;
对于研发角色,方案设计通常就是围绕技术和业务两个核心;
02
【常用的方法论总结】
在做方案设计时,必然要运用一些基础的方式方法;
有关方法的经验总结很多,但是真正常用的并不多,以下只围绕个人在工作中常用的几个来分析;
- 本质:
理解本质的时候,必须明确在一定的空间和时间范围内,需要有边界约束;
如果范围扩大,考虑的因素太多,相互间的影响和关联过度复杂,脱离实际太远,很难得出符合现状的结论;
在工作中时常会说:透过现象看本质,理解不同事物的共性和个性,判断发展逻辑;
那么,如何理解产品研发的本质?
基于业务的供需关系,持续打造优质的产品服务;
这个描述只是个人的实践体会,对于事物的本质理解,应该简单明了,直击核心内容;
- 矛盾
矛盾是指事物内部以及事物之间的对立统一关系,虽然概念很抽象,但现象几乎是无处不在;
用通俗的方式来理解,就是需求和利益之间的冲突且统一的关系;
以常见的平台商业形式来思考;
平台方:希望以低成本的服务获取更高的营收;
客户方:希望以低成本获得更好更优质的服务;
平台与客户双方,都希望低成本付出,获取更高的回报,矛盾就这样产生了;
但是,平台失去客户,没有持续生存的能力;客户本身又依赖平台服务,关系既统一又存在冲突;
双方的合作,随着不同阶段的核心问题被解决,即事物的不断发展变化,新的问题和矛盾也会出现;
- 系统
理解事物的全貌,横向扩展的广度,纵向发展的深度,在时间空间的变化中,以动态的思维应对事物的变化;
简单的说就是:全面的看事物,系统的解决问题;
以实际的研发案例来分析;
面对并发业务的复杂流程时,比较经典的就是抢单场景,处理的思路有很多种;
如果资源足够,直接扩展以支撑请求处理;
如果资源不足,可以限制请求端的放行比例,服务端只处理少量请求;
或者服务端对请求异步解耦,快速失败掉大量的请求;
所以在面对问题时,不必只片面的看一个方向,围绕问题的矛盾多方,统筹寻找平衡的解决方法;
- 周期
在周期现象中,存在事物的发展和演变规律;
即事物在运动、变化的发展过程中,某些特征多次重复出现;
比较经典的现象就是业务的发展周期:孵化期、验证期、成长期、成熟期、衰退期、转型或者消亡期;
理解事物的发展周期,可以在不同的阶段把握核心事项,解决关键问题;
- 分治
分而治之是研发的核心能力之一,强调对复杂事物的拆解能力;
随着技术水平的成长,面对的业务问题也更加复杂,必须具备拆分能力,分而治之;
流程的分段管理;技术与业务的分离;代码工程的分层维护;系统的分布式架构;
这些都是研发过程中常用的分治手段;
面对诸多的方法论,首先围绕几个基础方法进行思考和实践,从而理解其内涵和精髓;
然后,再借鉴其他的方法,形成自己的方法体系;
基于一些核心的方法论之上,再去思考业务和技术的设计,在思路上就会成熟很多;
03
【如何分析业务】
想要分析业务,首先要深刻的理解和洞察业务整体;
在个人习惯上会考量三个层次:首先理解业务全貌,其次理解负责的业务板块,最后理解具体的业务需求;
- 理解业务全貌
理解业务全貌,本质就是明白公司在做什么,组织架构的协作流程,团队的工作方向;

业务的常规定义:行业的基本模式,运作的流程,具体的事务执行;
在实际的工作中,职级越高越是需要具备对业务全貌的分析能力;
行业分析并非普通玩家所能理解的,需要极其顶级的思维和知识储备,以及对各个信息的统筹分析;
作为研发来说;
应该理解业务的投入和营收,并且能意识到这种模式是映射到产品设计或者服务中的;
必须理解业务模式所对应的产品矩阵设计,各个核心功能的流程和路径;
- 理解负责的业务板块
个人的工作习惯,并不是常规的流程机制;
明确自己负责的业务板块,把握工作重心,不同阶段中调整能力的输入(学习)和输出(生产价值)策略;

产品矩阵的设计与业务模式有直接关系,也是梳理自己工作板块的核心依据;
对于产品来说,常见的拆分有两种;
例如以端口为依据划分的C端和B端,以系统为依据划分的业务应用和数据应用;
对于业务来说,拆分的模式则更加灵活;
在运营概念上可能有多个业务线,但是对于研发来说,各种业务线之间存在诸多的流程交互;
对于个人来说,可以从业务、技术、数据三个基础的方向梳理,或者根据具体的运营模式梳理;
理解业务全貌和个人的负责板块,以此明确工作重心和方向;
- 理解具体的业务需求
理顺业务全貌与自己负责板块,更偏向于内在的务虚方向;
研发对于职场的真正价值,还是在于各个版本的具体需求实现;

分析具体的业务需求时,依然有一个对齐的过程;
将具体的业务需求向业务全貌对齐,理解其价值所在;
将业务需求向自己的工作板块对齐,理解自己的价值所在;
实现版本的业务需求,既要对齐大的业务框架,也要理清需求本身,把握版本落地的质量;
04
【理解技术架构的演进】
对于技术规划来说,通常分为:业务和技术两个方向;
可以分析一个复杂系统的迭代过程,从而理解技术方案在规划设计上的演变规律;
- 横向扩展
从架构的概念来描述:单服务、集群模式、分布式服务、系统级分拆;

横向扩展,其映射的是业务流程和模式的复杂度,随着业务的不同发展阶段,需要进行不同级别的服务拆分;
- 纵向扩展
从单个系统架构的纵向来分析:展现层、应用层、业务层、组件层、存储层;

纵向深入,其映射的是业务逻辑的复杂度,在纵向上进行分层设计,可以降低逻辑管理的难度;
- 业务研发
基于常规的分布式系统来看,业务研发在演变的过程中,也会拆分为应用级业务,公共业务两大板块;
应用业务实现的是具体需求场景,而公共业务则是大多数应用都依赖的基础业务能力;
- 技术研发
基于常规的分布式系统来看,合理的架构设计,必然会追求技术与业务的分离;
在代码工程的分包上,可以独立封装技术层面的组件应用,以便于统一维护和升级;
在服务级别上,可以将组件服务拆分为业务(侧重业务解决方案)与技术(侧重技术解决方案)两个层次;
分析业务,把握技术架构的演进历程,将二者进行统筹结合,就是方案设计的主线;
05
【统筹技术和业务方案】
设计研发方案,自然需要把握业务的整体,规划技术架构,确保业务和技术双线推进;
方案的核心则是围绕当前阶段的具体业务需求,设计实现流程、目标、指标;

- 业务和技术的演进
分别把握整体与阶段的核心目标,作为方案设计的基础指导原则;
从业务整体上看,系统建设与技术架构应该围绕大的业务目标去考量,支撑或者驱动业务发展;
从业务阶段上看,把握当前阶段的业务本质,关键问题与核心矛盾,在版本需求中有序解决;
- 业务和技术的流程
分析业务的运转流程和特征,映射为技术的实现过程,作为方案设计的核心思想;
业务的运转流程,围绕客户、产品、组织协作来设计,侧重于场景的分析;
业务映射的系统流程,将业务流程和特征转化为系统实现的流程,侧重于两者的统筹分析;
核心逻辑的实现流程,围绕具体需求,设计逻辑时序图,侧重于关键问题的分析;
- 业务和技术的目标
围绕具体需求,设定相应的目标和指标拆解,作为方案执行结果的考量标准;
版本需求立项之时,就对结果有明确的预期,目标贯穿业务需求的完整周期,在组织协作中是关键导向;
指标用来衡量目标达成的执行过程和最终完成度,侧重于对目标进行验证;
综合来看,对于业务和技术的方案来说;
有业务的整体思考,技术的系统性架构,具体需求的核心设计与落地执行,以及目标和指标的衡量标准;
06
最后,回到工作实践中来,做事虽然有很多方式方法,但是从来没有绝对的标准;
业务也好,技术也罢;
在周期演进的过程中,始终受到组织架构和团队人员的最根本影响;
所以在输出业务和技术方案时,要围绕环境的真实现状,做出相应的调整优化,把握核心即可;
相关文章:
设计「业务」与「技术」方案
三天研发,两天设计; 01【优先做设计方案】 职场中的那些魔幻操作,研发最烦的是哪个? 作为一个数年且资深的互联网普通开发,可以来说明一下为什么是:缺乏设计; 面对业务需求的时候,…...
C/C++:预处理(下)
目录 一.回顾程序的编译链接过程 二. 预处理之预定义#define 1.#define定义的标识符 2.#define定义的宏 3.带副作用的表达式作为宏实参 4.两个经典的宏 5.#define使用的一些注意事项小结 6.宏与函数的比较 7.#undef 附:关于#define的三个冷知识 三. 条件…...
2023互联网相关岗位转行与就业选择的简单分析
文章目录1、城市2、岗位1、城市 能找得到工作的城市,可能主要也就这些base了 2、岗位 主要技术岗位 Python 侧重人工智能,人工智能门槛高大家心知肚明。如果学python 不走人工智能,只走单纯的后端开发,不管从薪资还是岗位数量…...
LeetCode·每日一题·1223.掷骰子模拟·记忆化搜索
作者:小迅链接:https://leetcode.cn/problems/dice-roll-simulation/solutions/2103471/ji-yi-hua-sou-suo-zhu-shi-chao-ji-xiang-xlfcs/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权࿰…...
【GPLT 二阶题目集】L2-043 龙龙送外卖
参考地址:AcWing 4474. 龙龙送外卖(杂题选讲) 作者:yxc 感谢y总! 龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以…...
Maven:基础知识
Maven概念图生命周期目录工程创建测试常用命令COMPILATION ERROR : 不再支持目标选项 5。请使用 7 或更高版本。问题解决pom.xml文件properties配置示例scope配置详解概念图 依赖管理构建项目Maven 的底层核心实现项目的构建和管理必须通过插件完成,但插件本身并不包…...
Web 框架 Flask 快速入门(一)flask基础与模板
前言 课程地址:Python Web 框架 Flask 快速入门 文章目录前言🌴 Flask基础和模板🌷 一个简单的flask程序🌼 模板的使用🌴 Flask基础和模板 1、web框架的作用 避免重复造轮子,app程序不必关心于服务器的沟…...
1CN/Jaccard/PA/AA/RA/Katz/PageRank/SimRank
common neighbors(CN) 公共邻居的数量。 Jaccard 用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。 preferential attachment(PA) 节点倾向于连接到节点度较高的节点上,&…...
YOLOv5-Backbone模块实现
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章地址: 365天深度学习训练营-第P8周:YOLOv5-Backbone模块实现🍖 作者:K同学啊一、前期准备1.设置GPUimport torch from torch impor…...
【C语言】程序环境和预处理
🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…...
9.关系查询处理和查询优化
其他章节索引 梳理 名词解释 代数优化:是指关系代数表达式的优化,也即按照一定规则,通过对关系代数表达式进行等价变换,改变代数表达式中操作的次序和组合,使查询更高效物理优化:是指存取路径和底层操作算…...
计算机组成原理(三)
5.掌握定点数的表示和应用(主要是无符号数和有符号数的表示、机器数的定点表示、数的机器码表示); 定点数:小数点位置固定不变。 定点小数:小数点固定在数值位与符号位之间; 定点整数:小…...
C. Least Prefix Sum codeforces每日一题
🚀前言 🚀 大家好啊,这里是幸麟 🧩 一名普通的大学牲,最近在学习算法 🧩每日一题的话难度的话是根据博主水平来找的 🧩所以可能难度比较低,以后会慢慢提高难度的 🧩此题标…...
ASEMI三相整流模块MDS100-16图片,MDS100-16尺寸
编辑-Z ASEMI三相整流模块MDS100-16参数: 型号:MDS100-16 最大重复峰值反向电压(VRRM):1600V 最大RMS电桥输入电压(VRMS):1700V 最大平均正向整流输出电流(IF&#…...
【第37天】斐波那契数列与爬楼梯 | 迭代的鼻祖,递推与记忆化
本文已收录于专栏🌸《Java入门一百例》🌸学习指引序、专栏前言一、递推与记忆化二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、【例题1】1、题目描述2.解题思路3、模板代码4、代码解析5、原题链接三、推荐专栏四、课后习题序…...
Map集合
Map集合 Map接口的简介 Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。 Map 没有继承 Collection 接口,…...
PyQt5编程扩展 3.2 资源文件的使用
目录 本例运行效果: 设计Qt窗体 建立项目 放一个Group Box 放三个Label 放一个Horizontal Slider 放两个Line Edit 层次结构 布局 放一个Group Box 放两个Label 放两个Line Edit 放一个Push Button 层次结构 布局 放一个frame 层次结构 布局 窗体…...
Linux系统之文件共享目录设置方法
Linux系统之文件共享目录设置方法一、本次实践目的二、检查本地系统环境1.检查系统版本2.检查系统内核三、创建相关用户及用户组1.创建共享目录2.创建测试用户账号3.创建用户组4.设置用户的属组5.查看admin和IT用户组成员6.查看所有用户信息四、共享目录权限设置1.设置/data/so…...
上海亚商投顾:三大指数均涨超1% 芯片板块集体大涨
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪三大指数今日低开高走,午后集体涨超1%,创业板指盘中涨超1.7%。芯片板块集体大涨,…...
Harbor私有仓库部署与管理
目录 前言 一、Harbor概述 二、Harbor 的特性 三、Harbor的构成 四、Harbor构建Docker私有仓库 1、环境配置 2、案例需求 3、部署Harbor服务 3.1、部署docker compose服务 3.2 下载或上传Harbor安装程序 3.3、启动Harbor 3.4、查看Harbor启动镜像 4、物理机访问se…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
