如何写复杂业务系统
引言 本文只是一家之言。 本文是一系列文章的缩略版本(完整版只写了个开头),尽量只讲具体的东西,如果有东西太干了,没有具体的“体感”,是作者的责任。 不喜欢看纯理论分析的可以跳到单一系统层次和模块设计(大多数人可能更加关注这一节,其实前面的部分更重要)。 几个很干的原则 解决复杂问题要用高级思维,不要用低级思维。 蚂蚁/ebay 等若干家企业架构师四大原则 - 听过的可以往下跳: 分治(其他所有原则都是从分治里衍生的) 分层 抽象 演化 solid 5 原则很重要很重要 -很多人读过,很多人可能没有读过,温故知新很重要。 注重过程质量,拿到结果质量。 业务系统为什么难写? 纯粹的业务驱动:技术的输入和决策完全来源于业务同事,甚至只受业务摆布的团队,架构容易混乱 业务又不懂架构、业务又不懂功能点罗列的合理性,业务只会往技术团队身上扔需求。 怎么把需求和实现分门别类是技术自己的事情。 但技术人员如果一直都很忙,没有自己的空闲时间或者对设计洁癖的坚持,慢慢地就会养成“把需求翻译成代码,然后往老的系统里面扔”(混乱根源 1)的坏习惯- 问题:翻译只是普通的低级思维,不能解决很复杂...
Untitled
写文档的过程就是思考的过程。如果让 AI 帮我们写文档,很容易我们会忘记了思考。我们要做上位的思考者,而不是 AI token 的跟随者。 评审的过程既是当局者迷、查漏补缺的过程,也是达成共识,帮助别人建立思考的过程。 流水账的系分就好像最简单的把大象放进冰箱里。缺少问题、选择和局部数据-要把商业化目标映射到各个局部数据上,包括业务目标和技术目标。 分布式系统一定带有 CAP 和规模问题的,设计时一定要考虑清楚。 一定要记得保留数字标题前缀,这样可以在目录里恰当地理解结构深度。 图例 红色代表变更/新增功能 蓝色/黑色代表原有功能 1. 需求分析 1.1 原始需求 1.2 需求背景 1.3 需求收益 1.4 术语解释 名称 解释 例子 例子 1.5 流程分析 1.6 用例分析 1.6.1 业务用例分析 1.6.2 系统用例分析 2. 功能性设计 2.1 交互设计 2.2 架构变动 此处给出类似4c的组件图 2.3 流程变动 2.4 领域模型变更 要有枚举变更、领域名词变更 2.5 数据模型变更 2.6 状态机变更 2.7 关键时序 对 sla 的需求是什么...
神经衰弱和强迫观念的根治法
写在前面的话 强迫症是一种观念冲突,不能摆脱这种冲突,则人生的心境进退不得。 神经衰弱是文化发展带来的弊端。Civilization 等同于 Syphilisation。身心过劳,导致神经衰弱,也会治愈神经衰弱。 精神疗法的不切实际,来自于忘却回归自然的原理,滥用脱离实际、纸上谈兵的条条框框。一般街头流行的售药广告,把可怜巴巴的病人毒害得苦不堪言。 当今医学界过分注意物质因素,忽略精神因素。疾病在各方面表露出来的症状,是它自身各方因素综合作用的必然结果,并非神经衰弱加进去的。疲劳导致的痛苦不算神经衰弱。 神经质实际上是由过分看重疾苦,担心患病这种基本精神状态引起的。 用钝感保护自己,注意力不要过度集中,不要强制自己变得乐观。 哪些是长期趋势里一直存在的,我们如何将它分离出来,加以合理对待。 迷惘是无焦点而无法做选择,破除迷惘的方式是试错。 身入深山不见山是常态,不要纠缠于当时的感受,要明白真正的为人处世之道。 不以物喜不以己悲意味着鞍下无马,**要把喜放掉,才能放掉悲。**而且要先无喜才能后无悲,这个先后顺序让人难以破除人性的诱惑。 太执着于当下只会引发不清醒和迷信,自业自得,自...
面向测试编程
什么是单元测试,什么是集成测试 单元测试是只测试一个特定单元的测试,如果测试需要启动多个层而不是只启动这个被测试单元,那它就是一个集成测试。 测试金字塔 测试金字塔描述了理想测试套件的结构:大量快速的单元测试构成底层,适量的集成测试构成中层,少量的端到端测试构成顶层。单元测试运行速度快、维护成本低,应占测试套件的70%以上;集成测试验证组件协作,约占20%;端到端测试验证完整用户场景,约占10%。遵循金字塔原则能保证测试反馈速度和成本效益的平衡。 测试策略选择 选择测试类型时需权衡速度、可靠性和成本。单元测试适合验证复杂业务逻辑和边界条件,应优先编写;集成测试适合验证组件协作和配置正确性,用于覆盖单元测试无法触及的边界;端到端测试适合验证关键用户路径,但维护成本高,应谨慎使用。 代码分类测试策略 一种比较前沿的观点认为:访问代码、管理者代码、存储代码和业务代码里,只有第四种需要测试,其他的逻辑的正确性只要由顺序执行保证就行了。这第四种测试,是不需要mock的,尽量使用main就能启动。这就要求把业务逻辑和输入输出解耦。和输入解耦比较简单,和输出解耦需要一定的巧思——把业务逻辑写成...
日程管理模板
分类 本日 明天 本周 本月 本半年 本年 个人+组织 换行换行 个人:需要消费的东西 个人:对别人的承诺/责任 个人:需要干掉的东西 个人:生活上的下一步 个人:需要掌握的技能 组织:基本任务 个人:基本功锻炼
领导梯队笔记
何谓领导梯队 定义 领导梯队:英文(leadership pipeline)应该更合适,不同层级更像是一个管道,会流转会转弯。这个转弯非常重要,每个人不是通过走直线,而是需要通过转折完成转变。在每一层级都需要不同的工作技能、时间分配方式、价值导向。如果你不能很好地意识到这个转变,就不利于完成这个转变。在公司里面如果某个层级出现问题,这级管道堵塞了,那么剩下的都会出问题。因为人才培养除了自己努力,直接上级是起很重要作用的,不然会阻碍下级的提升,所以有一级管道堵住了后面就会没有水。 比较科学的组织结构,是Enterprise-BG-BU。 管理自己——管理他人——管理管理者——管理职能(FM)——管理事业部(BM)——管理事业群(BGM)——管理企业(EM) 德鲁克说过:没有能力或者不愿意因新职位的需求而做出改变。管理者继续沿用先前的成功方法二不能进化,几乎是注定要失败的。 德鲁克还说:管理本质上不是science(科学),而是practice(实践)。没有实践并不能真的学会。所以实践是关键。但理论框架体系的支撑也很重要,它决定了最终成就的高度。《领导梯队》提高了认知起点,不用在...
What is the best comment in source code you have ever encountered? [closed]
What is the best comment in source code you have ever encountered? [closed]
MyBatis 关键代码分析
如何创建 SqlSession org.apache.ibatis.session.defaults.DefaultSqlSessionFactory 12345678910111213141516171819202122232425262728// 在应用程序中通过sqlSessionFactory获取一个SqlSession对象执行CRUD操作SqlSession sqlSession = sqlSessionFactory.openSession(true);// 在DefaultSqlSessionFactory中获取SqlSession对象@Overridepublic SqlSession openSession(boolean autoCommit) { return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, autoCommit);}// 通过MyBatis配置参数构建SqlSession对象private SqlSession open...
JDBC 问题
JDBC URL参数解析 参考《mysql JDBC URL参数解析》 JDBC数据源配置.xmind jdbc 调用层次 在创建事务的时候,调用 createTransaction 会先 getConnection。一开始的时候先试用发出两条语句:select 1;set autocommit=1;测试连接可用性。 12345678910112 = {StackTraceElement@24652} "com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)"3 = {StackTraceElement@24653} "com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2482)"4 = {StackTraceElement@24654} "com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.j...
《2021年上半年互联网财产保险市场研究报告》解读
《2021年上半年互联网财产保险市场研究报告》 背景:新冠疫情、平台经济反垄断。 特点:业务恢复性增长、产品业态丰富化、市场发展规范化。 业务恢复性增长 行业只有70余家财产保险公司。 上半年互联网财产保险保费规模排名,前三名为【众安保险】、泰康在线和人保财险。 产品业态丰富 **互联网车险凭借其优于线下传统渠道的运营效率和客户服务体验,有效吸引了客户。**这是互联网的技术优势。 互联网意外健康险(也被算在财产险里?):规模占比超40%,产品创新迫在眉睫。尤其是短期健康险,由于其价格低、保额高、保障范围相对较广等特点,在近三年呈现高速增长。以百万医疗险、城市定制型补充医疗保险(以下简称“惠民保”)等为代表的短期健康险的逐步普及,为提高大众风险保障意识起到了积极作用。 互联网信用保证险:助力实体经济,保费实现高速增长。 场景保险值得注意的有: 酒店取消险。 退货运费险。 宠物保险。 这些保险要解决数据积累、风险识别、理赔标准建立、反欺诈管控、服务提升等问题。特别要小心逆选择。 《互联网保险业务监管办法》下发后,行业经营更加规范化,专业中介机构保费占比上升。2021年上半年,互联...






![What is the best comment in source code you have ever encountered? [closed]](/img/wall-paper-133.jpg)








