`
窗户纸
  • 浏览: 19456 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

软件的分层开发架构的另一种思考

 
阅读更多
在软件开发中,从事架构设计的人员往往都很推崇三层或多层架构,使数据库、业务和界面分离开发,而对于底层的开发人员来说,又多对此有很多抱怨,一方面是因为其所处角度及阅历不同,另一方面的原因也是真多了多层开发体系的一些弱点而言。<wbr><p><wbr><wbr><wbr>就两方的矛盾而言,其实也可以考虑这换个思路来利用三层架构。</wbr></wbr></wbr></p> <p><br><wbr><wbr><wbr> 首先,三层架构使界面层和业务层的编程人员不用考虑数据库的设置问题,而按照相应的需求自行开发,提高了多方协同工作的效率,从整体上加快了编程速度。</wbr></wbr></wbr></p> <p><br><wbr><wbr> 但任何并行化带来的实际是总体工作量的增加,而不是减少,包括接口设计、架构设计,代码组织等,但为什么会提高进度呢,根本原因是更大限度的提高了每个人的开发效率。<br><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></p> <p><wbr><wbr><wbr> 三层开发的另一个问题是软件的执行效率问题,直接写sql语句、连表查询、存储过程等的执行效率肯定比ORM要强,但是编程时为了可以实现调试往往显示功能第一,其次是效率。<br><wbr></wbr></wbr></wbr></wbr></p> <p><wbr><wbr><wbr> 那么我们就换个角度考虑问题。人们都看过冰雕,做冰雕的并不是一次将一个大方冰砖雕成美女,而是先做个轮廓,然后逐一去做细节,三层架构是一个很好的轮廓实现方法。在功能实现后,是可以在数据层增加特定接口或改写接口的实现方式的,这样我们就可以既保证了项目开发效率,又提高了软件执行效率。</wbr></wbr></wbr></p> <p><wbr></wbr></p> <p><wbr><wbr> 在后期系统优化过程中,即使是面向过程编程,也需要通过分析各模块的执行速度来确定特定的优化方案,在此时引入特有的sql语句,并对数据层进行相应调整,也是非常合适的。从主要的优化工作看:</wbr></wbr></p> <p>1. 运行速度优化: 提高系统运行的速度,一般运行速度慢的现象都是界面加载及更新慢,这里面原因有布局初始化、数据库存取、无效阻塞、软件BUG等很多因素。</p> <p>2. 用户支持能力优化: 使系统可以支持更大的并发用户能力以及在更大规模的数据量情况保持系统速度, 此时我们往往采用异步处理、并行化、缓存系统等方式减少通信量、提高计算效率。</p> <p></p> <p>对于没有使用了分层开发的系统,在此过程的优化时,我们往往会因为在优化过程中担心方法调用的耦合性而放弃很多可以大幅度提醒性能的方式,而如果使用了分层开发,由于各组件中的耦合度相对较低,只需要进行组件内调整,不会对其他组件产生影响。</p> <p>而对于数据库存取的优化,分层开发在此时的优化效率优势就更加明显, 因为面向过程开发时,不可避免会产生大量的重复功能SQL语句, 很难一次理清,而对于分层开发,可以使用统一的经优化的接口,一次优化直接对多个模块其作用。</p> <p>在系统优化过程中,我们有时还会调整数据库的表结构, 这对面向过程开发往往会是灾难性的,因而会尽量避免,往往提高了优化难度,延长了时间,而分层开发可以以很小的代价就可以快速的实现相关优化。</p> <p></p> </wbr>
分享到:
评论

相关推荐

    基于GCC技术的智能化单片机集成开发环境.pdf

    基于GCC技术的智能化单片机集成开发环境是一种创新的软件开发方法,它以GCC(GNU Compiler Collection)技术为基础,通过智能化的集成方式,提高单片机软件开发的效率和质量。GCC是一种广泛使用的开源编译器,支持...

    分布式架构关键设计与实践探索.pdf

    数据分布设计是分布式架构中另一个关键点,主要目的是突破传统数据库单机处理能力的瓶颈。数据分布可以通过数据切分和水平切分的方式来实现,依据业务需求和数据特点选择不同的切分维度。此外,数据冗余也是必须考虑...

    架构师的逻辑技术思维分析.docx

    分层思维是架构设计中的另一个关键概念,它将系统分解成多个层次,每个层次专注于特定的功能或服务。例如,常见的三层架构包括表现层(用户界面)、业务逻辑层和数据访问层。通过分层,我们可以确保各组件之间的耦合...

    2-DDD的庖丁解牛之道(V1.5)——王立.pdf

    总而言之,DDD是一套全面的软件开发方法论,它不仅仅是一种编程或设计技术,而是一种更加深入理解和构建业务领域的系统思考方式。通过《DDD的庖丁解牛之道(V1.5)》这篇文章,我们可以更加深入地理解DDD的应用经验...

    4.1 网络架构.pdf

    另一方面,网络层过于简单可能无法应对所有需求,如拥塞控制和流量控制。因此,需要在不同层次间寻找合适的平衡点,决定哪些功能应在底层实现,哪些应保留在高层。 **分组交换与线路交换** 网络架构中,分组交换和...

    戏说面向对象程序设计之C#版

    “层架构,分层开发”是另一种面向对象设计时需要考虑的原则。在软件开发中,通常会将系统划分为多个层次,比如表示层、业务逻辑层、数据访问层等。每一层都专注于特定的职责,层与层之间通过定义好的接口进行交互。...

    Spring Framework 概述.rar

    Spring 着重于提供一种管理你业务对象的方 法。 l Spring 是全面的、模块化的。Spring 采用分层架构,这意味着你可以仅选择其中任何一 个独立的部分,而它的架构是内部一致的。因此你能从学习中获得最大的价值...

    java设计及源代码

    Java设计与源代码是软件开发领域中的核心主题,它涵盖了编程基础、面向对象设计原则、设计模式、软件架构以及实际项目中的源代码实现。在这个专题中,我们将深入探讨Java编程语言的设计理念,以及如何通过高质量的源...

Global site tag (gtag.js) - Google Analytics