这几年的技术尝试,都有哪些失败的例子

我大学的专业是经济学,不是计算机专业。在性格方面,比较沉稳,随和。平时喜欢研究,做一些技术方面的探索,希望能让自己技能每年都有一个大的提升。自工作后有了笔记本,这种研究活动就进行的更加频繁。网上说Google会拿工作时间的20%给自己的的员工做研究之用,凭个人喜号,喜欢什么技术就鼓励他们研究什么,真是了不起的企业。员工的技能提升之后,对企业肯定有好处。做事的效率就是很大的进步。至于员工技术厉害了,想跳槽,通常是企业不珍惜自己的员工才会导致这样的局面。员工技术强,又能为企业带来实际的效益,为什么还是在企业中得不到重用呢。因为当初招聘你进来的时候,你还很年轻,技术又不成熟。到后来,尽管你做出了很大的努力,公司的产品也被你做得比较完美,每年安排的研发任务都按时按量的完成,So what ? 很多企业都是在用人,在利用资源,很少想到培养自己的团队。
一个新系统上线,大家第一个想到的就是要求别人要怎么在系统里面操作,怎样方便自己的工作;很少去想,自己要在系统里面规范操作,也给别人的工作行方便。

1 RemObjects Chrome Object Pascal Microsoft Visual Studio .NET
我喜欢这个技术源自于自己的第一份工作。公司的系统是用Delphi5开发的,当时热情高涨,每天下班或是去图书馆看书,或到公司去上机练习Delphi开发数据库管理系统。后来公司的系统全面转为.NET,再一直没有在项目中使用Delphi,也很少接触到Delphi的项目。接下来的工作,几乎都是用.NET开发。花了很大精力学习的Delphi技术,就这样荒废了。一个偶尔的机会,在盒子论坛上发现了这个软件开发包。
抱着试一下的态度,安装并尝试这项技术。这项技术的重点在于,用Delphi的语法,在.NET框架环境下开发系统。开发工具是我们熟悉的VS IDE,语法也是我熟悉的Delphi。于是,我对这项技术怀抱着极大的兴趣。平时的一些小工具,都会尝试用它来完成。平时很少做Delphi项目,连他的一些基本的操作都不会。比如字符串转为整型,.NET中有很多种方法。比如Convert.ToInt32, Int32.Parse,Int32.TryParse,或者直接用(int)来执行转换。Delphi中是使用运行库函数strToInt函数,很容易忘记。
使用这个软件包,我可以直接用熟悉的.NET 框架的API来开发程序,这对于一个熟练的C#开发人员,是非常方便的。几乎不用查找任何参考手册,立马上手就可以写程序代码。
后来公司要求,所有和项目相关的工具,程序,都必须用C#完成。我对这项目技术也逐渐淡化。加上它本身也有些问题不太熟悉,为了保险起见,关键的应用还是只用C#。
如今,这项目技术还在发展,网址是 http://www.remobjects.com/
年前还在自己的电脑中安装了一份试用版。可以直接在VS2008中创建一个Delphi的项目,用Delphi的语法来开发.NET运用。真有点怀念这项技术。
这个软件在盒子论坛里的下载地址是 http://www.2ccc.com/article.asp?articleid=4302

