分层开发思想和小笼包

《QEMU/KVM源码分析与应用》读书笔记4 —— 第2章 QEMU基本组件(1) 阅读详情
早上吃早点的时候,突发灵感,结合吃的小笼包和日常的开发经验来说一下分层的应用。 首先,谈一下什么是三层架构,所谓的三层开发就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,有的还要细一些,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。 软件要分层,其实总结一句话,是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。  这种三层结构有什么优势呢?    1. 通过将整个系统分为不同的逻辑块,大大降低了应用系统开发和维护的成本。  三层结构将表示部分和业务逻辑部分按照客户层和应用服务器相分离,客户端和应用服务器、应用服务器和数据库服务器之间的通信以及异构平台之间的数据交换等都可以通过中间件或者相关程序来实现。当数据库或者应用服务器的业务逻辑改变时,客户端并不需要改变,反之亦然,从而大大提高了系统模块的复用性,缩短了开发周期,降低了维护费用。  趣味理解:  假设饭店这样来做小笼包:      一层蒸饺,      一层肉包,          一层素包。  首先这种方式我们可以让做包子的分成不同的小组,来负责做不同的包子。当做好了每一种包子,他们可以很方便的知道,该放到哪个笼里,不至于挨个去查看该放在哪里,我们也很容易地将笼屉放到火上面去,而不会影响其他笼的加热。当我们要吃肉包或蒸饺时,我们也很容易就能找到我们所需要的,非常节省时间和体力。把肉包或蒸饺拿走或者增加,并不影响素包的加热。  如果我们把这些都放在一个大笼里,你觉得会怎么样?会不会很乱,维护起来很浪费时间,不但找起来麻烦,而其每次揭开锅都会对其他的有影响。    2. 将数据访问和逻辑操作都集中到组件中,增强了系统的复用性。   如:将数据访问集中到数据访问层的组件中,从而减少了应用程序中的重复代码,每个需要访问数据库、表的窗体都使用相同的组件。   如:一些共性的逻辑操作都集中封装在逻辑层的组件中,每一个使用该方法的操作,可以共享来访问该组件。   趣味理解:   简单的理解,笼屉本身就是一个重用的例子,如果我们使用一次性的笼(像一次性筷子一样理解),会浪费多少人工来做啊(重复编写麻烦),并且会有很大的资源浪费(代码冗余),最后还要进行垃圾处理(后期维护)。并且,如果笼屉和炉火的锅按一种规范和标准(接口)来做,这样的笼屉不但可以在这里用,也可以拿到别的地方用。(虽然这样理解不太确切,简单的这样理解好了)   3. 系统的扩展性大大增强。   模块化使得系统很容易在纵向和水平两个方向拓展:一方面可以将系统升级为更大、更有力的平台,同时也可以适当增加规模来增强系统的网络应用。由于摆脱了系统同构性的限制,使得分布数据处理成为可能。在扩充或修改功能时,基本不会破坏原有结构的稳定性。   趣味理解:   随着顾客的需要,我们现在需要增加新品种,如蒸馒头,蒸地瓜,那么直接可以增加一层笼就是了,对其他笼不会有什么影响。    三层结构在营造企业竞争优势中的作用主要体现在模块化设计使得用户在现有结构的基础上实现了系统扩展,从而提高企业信息化的速度和业务水平;同时三层结构中中间件的出现使得用户可以直接从市场上选择合适的产品来构建系统,大大降低了开发周期和开发费用。    但分层结构也有缺点也不是越多越好,那样管理很多层会比较麻烦,运行效率可能比较低。所以,一个具备良好层次结构的系统,其层的数目要恰到好处才行。
PCL RANSAC拟合直线并插值 空间直线线性插值的原理与实现方法。 阅读详情

相关推荐

Avalonia跨平台开发入门:从安装到运行第一个应用(Windows/Linux/macOS)

本文详细介绍了Avalonia跨平台开发的基础入门指南,从安装到运行第一个应用的全过程。涵盖Windows、Linux和macOS三大平台的环境配置,特别推荐使用Visual Studio进行开发,并提供常见问题的解决方案,帮助开发者快速上手Avalonia框架。

weixin_28688385的博客 539

分层开发思想与小笼包

       早上吃早点的时候,突发灵感,结合吃的小笼包和日常的开发经验来说一下分层的应用。 首先,谈一下什么是三层架构,所谓的三层开发就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,有的还要细一些,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。 软件要分层,其实总结一句话,是为了实现“高内聚、低耦合”。采用“分而治

『 李天平的博客 』 3956

Twin Builder CFD 示例:构建、验证和评估静态 ROM

通过我们构建、验证和评估静态 ROM 的综合指南,释放 Twin Builder CFD 的潜力。

jkh920184196的博客 1097

【转载】分层开发思想与小笼包

