最近常常看到JAVA社区热闹异常,各类框架齐齐上阵,各路神仙尽显神通。.NET社区也不甘寂寞,高手都冒出来了,于是移植自JAVA的框架,自己独创的框架,大而全的框架.....且不说技术上的优劣,也不比谁的效率,其实我们在项目中选择一个框架的时候很多时候都是在考虑这个框架的适用性,因为在做项目的时候因为各种各样的原因我们会受到各种各样的制约而不能够随心所欲的构建系统,而且就算我们能够作主的时候也会因为框架本身的限制而作罢,这点在改造和重构已有系统的时候常常会出现,所以在我们选择一个框架或者设计一个框架的时候,适用性就很值得我们关注了。
这里我觉得有一点需要纠正一下,很多时候有些朋友发布了自己的东西都喜欢用XX框架什么的,但是很多时候是有误区的,所谓框架(Framework)指的是我们所需要我们遵守一定规则在上面进行开发的平台,可能还需要提供一系列的SDK来帮助我们开发。比如.NET Framework,呵呵。WSS也算是一种Framework,因为我们也需要遵照他的规则在上面做二次开,再比如Eclipse或者Sharp develope,struts都算是Framework。而iBaties,Hibernate之类的都不算,这样子的算是组件(Component),还有一类工具可以通过数据库生成数据访问代码,页面等等的,这个应该怎么说呢,可能应该算是代码生成器......
不知不觉说了很多不算废话的废话,那么什么是架构的侵入性呢?所谓侵入性就是指的这个架构设计出来的部件对系统的影响范围,比如框架的侵入性就很高,因为在一个工程中引入一个框架,你的整个设计都必须围绕这个框架来进行,一旦使用了,框架的可替代性几乎为0,这样子就是搞侵入性。组件的侵入性就比较低,比如ibaties,他可以在任何java框架下使用,甚至可以和其他ORM组件共存,你仅仅需要引入,配置,然后就可以使用了,你也可以用其他的ORM替换他,所以......这个体验应该是很愉快的。
所以话说回来说到如果我们在设计一个通用架构的时候就应该注意到这个一个非常重要的地方,除非我们只是自己拿来用用,否则我们不应该假设我们的设计的用户已经具备怎么怎么样的环境或者是需要做什么特殊的设计才能够使用。
这里打个比方,假如说我们在设计一个通用权限管理什么什么的时候我们就要想好,这是一个组件,还是框架,还是一个现成系统(复用通过改改代码实现,其实个人觉得这种设计很低级,虽然有的这样子的东西功能确实丰富)。确定了目标之后我们才好开始下一步,比如确定是一个框架的话可能发挥要自由一些,因为不需要高度的内聚,不过可能因为框架要设计的方方面面太多了,所以老是觉得个人的力量不足以搞这种东西出来。如果是组件的话就需要高度的内聚来实现非侵入式,比如引入DLL的时候还需要让所有页面继承自某个基类页就不算是一个good idear。
虽然话说得好听,不过我在自己做设计的时候还是常常因为功力不够造成一些侵入的现象,但是高内聚低耦合都是我们不断追求的目标,所以所有做设计的同学们一起努力吧
PS:这里卖弄了下词藻,呵呵,侵入就是在两个系统发生耦合的时候造成的...........
估计发首页会被人骂,我就想看看那些人会骂而已
分享到:
相关推荐
【非侵入性、零信任的物联网设备安全】 在物联网(IoT)设备的安全领域,非侵入性和零信任的概念正逐渐成为保障企业网络安全的重要策略。非侵入性设备安全,意味着无需在设备上安装任何代理软件或进行硬件改造,就能...
金融级数据库分布式改造的架构设计是一项复杂且至关重要的任务,特别是在当前金融科技快速发展,银行业务量激增的背景下。分布式改造的主要目标是解决传统单点数据库的性能瓶颈,提高系统的可扩展性和容错性。 首先...
一、安全架构设计的重要性 1. 保护数据隐私:运维系统往往包含企业的核心业务数据,如服务器配置、网络拓扑、用户信息等,这些数据的安全直接影响企业的运营和声誉。 2. 防止服务中断:安全漏洞可能导致系统瘫痪,...
主动安全网络架构设计是当前网络安全领域的一个重要议题,它旨在构建一种更为积极、主动的防护策略,以应对日益复杂的网络威胁。在这个框架下,安全不再仅仅是被动的防御,而是通过预测、预防、检测和响应等一系列...
Pharos产品的设计原则是非侵入性、架构简洁、高性能和通用性。该产品可以满足各种业务场景的需求,包括只读场景、T+1数据加载和多读少写场景。 Pharos产品的架构设计主要包括Client API、协调器Server、Coprocessor...
非侵入式的智能考勤系统作为新一代考勤解决方案,旨在减少人为干预,提高考勤准确性和便利性。 #### 二、系统概述与设计原则 **1. 系统概述** 非侵入式的智能考勤系统是一种利用计算机视觉技术和深度学习方法,通过...
它的设计原则包括非侵入性和架构简洁,以降低维护成本。 【研发过程】 Pharos的研发始于2018年4月,经过多个阶段的迭代,逐步完善功能。V0.1实现了单索引和多条件查询,V0.2增加了排序、分页和缓存优化,而V0.3...
此外,架构师需关注业务架构的灵活性,制定相应的规范和原则,确保架构在业务变化中保持稳定。 二、优秀架构师所需的知识基础 1. 操作系统(OS):深入理解操作系统内核,例如Linux,能帮助架构师汲取设计灵感。...
6. 安全性原则:确保数据和通信的安全,防止非法侵入和信息泄露。 7. 扩展性原则:系统应具备良好的扩展性,以适应未来城市规模和需求的增长。 8. 易操作性原则:界面友好,操作简单,便于用户使用。 9. 经济性原则...
Watchman系统的设计要点包括生成唯一的RequestID、采用AOP(面向切面编程)方式对业务系统进行最低侵入性整合,以及采用1/1000的采样率减少对业务系统性能的影响。 5. Feed多级双机房缓存系统 为了提高微博Feed的...
- **非侵入性**:Spring尽可能地避免强制使用特定API,而是尽可能地与现有的第三方框架进行集成。 - **可扩展性**:Spring提供了一个灵活的配置机制,允许开发者根据自己的需求定制和扩展。 #### Spring的依赖注入 ...
"监控中心设计原则.pdf" 监控中心设计原则是指监控系统的设计和实施所遵循的一些基本原则和要求。这些原则和要求旨在确保监控系统能够实时、可靠、安全地对监控对象进行监控和管理。 1. 硬件部分的设计原则: - ...
低侵入性意味着Spring框架并不会强制改变或限制应用的结构,而是通过依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)来管理对象间的依赖关系,降低了组件间的耦合度。...
在构建微服务云原生应用的过程中,关注的重点不仅在于开发,更在于生产环境的稳定性和运维效率。"生产就绪"是指应用不仅完成了...同时,不断优化和迭代,确保系统的稳定性和可扩展性,也是云原生应用设计的核心原则。
1. **非侵入性**:Spring框架对应用程序来说是非侵入性的,这意味着应用可以不依赖于Spring框架运行。 2. **可测试性**:Spring提供了良好的支持来帮助编写可测试的代码,特别是在单元测试方面。 3. **松耦合**:...
在安全架构中,公理是构建安全策略和设计决策的核心原则。 首先,我们要明确一个关键的公理:安全应是设计的一部分,而非附加项。这意味着从系统开发的初期阶段,就应该将安全性考虑进去,而不仅仅是作为后期修补的...
在宏观层面,J2EE架构遵循分层原则,通常分为表现层、业务层、访问层和资源层。其中: - **表现层**负责用户界面的展示和交互,常使用Struts或JSF等基于MVC(Model-View-Controller)的框架。 - **业务层**处理应用...
- 故障转移和无侵入性:确保系统稳定,减少对现有服务的影响。 4. **微服务任务调度架构**: - 包括任务编排管理、执行器集群、调度器、核心注册中心和编排中心等组件。 - 自定义路由规则、任务优先级和抢占机制...
- **高安全性**利用多层次的安全措施,确保医院的数据和资源不被非法侵入和非授权访问。 - **可维护性**通过图形化网络管理工具,简化系统维护工作,实现资源状态的可视化和故障的及时响应。 - **可扩展性及灵活性**...
- 将所有业务玩法进行抽象化处理,把相似的业务玩法合并在一起,以提高内聚性,类似于架构设计中的模块化。 2. 标准化: - 参考了电商领域的SPU(Standard Product Unit)和SKU(Stock Keeping Unit)概念,抽取...