2  Flex ActionScript
大学期间会Flash技术,平时帮朋友做点Flash应用。毕业后,也帮朋友做些简单的Flash特效。有一次,在互动出版网看打折的书,书名大概是《Flash 5 开发手册》,于是花几块钱买回来学习一下,反正那本书也才几块钱。学着学着就有感觉了。Flash是可视化的开发SWF动画的方式,ActionScript是以程序的方式来开发SWF动画,就凭这一点,可以把很多专业的Flash设计人员远远的抛在后面。记得那时很喜欢闪客帝国这个网站,经常把它排名靠前的Flash下载下来。Flex的开发工具有:FlashDevelp和Flex Builder.
Flex Builder是官方的工具,也是目前最好的开发Flex应用的工具。自己还在网上找到相关的电子书,下载回去看,比如《Adobe Flex大师之路》,《Flex 3 Cookbook》。Cookbook这本书,为了加强印象,我几乎把它的代码都手抄了一遍。其实,我一直都看好这样技术。表面上,一般的用户都可以学懂,但实际上,没有编程经验会导致很难读懂代码,很难用程序员的思维去做开发。而一般的程序员又对这种技术看不起,认为这不是编程,是在拼凑玩具。现在很流行的web game,就是大量的运用这种技术。
之所以说失败,是因为没有在工作中应用这项技术,还只是自己业余的爱好,没有经历过实战,不知道实际做一个项目是怎样进行的。这就好比,我大二时就已经通过计算机三级考试,但是毕业了还是很焦虑,找工作还是很不容易,就因为没有实际开发过项目的经验。

3  DirextX
大学的时候,一位前辈指导我学C++。那时候分不清C++和VC++的区别,就糊里糊涂的去学C++。
语法看了好几本,比较经典的《C++编程思想》,《深度探索C++对象模型》,《Effective C++》,
《深入浅出MFC》,这些经典好书都被我一一收藏,经常看,经常学习。那时的《程序员》杂志里,候捷的文章比较多,他还特别提到学习C++的四种境界。大师就是大师,我深受影响。
到了大三,要开始准备找实习的工作了。发现自己理论的知识看得太多,具体的,弄个网页也不会,做个Access数据小应用也不会。这一年就特别强调实用操作,也开始关注C++的应用。到底C++可以做什么。读大学时时家里条件不好,直到大三了,父母才肯同意买电脑。于是经常出入武昌图书城,经常去汉口的武汉图书大世界。经过摸索发现,C++可以做游戏,可以做图形图象处理,也有用C++做数据库应用,但是比较少,通常是人民邮件出版社才出这样C++开发数据库主题的书。
凭借兴趣,买了几本C++关于游戏开发的书,开始接触游戏开发API。要么选DirectX,要么选Open GL.
开源的东西一般要配置,Windows 2000 系统的稳定性是很不错,但是用于配置编程开发还是很不熟悉。 那时上网又不方便,于是选择DirectX。安装完成后,打开VC++ 6就可以直接用。
后来工作了,电脑里面关于游戏编程的书,一直占据着电脑的一个角落。
image
这是目前电脑里仅存的几本关于游戏开发的书,发图作个记念。

4 Windows Workflow Foundation
工作一两年后,听一位前辈的话:做复杂的应用系统,必须要用到工作流。于是,自己有空的时候就研究这项技术。还特地去深圳购书中心买了本《WF高级编程》和《WF本质论》。关于工作流的研究和学习,差不多是近两年投入最大的一项技术研究。下面是我的电脑中的关于工作流的书
image
上面的基本上是关于工作流理论方面的,下面是关于实际操作的
image
每篇文章我都仔细看过,并且在电脑里运行过代码,在VS IDE中练习。
还有经典的Labs
image 
今天看到园子里关于WF 4.0的设计器,WF4.0流程设计器 (NET4.0 RC 版)。真想以此为契机,再把WF好好研究一下。好好的用于自己开发的项目中。
在网上看到的言论:MS的工作流引擎是世界一流的,这个无须怀疑。但是MS的工作流框架是基于BizTalk,SharePoint,Office系统,从这些系统中提炼出来的。抽象程度比较高,需要二次开发才可用于产品开发。MS的工作流框架是一个平台,不是一个应用技术,虽然可以和ASP.NET 一样,直接用来开发。但是这样的好处并不明显,反而增多了很多不必要的工作。
虽然我会在ASP.NET中加入工作流支持,应用工作流技术,一直都苦于没有找到突破口。
所以,到今天为止,我认为自己在WF方面的投入是失败的。