作者:李天平 早上吃早点的时候,突发灵感,结合吃的小笼包和日常的开发经验来说一下分层的应用。 首先,谈一下什么是三层架构,所谓的三层开发就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,有的还要细一些,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。 软件要分层,其实总结一句话,是为了实现“高内聚、低...

161

ELK - CentOS7 安装 elasticsearch 7.17.5

elk elasticsearch 安装

qq_19783793的博客 1458

Vibe Coding 工具实战案例全解:Cursor、Claude Code、Codex 真实项目 30 分钟到 4 小时快速构建指南(2026 年最新)

2026年VibeCoding工具实战案例精选:1)使用Cursor在30分钟内构建现代TodoList应用(Next.js+TS+Tailwind);2)通过ClaudeCode纯终端2小时开发3D飞行射击游戏(Three.js+R3F);3)利用OpenAICodex多Agent并行4小时完成SaaS全栈开发(Next.js+Supabase+Stripe)。案例均来自真实项目,覆盖从入门到生产级开发,重点展示:自然语言Prompt技巧、迭代反馈方法、工具特性对比(Cursor可视化最佳/Claude推

hy行者勇哥的博客 3144

分层开发思想

分层开发思想与小笼包 早上吃早点的时候,突发灵感,结合吃的小笼包和日常的开发经验来说一下分层的应用。 首先,谈一下什么是三层架构,所谓的三层开发就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,有的还要细一些,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。 软件要分层,其实总结一句话,是为了实现“高内聚、低耦合”。

William_tim的专栏 770

手把手教你学simulink实例--基于Simulink的船舶动力定位系统建模与仿真

船舶动力定位系统(Dynamic Positioning System, DPS)是一种通过控制推进器来保持船舶在指定位置和航向的技术。它广泛应用于海上钻井平台、海洋调查船、起重船等需要精确位置控制的场景。DPS的核心任务是实时感知环境干扰(如风、浪、流),并通过闭环控制算法调整推进器输出,以抵消外界扰动并维持船舶的位置和姿态。本项目旨在基于MATLAB/Simulink平台,构建船舶动力定位系统的数学模型,并进行仿真分析,验证其性能和稳定性。

MHD0815的博客 1078

三层开发中容易犯的几个错误(转)

前记:相信大家对三层开发都已经耳熟能详,可是我却发现新公司的既有代码中有一些违背分层开发思想的东西,现在与大家分享这些错误,我们共勉之。如果有人觉得对三层开发拿捏得不是太准,请参照李天平的文章:分层开发思想与小笼包,这篇文章用隐喻说明分层开发,是非常好的一篇文章。正文:1.界面层参与非界面逻辑,抢业务逻辑层的饭碗什么是界面逻辑:界面层应该有的逻辑就是显示的逻辑,

tonygan的专栏 444

本地部署 OpenClaw:让 AI 真正“干活”的开源智能体,从核心概念到实战全流程

在大模型遍地开花的今天,我们早已习惯与 AI 聊天,但真正能**接管本地任务、自动化工作流**的“数字员工”却寥寥无几。OpenClaw 正是这样一款开源利器——它不仅是可本地运行的 AI 私人助理,更像一个“AI 操作系统内核”,能读写文件、执行终端命令、控制浏览器,所有数据本地存储,兼顾隐私与效率。而 Skills 作为它的标准化插件系统,更是让这份能力无限扩展。 本文将从核心概念拆解入手,再分系统给出**保姆级本地部署步骤**,包含环境准备、安装配置、技能安装与验证,甚至覆盖新手最易踩的坑,让你一次

ZhangJiqun&191cm&85kg 2492

ICM20948 DMP代码详解(69)

ICM20948 DMP代码详解(69)

phmatthaus的专栏 602

三层开发中容易犯的错误

前记:相信大家对三层开发都已经耳熟能详,可是我却发现新公司的既有代码中有一些违背分层开发思想的东西,现在与大家分享这些错误,我们共勉之。如果有人觉得对三层开发拿捏得不是太准,请参照李天平的文章:分层开发思想与小笼包,这篇文章用隐喻说明分层开发,是非常好的一篇文章。正文:1.界面层参与非界面逻辑,抢业务逻辑层的饭碗什么是界面逻辑:界面层应该有的逻辑就是显示的逻辑,例如根据逻辑

Wind_Lam的专栏 564

SAP Group Reporting入门指南(1)--开篇及系统环境搭建

文章介绍了SAP GR的发展历程、与BPC的对比优势,数据收集的多种方式(实时同步、外部导入等)以及合并整体流程,并推出《SAP Group Reporting入门指南》专栏。

bflyfish的博客 276
上一篇: 多层架构的解释
下一篇: CopyFile函数使用(Delphi)
EternallyCode
博客等级 码龄21年 9粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值