`
it农民
  • 浏览: 29413 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多

最近研究了一下面向方面编程的概念,实际也不是什么新名词,很多年前就有了,只是当时被面向对象淹没了。当我看到这个词的解释的时候,我想起了在06年我 架构的BBWPS,当时并不知道这样的架构就是面向方面的核心,实际上这样的设计理念并不是什么技术革命和创新,只是一个工作的总结,因为我不是理论研究 的doctor,这些工作就让他们去完成吧。
    在一个系统内开发的时候,很多技术人员觉得很多代码可以重复利用,很多模块可以重复利用,所以模块化开发和模块封装就非常的适用。当我们开发多个系统的时 候,就发现重复的并不只是代码,尤其在面向企业开发的时候,需求往往是变化的,或者是不同行业企业的系统开发,还会有大量的业务重复。举个例子:开发外贸 企业协同办公,会有客户管理,工作流,开发生产企业ERP的时候同样需要这样的服务,做软件开发企业,最好的办法是不是封装这两个服务。让一套系统对外是 服务的组合,服务则是模块的组合,模块则是代码的组合。是不是开发成本更低。这样就产生了一个新问题,服务与服务之间的数据交换采用什么样的标准,我当时 架构的系统是用XML和HTTP进行交换,因为RPC,CORBA这些协议的标准定义范围很小必须是对象接口返回则是XML数组,这样很死板,比如客户管 理只需要从用户登录验证服务中得到是不是验证通过,就要true和false,其他的一概透明,所以要更好更简单的应用服务,就需要一个灵活的通行标准。 现在的IBM已经想出这样的标准,所谓的SOA设计。至于以后是什么样的标准,我还不知道,但是我知道以后的开发模式肯定更过趋近SOA,很多人说我很聪 明,实际上这个并不是聪明不聪明,一个好的开发模式要符合两点,当然安全,质量这些是基础就不说了,第一:敏捷开发,就是开发速度要快,使用简单;第二: 控制开发成本,成本包含技术成本和工作成本,当更多的技术成本被封装的时候也能适当的降低工作成本。
    实际上这种开发模式还有一个非常好的特点,就是业务开发对外完全透明,因为中国人或者说是亚洲人都喜欢以自我为中心,所以很多开发团队在招聘的时候很看重 团队合作,但是这个合作并不是一眼就能看出来或者是可以测试出来,尤其很多技术高手更是这样,喜欢一意孤行。这样的设计模式,就让一个或者少数的人开发一 个服务,从架构,代码和数据库都可以接触,如果系统出现BUG,责任就很清楚,少了代码合作。这样是不是可以避免高手和新手的合作问题,当时我架构 BBWPS的时候也是出于无奈,开发人手层次不齐。把一套服务包干到人,而让技术交流公开化。这样让高手做技术攻关,新手不断升级自己开发的服务,技术提 升很快,这样的技术人员也相对比较全面。
    说到这里,我就说一个不愿意说的秘密,这样的模式也是我带新人的诀窍,给他们足够的空间,架构和开发自己的东西,要用心去体会,这样在开发中,架构工程师 只告诉新人要什么样的数据,能给什么样的数据,至于怎么给,方法是不是合理,那就靠自己体验了,走点曲线就知道直线就是好,因为很多理论是讲不明白的,尤 其刚入门的人,但是自己能体会的到,因为人都很聪明,当我告诉你我带的人已经早超过我的能力了,现在应该相信了吧。这样的人做开发就会形成一个难能可贵的 习惯,做任何开发都会预留对外的接口。尤其在大系统开发的时候分布和并发处理的时候,就知道这样的系统架构横向扩展很简单,整体迁移成本很低。
    最后我奉劝做系统架构的人和带队的一点话:任何时候都把人的因素放在第一,不要一味的追求技术攻关,把人布局到系统开发的各个方位,只有人才决定系统,而 不是技术决定系统。不要教别人怎么写代码,不要教别人怎么做架构,而是教会别人怎么去思考。自己不是高手,高手都在未来。

1
0
分享到:
评论
1 楼 1025250620 2011-11-30  
挺好的文章~~~thanks~

相关推荐

    基于用例的面向方面编程原文电子书

    基于用例的面向方面编程原文电子书,非常好!

    面向方面编程方法的研究与应用

    面向方面编程(Aspect-Oriented Programming,AOP)是一种旨在解决软件开发中模块化问题的编程范式。它通过将关注点分离,使得系统中的核心业务逻辑与横切关注点(如日志、事务管理、安全性等)可以独立发展,从而...

    AOP 面向方面编程 技术总结

    面向方面编程(AOP)是一种编程范式,旨在提高软件开发的模块化程度,特别是通过将关注点分离,以便更好地管理复杂系统。AOP的核心概念是“方面”(Aspect),它封装了跨越多个类的横切关注点,如事务管理、日志记录、...

    面向方面编程_AOP_介绍.pdf

    ### 面向方面编程(AOP)介绍 #### 一、面向方面编程产生的背景 在软件开发领域,面向对象编程(OOP)是长期以来的主要编程范式之一。然而,在实际的软件开发过程中,经常会遇到一些跨越多个类或模块的关注点,如...

    面向方面编程和jboss

    面向方面编程(Aspect-Oriented Programming,AOP)是一种编程范式,旨在将关注点分离,使得系统中的各个部分能够更清晰地专注于自己的核心功能,而将横切关注点(如日志、事务管理、安全性等)解耦并模块化。...

    PHP语言中的面向方面编程实现.pdf

    面向方面编程(Aspect-Oriented Programming,AOP)是一种编程技术,它可以有效地提高软件系统的可维护性、复用性和可扩展性。PHP语言作为当前最流行的脚本语言之一,实现面向方面编程可以提高PHP语言的实用性和灵活...

    面向方面编程和AspectJ一.pdf

    ### 面向方面编程(AOP)与AspectJ详解 #### 一、面向方面编程概览 **1. 软件设计的挑战** 随着互联网的普及和发展,软件需求日益增长,软件复杂度也在不断提高。这给软件设计带来了前所未有的挑战。传统的面向...

    面向方面编程和AspectJ(二)

    ### 面向方面编程与AspectJ应用实例详解 #### 一、面向方面编程(AOP)简介 面向方面编程(Aspect Oriented Programming, AOP)是一种编程范式,旨在提高软件系统的模块化程度,通过分离关注点(Separation of ...

    Aspect-Oriented Programming 面向方面编程

    Aspect-Oriented Programming 面向方面编程 简称AOP AOP所要做的事情就是从系统中分离出方面,然后集中实现,从面可以独立编写业务逻辑代码,在系统运行的时候,再将方面代码“织入”到系统中

    Aspects, 面向方面编程的令人愉悦的简单库.zip

    Aspects, 面向方面编程的令人愉悦的简单库 方面 v1.4.2 这是一个令人愉快的,简单的面向方面的面向方面编程的 @steipete 程序。将Aspects的Aspects考虑为steroids的方法。 通过 thinking/instance的方法,可以将代码...

    论文研究-面向方面编程中必要语义约束的研究 .pdf

    面向方面编程中必要语义约束的研究,杨剑青,杨宗源,面向方面编程(AOP)可以很好地解决非功能性关注点(Non-Functional Concern)的封装问题,但是目前的AOP技术过于灵活,甚至会不恰当地破��

    基于面向方面编程的J2ee源码保护

    分析类文件加密技术在保护 J2EE 应用时遇到的动态编译问题和服务器检测问题,指出这 2...利用面向方面编程技术的连接点模型,通过制作一个骨架类解决上述问题,从而扩展加密技术的适用范围,增强对 J2EE 源代码的保护。

    Android-AOPExample, 在Android中,这是面向方面编程的简单例子.zip

    Android-AOPExample, 在Android中,这是面向方面编程的简单例子 aopexample 这是我写的博客文章的一个简单例子,它是安卓系统中面向方面编程的。 方法是测量要执行的方法的长度,因这里基于注释创建了一个方法,以便...

    AOP 面向方面编程

    此PPT主要讲解AOP的来历以及用途,纯理论知识,跟代码结合起来看效果不错

    面向方面编程的Aop介绍

    本教程介绍 AOP 及其基本概念。AOP 及其相关的工具使您可以将基本横切关注点(如日志记录和安全)的代码,与程序的核心应用逻辑相分离。AOP 通过使代码更具有可读性、更不容易出错以及更容易设计和维护,改善了代码...

    论文研究-面向方面软件开发研究.pdf

    系统的某些关注点横切整个系统,无法很好地封装在单个模块里,造成代码混乱和弥散,用面向方面编程AOP可以解决这些问题。首先介绍了现代软件开发方法及其产生的问题;其次,阐述了AOP的基本概念,并结合AspectC 演示...

    论文研究-面向方面的程序设计的研究与应用.pdf

    面向方面编程方法引入了几个核心概念,包括方面(Aspect)、连接点(Join point)、切点(Pointcut)和通知(Advice)。方面是一种模块化横切关注点的方式;连接点是程序执行过程中的某个特定点,比如方法调用;切点...

Global site tag (gtag.js) - Google Analytics