Stone的专栏

个人主页:http://njchenyi.googlepages.com/

用户操作
[即时聊天] [发私信] [加为好友]
陈轶ID:njchenyi
239409次访问,排名292,好友11人,关注者49人。
学习经历
学校 香港科技大学
描述 信息工程
日期 2006-8-19 -- 2007-8-17
学历 硕士

学校 荷兰Fontys应用科学大学
描述 信息工程
日期 2002-9-1 -- 2006-7-4
学历 本科

工作经历
南京烽火通讯发展有限公司
2007.8 – 至今
产品平台JAVA版
 主要职责:
系统JAVA版平台:平台为模块提供了一个基类。提供了通讯,日志,告警,跟踪,定时器接口,为模块读取参数配置。可以实时停止,运行,挂起模块。实时修改,保存模块和平台配置。平台基础服务模块化(ORB,IPC,Supplier,Consumer,数据库连接池),提高平台应用的灵活性。
系统监控平台:通过SSH连接Linux服务器启动停止Corba命名服务和通道服务,启动停止平台,通过Corba管理接口查看平台各个模块信息,状态,并进行控制。通过不同的通道查看平台的日志,告警,跟踪信息。
ORB模块:CORBA核心模块,注册性能统计命名项,注册ADMIN管理接口命名项,持久化Corba对象,绑定Corba客户端监听地址。
IPC模块:平台间通讯模块,注册IPC命名项,实现Corba接口,提供Corba通讯能力。
Supplier模块:使用Corba NotificationService,为平台提供日志,告警,跟踪发送能力。
Consumer模块:使用Corba NotificationService,为平台提供日志,告警,跟踪接收能力。
数据库连接池模块:为平台提供同时连接不同主机不同类型数据库的能力。
性能统计模块:根据数据库中的各模块不同采集项配置实时监测各个模块的各项统计值,存入数据库。并能对比设定的门限阀值,在超出阀值的时候发出告警信息。
性能统计辅助模块:因为系统设计的问题,某些性能采集项无法从现有模块中获取,此模块作为修能统计的辅助模块针对无法获取的性能采集项做了特殊处理,供性能统计模块采集。
参与了性能统计相关数据库的设计,更改,维护。
 主要应用技术:
1. Java—JDBC,JAVA多线程,Java中部分类库(如io、util,concurrent等)等技术
2. Corba
3. XML操作
4. SSH连接
5. 数据库—MySQL,Oracle
6. Linux—Redhat9
 取得成果:MAS2.0系统已经通过中国移动设计院的测试
中国电信首期移动办公工程建设项目正在部署


企业内部协同软件
 主要职责:
熟悉Jabber和XMPP通讯协议,负责开源服务器Openfire的代码理解和修改,制作Openfire的插件用以支持用户需求的多层组结构。配合客户端的代码修改和调试,与客户端协商进行协议的扩展。
 主要应用技术:
1. Java
2. 数据库—MySQL
3. Openfire—Openfire(原来的Wildfire)是一个跨平台,采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。
4. Jabber/XMPP—Jabber 是著名的Linux即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。Jabber最有优势的就是其通信协议,可以和多种即时通讯对接。XMPP(Extensible Messaging and Presence Protocol)由Jabber软件基金会开发,最早在Jabber上实现。
 取得成果:项目一期目标已经完成,正在进行产品的整合
荷兰皇家飞利浦公司
2006.1 – 2006.7 未来家庭交互式多媒体系统
 项目描述:该项目针对将多种多媒体产品(高清晰度电视,蓝光DVD)和因特网,P2P网络组成家庭多媒体中心。用户摒弃了传统的鼠标键盘,改为更人性化的操作方式。用户通过手势可以在不同的设备播放媒体。
 主要职责:在Linux系统下研究手势识别输入系统,使用JAVA语言编写系统通用接口程序,并实现用户图形界面。
 主要技术:
1. JAVA—JAVA2D,JAVA3D图形界面开发,JAVA部分类库
2. Linux—Fedora Core4
3. Linux硬件驱动—触摸屏驱动程序的编译以及部分改写
4. HandVu—手势识别开源软件
 取得成果:经过后续人员的开发完善,该系统于2007年1月在巴黎举行的ITEA(Information Technology for European Advancement)研讨会上获得最高奖项
njchenyi的文章
原创 199 篇
翻译 1 篇
转载 55 篇
评论 88 篇
njchenyi的公告
MSN:njchenyi@hotmail.com Gmail:njchenyi@gmail.com 我的QQ:24726542
最近评论
hitesh:Do you have the CSIT571 Assignment 2 and any Examination Feedback?
flying:让我领悟了很多
简直是一语惊醒梦中人啊
谢谢啦
呵呵
bangsen:请问楼主,你的 “ servertool > register -server PersistentServer -applicationName s1
-classpath path_to_server_class_files

The servertool registers the server, assigns……
bangsen:请问楼主,你的 “ servertool > register -server PersistentServer -applicationName s1
-classpath path_to_server_class_files

The servertool registers the server, assigns……
bangsen:请问楼主,你的 “ servertool > register -server PersistentServer -applicationName s1
-classpath path_to_server_class_files

