今天跟同事们聊到要给我们的系统设计一套框架。我问他想要个做什么的框架,他给了我一张图:

我第一感觉是:这不就是SpringMvc的Dispatch Servlet么?第二感觉是:这位同志哥好像没想清楚自己想要什么样的框架。

好的框架至少要有两个功能。

第一个功能是减少重复工作、提高开发效率。例如SpringMvc/Struts,减少了Http的重复操作;Hibernate/MyBatis,减少了JDBC操作;另外公司有些业务框架会将重复的业务功能放到框架中。这都起到了提高开发效率的作用。

第二个功能抽取、规范业务逻辑。我在公司写过账务功能的、审批功能的、任务分派的业务框架,基本都是这一类型。这类框架与其称为业务框架,不如称为业务模型。它有助于理解产品和业务逻辑,也便于维护现有功能和扩展新功能。

不过,严格的业务模型与系统优化之间往往是有冲突的。这个带过。

从提高开发效率的角度来讲,那位同志哥的框架要做的事情,基本上SpringMvc已经替我们做了。

从规范业务逻辑的角度来说,这个框架可以承担一部分责任。但是,不同的业务之间千差万别,要把它们全部装进一套处理逻辑里,有点挑战。

转载于:https://blog.51cto.com/winters1224/1881389

设计讨论:设计什么样的框架?相关推荐

  1. UI设计实战篇——利用Bootstrap框架制作查询页面的界面

    Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不 ...

  2. MicroPython中I2C模块的设计与实现(1) - machine_i2c框架的机制

    MicroPython中I2C模块的设计与实现(1) - machine_i2c框架的机制 苏勇,2022年3月 文章目录 MicroPython中I2C模块的设计与实现(1) - machine_i ...

  3. 实战项目:设计实现一个流程编排框架(实现)

    上两篇文章主要讲了<[实战项目:设计实现一个流程编排框架(分析)(https://mp.weixin.qq.com/s/veLQZJqYNKbYvuCi7Pf_nA)]><实战项目: ...

  4. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

    软件工程课程设计·SOA架构搭建SSM框架的网上商城系统 项目简介 本系统利用SSM框架.Dubbo框架.Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块.购物车系统模块.搜索系 ...

  5. 手把手教你如何自己设计实现一个深度学习框架(附代码实现)

    作者丨王桂波@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/78713744 编辑丨极市平台 导读 本文首先从深度学习的流程开始分析,对神经网络中的关键组件抽象,确定 ...

  6. python接口测试框架与自动化实战_Python接口自动化从设计到开发,测试框架实战与自动化进阶视频课程...

    Python接口自动化从设计到开发,测试框架实战与自动化进阶视频课程21套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白 ...

  7. 视频教程-热更新框架设计之客户端热更框架(中部)视频课程-Unity3D

    热更新框架设计之客户端热更框架(中部)视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件 ...

  8. Android设计一个图片加载框架

    本文不是具体编码去实现一个图片加载的框架,而是从理论上来讲解设计一个图片加载框架的注意事项和涉及的知识点,提供一个思路,或者帮助童鞋们应付面试.目前Android 发展至今优秀的图片加载框架太多,例如 ...

  9. 实战项目:设计实现一个流程编排框架(设计)

    上一篇文章我们讲了<实战项目:设计实现一个流程编排框架(分析)>主要对流程编排框架产生的背景,并做了需求分析,这其中包含功能性需求和非功能性需求,算是在正式开始设计之前做一个铺垫. 前面提 ...

  10. php网页课程设报告,网页设计课程设计报告

    <网页设计课程设计报告>由会员分享,可在线阅读,更多相关<网页设计课程设计报告(10页珍藏版)>请在人人文库网上搜索. 1.网页设计课程设计报告系别: 计算机科学系 班级: 0 ...

最新文章

  1. 2022-2028年中国免疫诊断行业市场前瞻与投资战略规划分析报告
  2. 《从问题到程序:用Python学编程和计算》——第2章 计算和编程初步 2.1 数值表达式和算术...
  3. Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x480的分辨率选项
  4. 【学习笔记】SAP CO模块概念信息(上)
  5. cad立面索引符号 规范_一套标准规范施工图包含哪些?13年深化设计师3分钟带你正确认知...
  6. Node.js初接触(一)
  7. 第六十期:华为:希望把VR/AR打造成下个智能手机产业
  8. layui自带验证体系:手机号验证、邮箱验证、必填项非空验证、数字验证(含代码、案例)
  9. 关于开票本的几个操作细节
  10. Android------startActivityForResult的详细用法
  11. Hive date_format函数入门
  12. 【优化算法】多目标萤火虫算法(MOFA)【含Matlab源码 1595期】
  13. 【odoo15】添加Chatter到表单视图,创建[发送消息][记录备注][安排活动]
  14. 全球重磁异常以及水深数据分享
  15. VScode remote development 远程开发
  16. 7.Python条件语句之if语句——从入门到实践
  17. 从想法到实干,2018年13项NLP绝美新研究
  18. docker镜像原理基础与dockerfile部署springboot项目
  19. 太极阳支持的Android版本,三星 Android 7.0 无法使用太极阳
  20. [MOP]出轨札记【原创】(又名:断翅的蝴蝶)

热门文章

  1. python从菜鸟到高手 pdf 百度云_Python从菜鸟到高手(4):导入Python模块
  2. easyplayerpro 使用说明_H265网页播放器EasyPlayerPro-Win如何通过配置文件实现自动播放等功能?...
  3. layui 按钮点击一次后失效_electron-vue自定义边框后点击事件失效问题
  4. android打开sqlite数据库,Android:打开和关闭SQLite数据库
  5. MediaStreamAudioSourceNode
  6. 如何解除服务器注册,《天龙八部手游》服务器注册上限怎么办 服务器注册方法...
  7. android+噪音测试,关于噪音测试App的选择与使用
  8. vmware-vmx.exe无法结束进程_孤儿进程与僵尸进程产生原理分析,以及终极解决方案案例实现...
  9. python做界面用什么软件好_pyqt | 做一个好用的图形界面软件
  10. AD域首次登陆修改密码设置