近期工作是分析某个业界产品的架构与设计,重点关注其支持配置和二次开发的特性,过程中感觉有些设计值得借鉴,在此总结一下
背景:
系统大致上是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”中,主要涉及的是一个创新的高尔夫球袋设计,尤其关注其...这种设计思路对于其他领域的产品开发也具有借鉴意义,特别是在便携性和空间利用方面。
值得注意的是,该消防排烟用通风机不仅仅适用于消防领域,在一些工业或商业建筑中,如果需要精确控制通风量以改善室内空气品质或应对突发污染事件,同样可以借鉴这一设计思路,实现高效的通风与排烟。因此,这种改进...
在当今快速发展的电子技术领域中,电子烟作为一种新兴产品,其内部发热模组...其独特的设计思路和精密的制造工艺,不仅对电子烟行业有着重大的技术进步意义,同时也为其他需要加热模组的设备提供了值得借鉴的创新方案。
在信息爆炸的当下,如何高效地检索和处理数据成为了一个重要的技术挑战。...对于致力于数据分析和大数据处理的研究者和开发者来说,字词连环图提供了一种值得参考和借鉴的新思路,有助于推动该领域技术的进步。