我心中的xx信息化软件开发技术
????? 这是我2010年发表的{dy}篇博文,算是对我这十年所用软件开发技术的一些总结吧。由于个人知识有限,希望与大家共同讨论,讨论的主题可以是所列技术的分析,其它前沿技术的分析等等。
注:
1、主题是开发领域,不包括UML等建模设计技术、测试技术等等;
2、主要是信息化软件开发技术,不包括互联网、游戏及嵌入式开发等领域;
3、所列技术目前还是主流开发技术,并且已经得到至少5年以上的实践证明;
4、所列的技术与厂商无关,也不是指具体某个产品。
一、面向对象开发
????? 除了一些嵌入式和底层相关开发,面向对象开发技术无疑是当前最主流的软件开发方法。也许很多高手认为菜鸟根本不是在用面向对象开发,但是如果你选择了一种面向对象的开发语言或架构,那自然就会用到面向对象的特性,只是开发人员对面向对象技术的理解深度罢了。没有面向对象技术很难想像靠一群普通软件工人能做出个20万行代码以上的软件系统。
二、SQL
????? 如果没有SQL,没有了关系型数据库,我都不知道会变成什么样子。很多数据库平台的SQL语言很强大,只要我们能想到的逻辑基本上都能写出来。如果要用普通代码来实现一个复杂的SQL查询逻辑,那会是恶梦,好在现在关系型数据库已经为我们做了一切,我们只要输入select就可以得到我们想要的信息。开发人员很喜欢SQL语言,因为它很人性化,以至于现在有什么HQL,FQL,LINQ等等。有人很讨厌SQL,认为是SQL的复杂导致数据库的性能低下。NoSQL数据库也在发展,但我认为那不是因为SQL的问题,只是关系数据库在高性能分布式领域的挑战。
三、虚拟机平台
????? 这里的虚拟机不是指操作系统级的虚拟机(VMWare,XEN,VisualPC等),而是指语言的运行平台,如JVM或.NET架构。没有虚拟机平台估计大家经常还在为一些内存泄露问题找上几天,当然,有了虚拟机并不代表xx解决问题,但是我们可以花更多时间去做该做事情,那些无聊的普通内存回收处理虚拟机会帮我们做。
四、HTML+JavaScript
????? HTML让我们的世界充实,JavaScript上世界更加精彩。B/S架构让开发人员看起来很痛苦,因为它没有C/S那种快速开发能得到的成就感。但是当大家把成果合并后给客户演示的时候,我们才认识到已经上贼船了,为了打动客户我们没有退路。HTML+JavaScript是B/S架构代表,它们已经很多年没有发展了,但依然是B/S开发技术的主流。B/S与C/S正朝着RIA方向发展,面对着Flex和SilverLight等RIA架构的强势进攻,Ajax技术只能拯救一时,我想只有HTML5会证明HTML依然强大。JavaScript的灵活性始终让人把它当作语言的另类,也让人看不清这种语言的方向在哪里。
五、XML
????? XML技术出现时间不长,它的出现让人们给于了太多的期望,特别是希望它能代替流行的HTML。XML+XSL或者XHTML基本上可以实现HTML的所有功能,且格式更规范。但是一种技术要代替另外一种技术不能仅是功能代替,而是要让开发人员或客户看到能大大提高工作效率和解决实际问题。XML没有成功代替流行的HTML,但是由于它的格式规范与严谨及易扩展性,让它在数据交互通讯及软件配置方面成为{sx}的格式。通过XML格式我们可以很轻松的管理我们的配置文件,也不用再为定义格式规约计较太多。XML技术也正在得到更多的应用与支持,XPath及XQuery让XML数据的查询很方便,有些数据库也内置支持XML格式数据存储与检索。
六、WebService
????? WebService技术总让人感觉不成熟,但是我们基本上离不开它,因为它让不同的软件交互变得可行,因为WebService与语言基本无关,这可以让开发人员更多的关心业务功能的实现而不是一些无聊的技术。WebService一直被性能问题困扰,也许这会是它的终结者。有人说WebService天生就是SOA架构的神经,但是SOA是什么?面向服务?SOA有点虚,比云计算虚多了,WebService只是SOA当前不得已的技术之一。SOA是一个很好的理念,但我想SOA还有很长的路要走,有如10年前的电子商务,在没有电子支付安全体系、供方信誉评价体系、物流系统等基础上谈电子商务需要魄力与执着。
七、不对称加密
????? 安全问题总是困扰着信息化软件,对称加密系统的密匙管理问题总是很头疼。通过不对称加密算法,我们可以很方便的发行密匙,也初步建立起了现在的安全信任体系。不过不对称加密的基础数学原理(因子分解、椭圆曲线)总是让人感觉有点脆弱,说不准哪天有个天才数学家把我们的安全体系一笔破灭,就好像《相对论》与《经典力学》,《日心说》与《地心说》一样。
八、工作流
????? 如果没有好的工作流平台,我不知道一个大型企业管理软件如何维护与扩展。10年前我们的系统没有工作流平台,软件每到一个客户方实施,客户总会提出一些个性化的流程,于是软件就成了每个客户一个版本,一个开发团队如果能很好的维护一套软件10个不同的版本,那真是太辛苦他们了。工作流平台可以很好的解决这种问题,特别是在中国,因为国内企业的业务流程总是经常变化,客户业务流程变化时可以通过工作流平台定制自己的业务流程,这样可以大大减少软件维护成本,同时也提高客户满意度,客户也不担心因为软件的问题继续执行现在不合理的流程。
九、正则表达式
????? 相比SQL与关系型数据库,XPath与XML,正则表达式是文本解析的强大武器。它功能强大、语法简洁与灵活,特别是在UNIX/LINUX平台上应用更为广范,现在各种开发语言及数据库系统基本上都集成了正则表达式处理功能。
十、设计模式
????? 设计模式很早就提出来了,它是面向对象开发技术的总结与升华,是一些前辈大师们的经验总结。设计模式好比《孙子兵法》或《三十六计》,就算能把所有的模式场景全背下来那又如何,没有通过实践来理解设计模式就是纸上谈兵。因为我们的实践还比较少,所以不是每个程序员都能轻松理解设计模式。正因为设计模式只是一些前辈大师们的经验总结,所以也并不代表xx的真理,因此也有些软件大师甚至不清楚有设计模式的概念。有如姜太公、成吉思汗不知道《孙子兵法》,但并不代表姜太公、成吉思汗不是xx的军事家,也不代表《孙子兵法》没有用处。
?
叶正盛(MKing)
2010-01-03
本文来自CSDN博客,转载请标明出处: