如何看待软件开发新技术(转)

2008-03-18 21:18

如何看待软件开发新技术(转)

新技术新编程语言不段涌现的IT界,有人说:“原地不动就是倒退”,如果不能熟练掌握两门以上的主流编程语言或技术,被社会淘汰就是迟早的事。也有人认为“一招通吃遍天”,只要精通掌握一门语言技术,同样可以成为IT职场中的香饽饽。同样的,面对层出不穷的新编程语言,有的开发者放掉了自己已掌握的而改学新出现的语言,例如Ruby,Elang,Scala;而更多的开发人员选择了坚守,对正在使用的语言技术深度挖掘,积累更丰富的经验。 如果你的目标是成为一名架构师,在面对业界眼花缭乱的技术/语言时该如何做出选择,CSDN本期“专家看台”专访了某企业管理软件开发公司CTO 吕建伟。吕建伟具有10年企业管理软件商业开发运营从业经历,曾任某中型软件公司首席架构师、微软Vendor商业咨询顾问、Borland特约顾问、CTO。多年致力于企业管理软件开发过程管理、产品框架、行业发展/技术发展/产品竞争的研究)。他将就有关话题与大家一起讨论,分享他的观点。 吕建伟首先表示,自己是做架构师出身,虽然现在已经脱离了架构,身在CTO位置上,主要关注产品战略发展、开发过程管理、产品Framework、IT行业发展变化、新产品新应用新盈利模式、客户行业变化、竞争者变化。但自己对当前流行的热门技术还是一直在跟踪。虽然考虑到作为公司长期赖以生存的产品和竞争策略,很多最新的技术不能迅速应用到产品开发中。但对新技术成熟度和切入点的考察,一直是他关注和感兴趣的问题。 记者:如果是想成为一名架构师,在面对业界眼花缭乱的技术/语言时该如何做出选择? 吕建伟:我首先为大家画一张图,对当前IT业界主流技术做个架构分层。
从这张图可以看到,每一个技术都是在各自的层次上做了适当发展,而且都是为了弥补本层现有产品和架构的问题。吕建伟首先提醒,对于未来想做架构师的朋友,不管是学习.Net,Windows,SQLSERVER,从现在开始一定要有架构的思路。要分层,从点到线,从线到面,从面到体系来横竖切分。 而且一个产品架构,也往往是这么多层,而且在应用软件架构上,也就是:表现层、业务层、数据层。其他我们都是利用的中间件和VM和OS的现成技术,我们本身一般无须深入。而表现层、业务层、数据层,层与层之间都有接口层,而不是硬性接口,否则就成铁板一块了。一般架构经验不足的架构师,往往容易出现这样的毛病,层是分开了,自己沾沾自喜,以为这个架构是很有扩展性的。但具体一应用,就发现很硬,动不了。这就是缺乏接口层的原因。 记者:通过你的讲解,大家对当前主流IT架构有了大概的了解,但是光有这样的图,大家好像还不解渴。对于一些刚出道新入门的朋友该如何从中选择,究竟是精通一门语言技术,还是掌握两门语言技术,哪个才更有钱途和前途,才能更好的找到工作。这是大家目前更关注的问题。想当架构师,那是遥远的梦。必须先把温饱问题解决了。 吕建伟:对于这个问题,要看个人的具体情况,需要分开来回答: 如果你的学历和能力,只能进入一般的软件公司或集成公司,那么选择微软的技术体系不错。因为微软体系,网上很多学习资料,而且大量的企业应用是用微软技术开发的,而且很多公司也用微软技术。所以公司多,你好找工作。微软的技术一般固定:C#+Asp.net+SQLSERVER+Visual Studio。 如果你的学历和能力,能进入做大型企业应用的公司,那么你就选择JAVA的技术体系。因为现在大型企业,基本都用JAVA开发。你可以从eclipse、structs、hibernate、WebService、Tomcat、Apache、JBoss、POJO、Oracle开始学习,然后再学习WebLogic、WebSphere、Portal技术、工作流技术。 如果你想进入互联网公司或web2.0创业公司。那么一般Php、Mysql、Apache、Ruby on Rails、Python是你的学习目标。 如果你想进入手机开发,那么Symbian和C++(Nokia,市场份额最大)、J2ME(android产品,google发布,还未正式生产,但应该很有前途)、Windows Mobile(微软,好开发,从开发思路到工具到语言,都是你所熟悉的)。这三类短期内会三者鼎立,谁也不会把谁干掉 。至于5年之后,就不好说,至少5年内,是手机时代,是手机无线时代,每个厂商都在争抢这一块未来最有钱途的肉。 如果你想进入目前炙手可热的网游公司。做服务器端,你得C++过硬、网络传输技术过硬、并发线程处理、了解Linux编程要和了解windows编程一样深入。如果你想做客户端,那么图形图像处理算法你得首先过关。当然,现在很多引擎、工具、AI包、材质库、脚本减少了不少客户端编程的难度。 如果你想进入现在已经未来10年内一直很热的嵌入式编程,那么C++,而且你的单片机编程你得过关。中国是世界第一制造大国,而且这种局面在5-10年内也很难改变。制造,过去比谁的工人成本低。但是现在材料和人工的增长,使制造压力巨大。就只能提升自己的制造能力。 制造高尖端的产品,就需要高尖端的流水线。而且,中国的电子产品也越来越强大,日本产品从最初的独霸中国,渐渐变成了中国国货的天下。在手机上、数码相机上、家电、冰箱、DVD、空调、汽车、交通、医疗、数控,等等,很多领域需要嵌入式编程。就连咱们的嫦娥一号也是嵌入式编程的典范。华为、中兴这些通信设施也是嵌入式编程范围。 当然,你也可以剑走偏锋。过去是Notes编程,随着国产OA的兴起,Notes编程渐渐衰退。但是,中国现在大型企业都在上线ERP,而且大多用的是Oracle或SAP的ERP。这些ERP产品,都提供了客户化定制编程开发环境,提供了完备的应用API。大型企业应用ERP,都需要定制化开发,大量缺乏这类人才。但是,市面上这些学习资料都非常少,这是个难题。 另外,现在的外包也非常热,各地建立外包园,就跟当年建立软件园一样群起。想进入外包公司,首先日语或英语需要过关。咱们国家的外包,一般来自日本和欧美。在开发中,一般也是三种语言的主流:C++、C#、JAVA。 总之,我们说了很多开发技术以及语言,其实是各个量级的语言是相类似的,学习了一种,其它几种都很类似。我看开发语言,一般分为:核心底层开发语言、业务运算层开发语言、脚本层开发语言。核心底层,一般C/C++使用最广泛,毕竟大量操作系统和硬件驱动都是由C/C++编写,从性能到控制深度和力度都有保证。在业务运算层面,C#和JAVA为主流,分别代表微软和非微软阵营的两大技术体系。Delphi、VB也是在业务运算层面工作,但毕竟现在不为这两大阵营厂商主流力挺(一项技术的广泛应用,不仅在于这项技术的革新性,也在于支持它的公司的业界推动。)。 在脚本层面上,过去的ASP,现在的Perl、PHP、Ruby、Python、ASP.NET都是在脚本层面工作。每一层面上的开发语言都互相借鉴竞争发展,所以你现在会看到JAVA和C#越来越像,Ruby on Rails一出,立即在其它脚本语言上立即出了开源社团支持类Rails框架。 所以,从以上分析来看,C++、C#、JAVA,都是当今的主流。都在各方面都应用很广。你选择哪一类都会有很多的机会和空间。但如果你学了C++,又怕以后碰不到C++的工作,还要学C#,还要学JAVA,那么你终将一事无成。 记者:根据你的观点,开发者必须先在掌握一门语言技术的基础上再考虑学其他的新技术。但开发者有可能担心自己学到的是过时的技术,不被社会承认和接受,对自己未来发展不利。对于最新的技术,开发人员该如何适时跟进呢? 吕建伟:其实,现在的技术都是在弥补和改进它所致力解决的问题域的现状,真正的技术革命并没有产生(语义Web会是一个革命,但什么时候发生,谁会领导下次革命未知)。不管是最近的当红炸子鸡:Ruby on Rails,还是Google带起的AJAX,还是现在的FLEX和Sliverlight的争霸,都是在现状的改良。 不过,我们要看到的是,现在的互联网应用不管横插进许多3D互联网、3G手机终端新技术,但有个趋势是大势所趋,我们必须看到。
从XML、RSS、XMLHttp、Json、Google个人定制、Google API、SAAS、虚拟化、云计算、WebService、REST、SOA、脚本语言、Mashup的兴起,其实都在往同一个方向前进。那就是:Open API。 SUN总裁和Oracle总裁当年都曾布道:网络就是计算机。现在终于成真。 我们传统在WINDOWS下编程,其实WINDOWS内核我们一般是无法调用和接触到的,我们一般工作在API层面。所以,WINDOWS在程序员的面前,就是WINDOWS API,这就是我们通常的WINDOWS 编程。但是,在互联网上我们如何编程?我们过去是在一个个的制造网站,当网站密布全球的时候,URL连接把整个互联网串在一起的时候,互联网变成了一个地球巨型计算机。如何在这个巨型计算机上编程,是现在微软、IBM、Google都在致力研究和竞争的事情。 我们顺应大潮,踏准技术的脚步,就能参与到全球产业链中。 所以,一项新技术出来,我们先看它和现有技术的关联,看现在这些关联的技术到底共同特性是什么,看领导这些技术潮流的大公司的研究重点和支持力度,我们就知道业界技术潮流都在往哪个主流方向走。当然,在这个主流中,各个公司都会根据自己所处的竞争优劣势推出自己的产品,唱的论调也各有重点。不过我们无须眼花缭乱,因为它们都是殊路同归。它们要解决的都是一个问题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: csdnCSDN,中国软件开发者联盟)是一个面向IT技术人员的技术社区平台。在软件开发领域,技术文件的要求对于开发团队非常重要。 首先,技术文件应当清晰明确地描述软件开发技术的要求和规范。这包括将软件开发过程中的各个阶段、步骤和流程详细地描述出来,确保团队成员在开发过程中能够按照统一的标准进行工作。 其次,技术文件应当提供必要的代码示例和开发工具的使用说明。这对于开发人员来说是非常重要的,通过实际的代码示例可以更好地理解和运用所需的技术,使用说明则能帮助开发人员正确地使用开发工具,提高开发效率。 此外,技术文件还应当包含对于软件开发中常用概念和术语的解释和说明。对于新加入开发团队的人员来说,这些解释和说明将有助于他们更快地适应项目的要求和开发环境。 另外,在技术文件中还需要详细地列出软件开发中所需的硬件和软件环境要求。开发团队需要在正确的硬件和软件环境下进行工作,以确保开发过程的顺利进行和软件的质量。 最后,技术文件需要定期进行更新和维护,以反映最新的技术发展和团队的实际需求。随着技术的不断进步和变革,技术文件应当及时地更新以保持与时俱进。 总之,软件开发技术文件的要求包括清晰明确地描述软件开发技术规范、提供代码示例和工具使用说明、解释和说明常用的概念和术语、列出硬件和软件环境要求,并定期更新和维护。这些要求能够确保开发团队能够按照统一的标准和规范进行工作,提高软件开发效率和质量。 ### 回答2: 软件开发技术文件是指在软件开发过程中所需要编写的文档,CSDN是一个开发者社区平台,提供了丰富的软件开发技术文档资源。软件开发技术文件的要求包括以下几个方面。 首先,技术文件应具备清晰的结构和完整的内容。开发者在编写技术文件时,应按照一定的结构组织内容,包括项目概述、需求分析、系统设计、编码实现、测试验证等等。每个部分的内容要完整准确,避免遗漏关键信息。 其次,技术文件应准确描述软件开发过程和技术要点。在编写技术文档时,应详细记录软件开发过程中的关键环节和技术要点,包括技术选型、架构设计、算法实现等。这样可以提高团队协作效率,方便技术交流和问题解决。 再次,技术文件应具备良好的可读性和可理解性。开发者在编写技术文档时,应使用简洁明了的语言,避免过多的行话和术语,让读者能够轻松理解和阅读。同时,可以使用代码示例、流程图等辅助说明,帮助读者更好地理解技术细节。 最后,CSDN作为一个开发者社区平台,提供了丰富的技术文档资源。开发者可以在CSDN上搜索相关的技术文档,并参考各类技术博客、教程等。这些资源对于开发者学习和提高软件开发技能都非常有帮助。 总而言之,软件开发技术文件要求具备清晰完整的结构、准确描述开发过程和技术要点、具备良好的可读性和可理解性。而CSDN为开发者提供了丰富的技术文档资源,可以作为参考和学习的平台。 ### 回答3: 软件开发技术文件是指用于记录软件开发过程中的技术要求、设计方案、开发进度、测试计划等内容的文件。这些文件的编写对于软件开发项目的顺利进行和质量保障非常重要。 首先,软件开发技术文件应包括准确明确的技术要求。这些要求需要详细说明软件的功能需求、性能要求、安全要求等,以便开发团队明确开发的目标和方向。 其次,技术文件应包括详细的设计方案。设计方案描述了软件的体系结构、模块之间的关系、算法的选择等。设计方案的良好编写能够保证软件的可扩展性、可维护性和性能。 此外,技术文件还应包括开发进度的规划和管理。这些文件可以通过制定开发计划、里程碑和任务分配表等方式来确保项目按时交付和进度可控。 最后,技术文件中应包括详细的测试计划。测试计划需要明确测试的范围、测试用例的编写和执行方式,以确保软件质量和功能可靠性。 总结来说,软件开发技术文件是软件开发过程中的重要文档,它们有助于确保软件开发过程的透明和可控。只有通过详细记录和规范的要求、设计、进度和测试,才能保证软件开发的高质量。在CSDN上,我们可以查找和学习与软件开发相关的技术文章和资料,以帮助我们理解和编写这些重要的技术文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值