设计「业务」与「技术」方案
三天研发,两天设计;
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…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...