我心中的十大信息化软件开发技术
这是我2010年发表的第一篇博文,算是对我这十年所用软件开发技术的一些总结吧。由于个人知识有限,希望与大家共同讨论,讨论的主题可以是所列技术的分析,其它前沿技术的分析等等。
注:
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架构。没有虚拟机平台估计大家经常还在为一些内存泄露问题找上几天,当然,有了虚拟机并不代表完全解决问题,但是我们可以花更多时间去做该做事情,那些无聊的普通内存回收处理虚拟机会帮我们做。
四、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,但是由于它的格式规范与严谨及易扩展性,让它在数据交互通讯及软件配置方面成为首选的格式。通过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平台上应用更为广范,现在各种开发语言及数据库系统基本上都集成了正则表达式处理功能。
十、设计模式
设计模式很早就提出来了,它是面向对象开发技术的总结与升华,是一些前辈大师们的经验总结。设计模式好比《孙子兵法》或《三十六计》,就算能把所有的模式场景全背下来那又如何,没有通过实践来理解设计模式就是纸上谈兵。因为我们的实践还比较少,所以不是每个程序员都能轻松理解设计模式。正因为设计模式只是一些前辈大师们的经验总结,所以也并不代表完全的真理,因此也有些软件大师甚至不清楚有设计模式的概念。有如姜太公、成吉思汗不知道《孙子兵法》,但并不代表姜太公、成吉思汗不是著名的军事家,也不代表《孙子兵法》没有用处。
叶正盛(MKing)
2010-01-03
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yzsind/archive/2010/01/03/5125051.aspx
分享到:
相关推荐
信息化管理技术在图书馆管理中的应用已经成为现代图书馆提升服务质量与效率的关键。随着信息技术的快速发展,图书馆作为知识传播的重要载体,必须适应这一变化,充分利用信息化手段改进传统管理方式,以满足公众日益...
首先,培训的核心内容是教育信息化应用能力的提升,这让我深刻理解到信息技术不仅仅是用于制作课件的工具,而是一种能够深度融入教育教学过程,提高教学质量的有效手段。"教育信息技术为学校教育教学服务"的理念深深...
- 信息化理念未能深入到每个员工心中,影响了信息化工具的有效使用。 2. **传统营销竞争观念的限制**: - 传统营销理念仍占据主导地位,忽视了大数据技术的应用价值。 - 部分管理者对新技术持保守态度,不愿接受...
面对信息时代的挑战,教师应积极拥抱变革,不断实践和探索信息化教学,以此激发学生的学习热情,使知识在学生心中生根发芽,结出丰硕的成果。只有这样,才能真正实现教育的全面发展,培养适应未来社会的创新型人才。
因此,软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。 1 开发前的准备工作 一般软件项目在开发前都有系统任务书,主要规定软件的...
在活动四中,我们动员学生做“班级道德”宣讲员,让信息道德在每一个学生的心中生根发芽。最后,我们每月举行一次以“信息道德”为主题的手抄报比赛,并进行了评选。 通过本次活动,初步帮助学生树立正确的使用网络...
本研究可能深入分析河北移动已推出的某些家庭信息化产品,如智能路由器、云存储服务、在线教育平台等,探讨其成功或失败的原因,以供后续产品开发和市场策略的改进。 五、未来展望 面对5G、AI等新技术的挑战和机遇...
3. 行业发展分析:探讨了软件和信息技术服务的基本情况,铁路行业大规模投资带来的信息化高速发展,以及新兴信息技术对铁路信息化的积极影响。 4. 竞争格局分析:评估了行业内的竞争状况,并对烟台海颐软件股份有限...
在信息化工程中,监理工作显得尤为重要,因为它涉及到信息技术、自动化技术、网络技术和数据处理等多个领域的融合。 首先,信息化工程是现代社会进步的重要标志,它基于计算机技术和数字化技术,实现了信息的快速...
该报告不仅探讨了前沿技术的发展趋势,还深入分析了企业文化在数字化转型过程中的重要作用。 #### 关键趋势 **1. 智能自动** 随着自动化技术的迅速发展,企业越来越依赖于智能系统来提高效率、降低成本。这一趋势...
煤炭行业的管理信息化是当前产业转型升级的关键所在,旨在通过信息技术提升行业效率、降低成本并增强竞争力。本文将探讨煤炭行业管理信息化方案的核心内容,包括方案定位、差异化策略、行业特点、核心业务解决方案...
### C/C++对于软件开发初学者的重要性 在探讨C/C++对软件开发初学者的意义之前,我们先来看看成为一名合格的程序员需要具备哪些条件。根据给定的信息,一名合格的程序员应当具备以下三个基本条件: 1. **强烈的...
必需从实践工作中不断总结阅历,对于治理中的常见问题做到心中有数,并以此为准绳,贯彻落实信息化建立和治理的相关举措,需要相关工作人员能够乐观革新思想观念,主动学习先进的信息技术,结合本单位的实际状况开展...
整理了第4版新版高级系统项目管理师-十大管理-输入输出-工具与技术,思维导图一张图。方便大家随时随地记忆核心知识点,只有记住核心知识点,才能建立十大管理的知识体系框架,在选择、案例、论文做到心中有谱。
信息化教学设计是指运用现代信息技术手段,结合教育理论,创新教学模式,提升教学效果的过程。在初中英语教学中,这种设计有助于激发学生的学习兴趣,增强课堂互动,以及深化对知识的理解和应用。本文以“Make a ...
软件项目管理过程是软件项目开发的核心组成部分,旨在确保软件项目取得成功,必需对软件开发项目标工作范围、要完成任务、需要资源、需要工作量、进度安排、可能碰到风险等做到心中有数。软件项目标管理工作开始于...
《11 爸爸妈妈在我心中》是部编版道德与法治三年级上册的一篇课文,旨在教育学生理解和感恩父母的无私付出,培养他们的孝顺之心和实际行动。教学反思中,教师关注的重点是如何引导学生从日常生活中感知父母的爱,并...
果侵权请告知上传者立即删除。...通过构建智慧校园信息化平台,我们可以更好地把握教育的主动权,让社会主义核心价值观在大学生心中生根发芽,为培养德智体美劳全面发展的社会主义建设者和接班人贡献力量。