REST学习总结一

本文探讨了应用性能的关键因素,包括需求、架构风格与代码优化。强调了根据应用需求选择合适架构的重要性,并介绍了多种架构风格,如数据流风格、客户-服务器风格、REST等,及其对网络性能和用户可觉察性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      一个应用的性能首先取决于它的需求.然后再取决于它所采用的架构风格..最后才是代码的优化..由于需求部分所导致性能降低是不可避免的..所以性能优化的关键在于根据它的需求采用最适合的架构..代码优化也是一个很关键的部分..因此架构师要尽可能地选用对于某一特定需求具有较好性能的架构风格..而程序员则是在平时的代码编写过程尽可能养成一些好的编程习惯..如在功能模块化下面要对于某一函数里面的语句再次进行优化以便提高性能.便得局部变量的生命周期尽可能的短.对共有进行操作的语句改可能的放在一起..不要出现那种在函数里面第一句声明..然后到了结尾的时候再去使用(这是一种非常差的编程习惯,使得程序的可读非常差)..关于代码优化这方面的技巧可以多看看代码大全这本书.

       其中性能又分成两种:网络性能和用户可觉察性能. 网络性能是用来描述通信的某些属性.用户可觉察性能主要度量手段是延迟和动作的完成时间.网络性能主要是受到架构风格及应用现场的网络实际情况所决定的..风格对于网络性能的影响是通过影响每个用户动作的交互的数量和数据元素的粒度来实现的.而用户可觉察性能中的延迟关键点在于在组件间传输交互数据所需的时间..还有在应用能够呈现一个可用的结果之前.完成数据的转移和处理交互的结果所需的时间.. 其他如触以动作的时间.组件之间建立交互所需的时间.组件处理每个交互的时间等这些相对来说都是比较可控的..通过某些代码优化手段或者信息提示手段减少时间.. 但总的来说还是受到架构风格的影响 ,而动作完成时间就是完成一个应用动作所花费的时间..完成时间取决于所有上述的延迟点..经常出现的一种情况是对延迟进行优化的设计会产生延长完成时间的副作用

 里面提到根据分类方法学可以将架构风格分为
数据流风格..
复制风格(缓存风格).
分层风格
客户-服务器 (C/S风格)
       分层系统(TCP|IP和OSI协议栈) 关键点:增加了处理的开销和延迟.降低了用户可觉察的性能.
      分层-客户-服务器(MVC模式)
      客户-无状态-服务器     关键点:从客户端发到服务器的每个请求必须包含理解请求所必需的全部信息, 不利用任何保存在                                                                服务器上的上下文.会话状态全部保存在客户端
      客户-缓存-无状态-服务器(Sun公司的NFS) 关键点:来源于客户-无状态-服务器和缓存风格的结                                                                                                                              合..有可能部分或全部消除一些交互.从而提高效率和用户可觉察的性能
      分层-客户-缓存-无状态-服务器(DNS域名系统) 关键点:通过添加代理或网关组件..继承了分层-  客户-服务器和客户                                                                                            -缓存-无状态-服务器风格
      远程会话(FTP服务) 关键点:客户-服务器的一种变体..由于要在服务器上保存应用状态.降低了服务器的可伸缩                                                                性..还降低的交互的可见性
    远程数据访问(远程数据库访问)      关键点:客户端必须像服务器实现那样理解相同的数据库操作概念.必须在服务器上保存应                                                            用的上下文.降低了可伸缩性.虽然使用事务机制可以修正可靠性的问题..但是增加了复杂性和                                                                交互的开销
移动代码风格  关键点:使用移动性来动态地改变在处理过程与数据源或结果目的地之间的距离
        虚拟机风格
        远程求值
        按需代码风格  关键点:一个客户端知道如何访问一组资源.但不知道如何处理它们.它向一个远程服        务器发过如何处理                                                    资源的代码的请求..接收这些代码..然后在本地执行这些代码
        分层-按需代码-客户-缓存-无状态-服务器(HotJava Web服务器)
        移动代理
点对点风格
        基于事件的集成(EBIMVC范例    关键点:一个组件发能够发布一个或者多个事件.在事件发布后.系统  中的其他组件能够注                                                                            册对于某些事件类型的兴趣.由系统本身调用所有已注册的组件
        C2架构风格 
        分布式对象(DO)

REST::::    统一-分层-客户-缓存-无状态-按需代码-服务器

资源:资源R一个随着时间变化的成员函数M  该函数将时间t映射到等价的一个实体或值的集合,集合中值可能是资源的表述和或资源的标识符.

中间件: 包括了标准编程接口和协议的分布式系统报务,扮演了一个位于操作系统和网络软件之上.特定行业的应用软件之下的中间层
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值