软件设计要素初探:业务模式

“软件设计要素初探” 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文讨论业务应用中的常见套路:业务模式。

概述

软件开发过程中,交织着对业务规则、业务流程的认识、理解、设计、实现。业务模式是对业务规则和流程的常见相似性、以及特定业务的数据处理能力的提炼,是业务应用系统中的常见套路。掌握这些套路,有助于更快更好地设计与实现业务。

模式清单

  • 参数检测模式:调用身份检测、权限校验、空检测、时间参数检测、业务约束检测、存量检测;
  • 健壮服务调用模式: 健壮地调用服务接口。若调用成功,则抽取数据部分;若调用失败,适当地打印错误日志和返回错误信息;
  • 多源数据组装模式: 从多个服务接口源获取数据后进行组装,进行下一步健壮服务调用。
  • 数据解析与转换模式:从一个对象转换到另一个对象;在对象、Map、JSON之间互转;属性拷贝。
  • CRUD模式: 增删查改,经典的数据库访问模式。
  • 接口正交模式:API接口是正交的无重叠的可灵活组合的,比如先搜索关键词列表再根据关键词列表获取详情,而不是在搜索接口中把详情数据一并返回。
  • 幂等处理模式: 识别重复请求并进行相应处理(直接返回最近一次处理的结果、忽略、报错等)。涉及金额和数据一致性的地方尤其要细心。
  • 事务处理模式: 多个数据存储操作作为一个原子性操作要么全部成功要么全部失败,不存在未完成的不完整的中间数据存储状态。
  • 资源互斥同步模式: 多个线程同时写操作相同的资源时,进行资源互斥同步。
  • 多任务模式: 将任务分解为多个子任务,启动多个线程或进程来执行子任务,然后汇总子任务的结果集得到最终的结果。
  • 上下文模式: 对于长链路复杂请求处理,创建一个上下文对象,在该上下文对象里传递处理请求所需要的必要信息。最好仅将该对象作为函数或方法参数而非实例变量,避免引起不必要的并发问题。

原文地址:https://www.cnblogs.com/lovesqcc/p/9502516.html

时间: 2024-07-30 19:20:43

软件设计要素初探:业务模式的相关文章

软件设计要素初探:架构模式

在 "软件设计要素初探" 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素.本文探讨系统组件交互的架构模式. 架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构.组件化是使用架构模式的前提. 可参阅 <面向模式的软件架构>了解更多架构模式. 分层模式 分层模式: 将应用划分为多个层次,定义各层的接口.任务抽象及消息格式,以及各层之间的通信与交互.业务系统通常会划分为业务逻辑层.服务层.领域层.数据层.网络栈协议是分层模式的典型应用.应用分

软件设计要素初探:软件设计的一些子主题

在 "软件设计要素初探" 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素.本文主要探讨一些稍小的设计子主题,主要包括:错误处理.结构性难题.整体与兼容.设计取舍.设计与重构.设计与质量.设计与细节.维护与扩展.测量技术. 错误处理 错误处理关乎系统的健壮性,且是全局性设计问题.一个整体的错误处理架构主要包括两部分: 参数的严格校验.规范而易于理解的错误码和错误消息.无遗漏的异常捕获和转译.警告和错误日志输出: 一致的错误处理机制.不同级别错误的处理策略. 第一部分并不需要

Atitit.&#160;软件设计&#160;模式&#160;变量&#160;方法&#160;命名最佳实践&#160;vp820&#160;attilax总结命名表大全

Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全 1. #====提升抽象层次 1 2. #----使用通用单词 1 3. #===使用术语.. 1 4. #===使用缩写 2 5. #====自己最孰的语言(diaglog??) 2 6.  2 7. #====normal naming + anno 2 8. #----jsp页面的名称,最好不个mod_list.jsp 2 9. 名词优先与动词 2 10. 变量的常用前缀 2 11. 常用命

软件设计

软件设计 一定是创建订单的时候填充market字段,我曾经一度打算在回调的时候再根据回调方来填充Market,但是如果没有回调呢?Market这样的标志性字段一定要依赖于靠谱的操作: 对于重载方法要注意,尤其套调用的重载方法,对于某些核心校验必须要放置在里层方法调用,否则因为重载都是public出去的,都可以被外界调用,如果在外层方法实现校验,里层重载方法被外界直接调用,校验会被跳过:考虑CheckMarket是放在CreateOrder(String encryptedString)还是Cre

主流MVC框架的设计模式及遵守的软件设计原则

原文地址,会不断更新  http://it.zuocheng.net/mvc-design-pattern-design-principle-summary   作程的技术博客 本文以主流的MVC框架为例,比如Java 的SSH.PHP的Symfony和Zend Framework ,在简单地剖析他们的设计原理之后,找到其中使用的设计模式:鉴赏他们的代码实现,查看设计者们都遵守了哪些软件设计原则.作此文,一为学习,二为总结.其中下面所写内容可能并不全面,也可能不准确,但会不断修改完善. 框架模式

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

.NET应用架构设计—重新认识分层架构(现代企业级应用分层架构核心设计要素)

阅读目录: 1.背景介绍 2.简要回顾下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴露出来) 3.2.应用层中的应用控制器模式(通过控制器模式对象化应用层的职责) 3.3.业务层中的命令模式(事务脚本模式的设计模式运用,很好的隔离静态数据) 4.服务层作为SOA契约公布后DTO与业务层的DomainModel共用基本的原子类型 5.两种独立业务层职责设计方法(可以根据具体业务要求来搭

zz从面向对象的设计模式看软件设计

原贴:https://coolshell.cn/articles/8961.html 前些天发了一篇<如此理解面向对象编程>的文章,然后引起了大家的热议.然后我在微博上说了一句--"那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了--OO的设计模式思想和Unix的设计思想基本没什么差别",结果引来了一点点争议.所以,我写下这篇文章把我的观点说明一下.我希望这样可以让大家更容易地理解什么是设计模式.我顺便帮OO和 Unix/Linux搞搞基. 什么是模式

软件设计过程经验谈 之 如何做好领域模型设计

经常听到领导教诲,开发的同事应该要往前走一步,去做产品?去做售前?这也是一种方式,只不过是一大步.个人觉得,在迈出这一大步之前,需要先走出一小步:从写好代码到做好设计. 下图是按照软件工程的通用做法,梳理出的标准设计指南,已经非常清晰地定义了软件设计的阶段和活动,产物规约,文档要求以及需要配合的培训.比较适合于人朋规模大.产品化程度高.外包服务模式.按照这个标准的设计指南,把每一阶段的事情做好,这是标准的开发方法论的实践指导. 有人会说,现在是移动互联网的时代,我们的产品开发要求短.频.快地上线