近期工作是分析某个业界产品的架构与设计,重点关注其支持配置和二次开发的特性,过程中感觉有些设计值得借鉴,在此总结一下
背景:
系统大致上是C/S架构
server可以响应多种client的请求。client包括与产家提供的标准client,也包括用户自行二次开发的client
浏览器不直接访问Server,而是专门由单独的Web Server提供页面,因此可以认为Web Server是一个特殊的client
设计的关键点:
一、Server在逻辑上划分为接口层和业务逻辑层。client不会直接访问业务逻辑层,所有的请求都是由接口层处理的
二、接口层抽象了请求的差异,提供了若干统一的接口。这个其实是接口粒度的设计问题
三、产商向客户提供了二次开发SDK,客户如果需要自行二次开发client,就需要用到这个二次开发SDK
通过这种设计,对客户端隐藏了server的实现细节,从而至少带来了3个好处:首先是方便,其次是安全,然后是客户端稳定性
方便:想象一下,如果没有API,那么client要与server交互,就必须自行处理建立连接、封装协议、组装数据、解析响应、校验身份……那么二次开发的难度就会很大
安全:通过抽象的接口,向客户端隐藏了server的具体实现
客户端稳定性:只要接口层保持稳定,那么server端的修改,就不会对client造成影响,还可以实现向下兼容的特性
其实仔细想一下,会发现这种设计和模块设计的原则是一致的,即需要交互的两个模块(client和server),不直接依赖,而是通过接口(接口层)交互,彼此不了解对方的实现,达到松耦合
至于提供了SDK,我认为不是核心,只是锦上添花
分享到:
相关推荐
6. **YiXingWndDemo**:可能是一个特定应用场景的示例,如模仿某种特定应用或窗口的设计,提供了一种实现思路和代码参考。 7. **MFC中使用duilib.zip** 和 **duilib中使用MFC.zip**:这两个压缩文件分别提供了MFC...
【标题】"C# 物流网站 个人开发 值得借鉴" 涵盖了C#编程语言在物流网站开发中的应用,这通常涉及到Web应用程序开发的技术和流程。C#是一种面向对象的编程语言,由微软公司推出,常用于构建Windows平台上的应用程序,...
总的来说,这份“一种多用书立.pdf”文档详细阐述了一种设计装置的创新实践,展示了如何通过巧妙的设计思路和功能集成,将一个普通的书立转变为一个多功能且具有吸引力的日常用品。对于设计师、工程师,甚至是热爱...
这些详细信息对于理解设计思路、工艺实现以及潜在市场接受度至关重要。设计师可能会通过市场调研、用户反馈和原型测试来不断优化设计,以确保最终产品的实用性和市场竞争力。 总的来说,这种带橡皮的自动铅笔设计...
在建筑设计领域,房屋支柱是构建稳定结构的关键元素,它们不仅承担着建筑物的重量,还确保了...这种设计思路值得行业内广泛学习和借鉴,特别是在当前资源有限和环保意识日益增强的背景下,这种设计理念显得尤为重要。
在设计领域,这种融合功能性和装饰性的设计思路是一种常见的趋势,旨在提升空间效率并增加视觉吸引力。书架楼梯通常由结构工程师和设计师共同构思,他们需要考虑楼梯的承重能力、安全性、稳定性和书架的可访问性。...
【云原生平台设计思路与实践】 云原生平台是一种基于云计算技术的新型软件开发和部署模式,旨在提高效率、灵活性和可扩展性。货车帮的云原生平台设计是为了解决物流行业的痛点,通过现代化的技术手段优化资源配置,...
《一种节水洗面台》的设计装置是针对当前水资源日益紧缺的现状,提出的一种创新解决方案。在本文档中,我们将深入探讨这种...这种设计思路值得其他领域借鉴,以推动更多的绿色产品开发,共同构建一个更加可持续的未来。
它的设计思路和实现方法对于分布式系统的开发者具有较高的参考价值,尤其在处理大规模数据爬取时,可以提供宝贵的实践经验。 【关键词】Redis,分布式,主从式,爬虫系统 本研究结合湖北省自然科学基金资助项目,...
再者,EaglePHP借鉴了国外优秀框架的设计思路,这意味着它可能包含了诸如路由管理、依赖注入、自动化测试等现代Web开发的最佳实践。这些功能可以帮助开发者构建更加灵活和可复用的代码,提高开发效率。 分层设计是...
对于分布式入侵检测系统的开发与研究,本文提供了一种值得借鉴的实现思路。在实际应用中,这样的系统能够大幅度提升网络安全检测的能力,为各种规模的企业和组织提供更加安全可靠的网络环境。同时,这也是分布式系统...
在当前的文件“行业分类-设备装置-一种滚轮可倾斜收纳的高尔夫球袋.zip”中,主要涉及的是一个创新的高尔夫球袋设计,尤其关注其...这种设计思路对于其他领域的产品开发也具有借鉴意义,特别是在便携性和空间利用方面。
一种快速平整的数字印刷烘干装置的设计旨在解决传统印刷烘干过程中的两大问题:一是烘干过程中...其设计思路和实施细节展示了在印刷行业中如何通过技术改进提升设备性能,降低不良影响,值得在同类设备中借鉴和应用。
源码中的“有bug五子棋人机对战”算法设计,尽管存在一些问题,但其独特的思路和实现方式仍值得我们深入探讨和学习。本文将从以下几个方面展开讨论: 1. **基本概念**:五子棋是双方轮流在棋盘上放置棋子,目标是...
描述中的“值得一看”意味着这些源代码不仅有实际的应用价值,还可能包含一些值得学习和借鉴的编程技巧或设计模式。对于初学者来说,这是一个很好的学习资源,可以了解如何在VB环境中实现特定功能。对于经验丰富的...
尽管在中国可能因为社会文化差异难以实现,但它利用社交网络数据创造新社交体验的思路值得学习。 其次,Meetrip 是一个结合了社交、本地化和移动化的旅行应用,用户可以分享个人的旅行经验和独特景点,为旅行者提供...
在"不易滚落的笔.pdf"这份文档中,可能会详细阐述设计思路、技术实现、材料选择、制造工艺、成本分析以及可能的应用场景。它可能包含了实验数据、用户测试反馈,甚至可能有专利保护的相关信息。对于设计师和工程师来...
国外的出租车管理相对国内较先进,对本系统的设计有不少值得借鉴之处。 3.J2EE+Mysql 设计的汽车管理系统的优点: 使用 J2EE+Mysql 设计的汽车管理系统可以提高系统的可扩展性、可靠性和安全性,满足大规模数据存储...
ASP.NET是微软公司开发的一种用于构建动态Web应用...对于有一定经验的开发者,这也是一个不错的参考资源,可以帮助他们解决类似项目中的问题或借鉴设计思路。总之,这是一个宝贵的教育资源,值得花时间去研究和学习。