5  .NET Remoting
这项技术本身不失败,它反而很成功。记得当时MS大力宣传Web Service,很少宣传这项技术。
进企业参加工作后,公司的产品有应用这项目技术。当时公司开发了一套报表引擎,报表的服务器就是用.net Remoting做的。我们知道,平时做报表要求写SQL语句,提取数据然后绑定到报表的控件中。
Crystal Report中需要分组,拖动label并绑定到数据库字段,而Reporting Service相对容易,直接拖动一个Table/Matrix到页面中,绑定数据库表就可以了。当时公司的报表引擎的方法不是这样,他是把SQL转换化Assembly,运用反射技术调用这个assembly,通过这个assembly去取数据,assembly连接的服务器端就是用remoting做的服务器。 我们当时的工作主要是根据报表的需求,设计SQL语句,然后把SQL语句转化为assembly,这样才算完工。
后来我在工作中都尝试推荐使用remoting技术,可惜没有技术决定权。做程序的人,也说不出remoting为什么好,为什么要用。如果真的在项目中用,编程开发的复杂度会增加一个级别。单是处理这些接口和MarshByRefObject就比较头疼,还有各种细节方面的问题。
再到后来,自己有技术决定权了,想用remoting,可惜都忘记了。书店里,还有网上,大量讨论的主题是WCF。真有点苍凉的味道,就好古代的大侠,为求功名或报家仇,离家出走,去深山老林修炼盖世武功,
等武功修炼到炉火纯清的地步,离开深山老林,回家后发现身边的亲人都不见了。纵使现在有再大的本领,也没有什么用处了。
花了很大力气学的技术,没有在工作中用起来。所以我说对于.net remoting也是失败的。
WCF的命运就不一样,我已经在项目中用过这项技术,学会了就赶紧用起来,发现问题再具体问题具体分析。如果不用,永远都不会知道自己的研究是否正确,是否经得起考验。
关于WCF系列,我推荐webabcd的化零为整WCF系列文章。webabcd写AJAX方面的文章写得很不错,在WCF上面也表现不俗,这个系列的文章也写得非常棒。
image

6 Oracle
我与Oracle的缘分,源于我的第一份工作。当时的项目经理很喜欢用通用的SQL做法,也就即可以随时切换数据库类型的做法,从MySQL到Oracle再到SQL Server,我们程序都支持。当时的项目经理,他很喜欢这种做法。这样是有好处,但也有不利的一面。比如,要获取当前日期时间,SQL Server里面是GETDATE,Oracle里面是sysdate。这就导致凡是与特定数据库相关的特性都不能用,存储过程肯定不能,函数也不行。连获取当前时间,还需要从程序中获取,然后传到数据库中去。我们的程序代码充满了标准的SQL语句封装的代码,有时候一个小功能也要写一个17寸屏幕的页面大小。在网上找到的技巧一般也都不能用,它们通常只适用于特定的数据库。这个项目令我痛苦万分,真不知道如何形容当时的惨烈。
项目结束后,自己找了些Oracle的书来看,熟悉一下它的操作。Oracle和SQL还是有区别的,比如它的所有的数据都存放在一个数据库中,而SQL Server可以根据需要,创建多个数据库,以不同的数据库来隔离不同的系统。再到后来,公司的系统都是购买了license的SQL Server,根本就没有机会去用Oracle。
Oracle数据库技术在令我痛苦了一个夏天后,再没机会接触他。虽然自己有空的时候还是看看他的相关内容,但是没有在工作中使用,也没有碰到问题,所以也可以说是失败的。

伟大的物理学家牛顿有句名言,如果说我比别人看得更远些,那是因为我站在了巨人的肩膀上。
希望我的这些失败的经历,能让你在工作中有所领悟,尽量减少失败。
学知识已经很不容易了,学到了又没有为自己带来效益,那真是可惜。
今天只想到了这么多失败的经历,下次再补充。明天是周末,祝大家周末愉快。

posted @ 2010-02-26 20:55  信息化建设  阅读(5898)  评论(20编辑  收藏  举报