The servertool registers the server, assigns……
文章分类
收藏
    相册
    定息贷款
    多边形裁剪
    图片
    个人链接
    MSN Space
    个人主页
    个人相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 多态(Polymorphism)收藏

    新一篇: 作一份高水准的英文简历 | 旧一篇: 关于Java占用内存的研究

     如果让你选择一项面向对(Object Oriented,后文简称OO)象最重要的或者最能表现OO特点的技术特征,会是什么?


       封装(wrap)、继承(inheritance)、重载(override)还是多态(polymorphism),亦或是其他?
    在我看来,答案无疑将是多态。封装是优点,继承是基础,重载是特点,而多态则是特征。


      虽然这四者缺一不可,无论少了哪一个,就像一个人缺胳膊少腿,使OO将不再是完整的,但是前三者对于OO来说好比鼻子耳朵,而多态则是生殖器,没有多态的OO就象是被阉割的雄性,已经失去其典征。

     

    什么是多态?

      简单来说,多态是具有表现多种形态的能力的特征,在OO中是指,语言具有根据对象的类型以不同方式处理之,特别是重载方法和继承类这种形式,的能力。多态被认为是面向对象语言的必备特性。

    多态有多种分类,通过了解这些分类可以更丰满对其认识,在这里就不再罗列,请各位参考 wiki大百科  和 javaworld .

     


    多态与泛型(generic)

      多态实际上就是泛型。


       所谓泛型就是指我们不为特定的类型进行专门编码,而采用对不同类型进行通用编码的方式,无论是数据结果还是算法。


      传统的泛型是指类似以Template function的方式使参数一般化,典型的应用是C++ STL,比如List、Vector以及algorithm。


      而OO已能通过接口(Interface)和抽象类(Abstract Class)进行真正意义上的泛型了。在我看来,这就是OO最精彩的地方,也就是多态的威力。而对于传统意义上的Generic,我始终觉得其作用已经今不如昔了。

     

    多态和继承(Inheritance)

      严格来说,多态与继承、重载并不是孤立的,他们之间存在着紧密的联系,多态是建立在这两者的基础之上的(实际上继承就有用重载这一特性)。


      传统的多态实际上就是由虚函数(Virtual Function)利用虚表(Virtual Table)实现的(早期C模拟OO特性时使用最多,C++的实现也是,后来的技术未作研究,是否使用VT不得而知),自然是离不开继承,换句话说多态实际上覆盖了继承。

      正是由于继承与多态的紧密联系,使得我们很容易张冠李戴,那么如何区别呢?

      举个常用的例子:

    Abstract Class Sharp implement IHaveSide {
     public bool isSharp(){
       return true;
     }
     public abstract int getSides();
    }

    Class Triangle extends Sharp {
     public override int getSides() {
       return 3;
     }
    }

    Class Rectangle extends Sharp {
     pubilc override int getSides() {
      return 4;
     }
    }

    那么这种类的关系叫做继承,下面这种使用方式也是继承所带来的:
    Triangel tri = new Triangle();
    println("Triangle is a type of sharp? " + tri.isSharp());

    而这种方式则是多态:
    Sharp sharp = new Rectangle();
    println("My sharp has " + sharp.getSides() + " sides.");

    这两者区别在哪?很显然,继承是子类使用父类的方法,而多态则是父类使用子类的方法。

    其技术上的区别是绑定时期,晚期绑定一定是多态。

     

    现代软件设计

      现代软件大量的使用框架、模式(非特指Deisgn Pattern),也就是将软件开发的一些共性进行抽象,提出普遍适用的软件结构。


      无论是框架还是模式,他们都有一些明显的共同点 — 使用xml配置对象,大量使用接口采用所谓面向接口的方法,利用反射实现。

      为什么要接口?因为需要抽象,需要将未知的对象在已有的框架中表现。


      如何实现接口?多态!所谓反射,实际上就是一种晚期绑定的技术,这个技术实质上表现出来的就是多态这一特征。

      面向方面开发(Aspect Oriented Programming)是一个热点,也是现代软件发展的趋势。定制、组件装配的软件开发方式在应用越来越复杂、需求变化越来越快的今天显得日趋重要。那么如何才能使今天的软件能够适应明天需要呢?如何使我开发速度更快?如何能更容易的修改应用?AOP则是解决这些问题的有效手段。


      让我们看看框架容器的主要模式,Inversion of Control Containers(IoC)/Dependency Injection(包括setter injection, construct injection, interface injection等),其主要好处就是类之间的依赖,通过运行期的查找来进行绑定。那么他的基础是什么呢?还是多态!


      我们可以看到,在现代软件的开发中,无数的思想象火花一样跳动。其中一类很重要的思想就是建立在多态这样一个很基本的特性,甚至可以说是一个语言概念之上的。在这里希望通过这篇文章抛砖引玉,引起更多的对与当今软件发展发向的思考,同时探究其根源。

     

    发表于 @ 2007年03月04日 15:57:00|评论(loading...)|编辑

    新一篇: 作一份高水准的英文简历 | 旧一篇: 关于Java占用内存的研究

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © njchenyi