阅读内容 

"小A是支枪,子弹未打光"---之"手 枪"篇

[日期:2008-09-26] 来源:  作者: [字体: ]
     声明:在本文中不会使用“高手”“菜鸟”之类的词语。因为这类词汇是很糊模的,比如说也许你认为自己
  是一个菜鸟,但总会有比你更菜的人。但如果你认为自己是所谓的“高手”,那你在园子里的“高手”眼中又是
  什么角儿呢。再把范围扩展一下,园子里的“高手”在裘伯君,江民,蒋涛,梁肇新,候捷,李维这一类老资格
  高手或实力派IT书籍作者中又是什么样子呢。而这些国内“高手”在下面的这些“之父之母”和经典书籍作者的
  心里又是什么样子呢?
  
   Bjarne Stroustrup(C++之父),James Gosling(JAVA之父),Anders Hejlsberg(C#,DELPHI之父)
   Ken Thompson(Unix之父),Linus Torvalds(LINUX之父)..
  
  
   Donald Knuth: Art of Computer Programming 三卷作者,比尔盖茨曾说过,“如果你认为你是一名真
  正优秀的程序员,就去读第一卷,确定可以解决其中所有的问题。”“如果你能读懂整套书的话,请给我发一份你
  的简历。”(而他的书也是我至今还不敢碰的几本IT书籍之一)
  
   W.Richard.Stevens: unix环境高级编程, TCP/IP详解等书籍作者,只可惜不到50就过逝了
  
  
  
  
   .....还有一些,这里不一一列举了。
  
   看到这些,除了敢在“自己”的“一亩三分地”自封为王外,实在找不出别的什么更有自信的“东西”了。
  甚至当某些新手称自己为“高手”时,简直犹如“芒刺在背”,心感愧疚。
  
   上面陈述就是我不想使用“高手”“菜鸟”之类称呼的原因所在。当然不用这两个词,总该找两个“替代品”
  吧,思前想后,感觉“新手”“老手”这两个词倒挺合适。当然这里的“老手”绝不是那种“老油条”或是那
  种在公司里靠“混资历”不思进取的老程序员,因为这类程序员“负面”的一言一行相当于在刚入职的新人和新
  手脑中放了一枚“原子弹”,会打碎“新手”对行业特别是IT行业的“美好”梦想(虽然现实并不“美好”),
  使其迷失方向甚至丧失“斗志”。
  
   好了,规范了“用词”,下面开始今天的内容。
  
   话说小A 从学校这条“兵工场”流水线下线之后,才发觉在学校里学的东西基本上没什么太大用处,当然有
  关数据结构,离散,算法,软件工程这几门课程在几年后才真正能堪“重任”,有用武之地。其它所学的课程
  基本上在找到新工作之后没派上什么用场。
  
   而小A毕业之后所找的第一家工作就是在一家网络公司开发ASP程序(在那个asp,PHP,JSP横行的年代里,只
  有掌握其中至少一种,才能在行业里真正站住脚,“有口饭吃”)。虽然工资不高但还能满足温饱,并能拿出一
  些钱来周济一下家中(因为母亲因轻度的脑血栓住院,直到小A工作快一年后,才把因住院欠亲朋好友的钱全还
  清)。也就是在这时,小A才知道钱对于维护家庭的正常运转和“后需保障”有多么重要。所以这时小A才真正
  找到了动力和方向,知道了为什么而学习和奋斗。
  
   因为实际工作中用到了ASP开发(公司网站完全是在window产品平台上,当时.net平台还未推出),而那时
  动网论坛无疑是学习ASP的最佳范例,此时公司恰恰需要架一个asp论坛,所以在部门领导决定让小A来搭建并维
  护这个平台。也就是在这段时间里,才发现ASP居然可以这样写,与自己之前所学习的公司网站asp代码简直是
  天壤之别,感觉公司代码如同“垃圾”。在疯狂研究了半年之后(时间长是因为自身水平太菜),感觉自己水
  平见涨,这时才开始着手用学习到的“东西”改进并规范公司的代码,因为当时的程序员只有小A和部门经理
  两个人(那个经理后来也跳槽了)。所以沟通起来成本较底,基本上两个一碰头就决定了下一步该如何开发了。
  这样工作了一年半左右的时间,感觉自己对ASP的了解已够全面了,准备换上一家公司(主要是因为薪水问题)。
  因为在这家公司学到了不少,况且怎么说也是自己在毕业之后找的第一家公司,但因为公司老总对程序员就是
  那么回事,不太重视,而且发展空间比较小,加上后来招的三名程序员,一共才4个开发人员,且大家平时分
  工不同,水平也都一般,对于渴望学习研究新技术的小A而言,未来才是值得期待的。
  
   而在此时,小A发现了一个事实,在ChinaRen和51Job上ASP开发人员的工作不像JSP那样好找且工资水平不
  高,而这时公司准备架一个聊天服务器,而聊天程序准备从一家 JSP公司买来,并招了一名 jsp程序员,也就是
  个JSP程序员来到公司之后,小A不失时机的向他了解jsp方面的一些语言背影和框架知识。那时正好是Structs
  蓬勃发展的时候,而小A也是这时才第一次听到Framework(框架)这个词,并且被其中的一些名词和强大灵活
  的"开发火力"所吸引,才感到自己之前所学的只是"井底之蛙",拿不到桌面上。在开发小的应用(如小网站)上
  还行,拿到大的项目上(那时流行门户网站)就不堪重负了。这时小A开始感到迷茫了,是转投JSP, 还是继续
  做ASP,还是放弃做WEB开发,重新打鼓另开张去做C++(因为小A自认为C++在大学期间学的不错)。好在这时
  微软的 .net平台也发布了,公司打算转型做 .net网站平台,而之前对公司代码最熟悉的就是小A了,在看过一
  些.net介绍资料和MSDN信息之后, 小A感觉C#可比c++容易多了,起码声明或申请的资源不用专门写代码来释放
  (当时也就这个认识),这就好比"拉完屎不用擦屁股"一样,.net的垃圾回收器帮你擦了。另外最让小A感到
  方便的就是上传文件只有几行代码搞定,不像ASP中要使用并注册上传插件那样麻烦。最终决定先不急于换工作,
  利用这次机会好好学习.net。另外在此时小A广泛学习TCP/IP,C++ MFC等内容,虽然凭自己的水平和大学期
  间学习的内容,但学习起来还是很费力,但相信好东西不好学,好学的不是好东西(事实证明在日后公司开发
  WebService服务时,对TCP/IP和HTTP等知识的了解使其开发在理论上更好理解)。
  
   在后来的开发中,小A与公司其它开发人员一起转型到.net平台上,一起进行ASP.net开发,这时在市面上
  关于 .net开发的书还不是很多,其中还有几本是台湾作者写的,好在一国两制,语言上不是太大障碍,起码在
  大学期间看过候捷等台湾作家的书,对一些软件(体)术语理解上不费劲.所以这里真是大小通吃,只要是与
  .net开发相关的,懂或不懂都去学习,管他什么方向(后来小A想起来因为"方向不明确"浪费了不少时间和精
  力)。而当时CSDN也不失时机的大力宣传.net,大家如果看到2002-2004这三年csdn精华本(每年出上下两册)
  ,都预留很大一块阵地给.net,而开发设计等方面的文章也如雨后春笋一样"遍篇都是",一切都是那样美好.
  给人感觉已与java分庭抗争了,前途无量呀(在多年后看来情况远不是这样)。
  
   也就是那时才开始研究"用户控件",因为它能解决代码重用和分散复杂的页面逻辑.其实这时只有一
  本章立民写的有关(用户)控件开发的书是小A总在看的,也就是通过这本书才了解到缓存的巨大威力.并在
  网站首页和相应"需要频繁访问而数据相对稳定"的页面中使用,效果果然不同繁响.而同事们也有人开始
  看webservice方向的内容,正如大家所知:.net是目前为止开发SOA最方便和高率的平台(起码当时如此),
  在今天看来WCF进行SOA应用开发以及REST(WCF3.5的webget,webinvoke属性)架构仍然是上选,这块
  做的太NB了。
  
   所以那时自己也决定与大家一起将网站架构部分转到WebService方向,各个频道(前台)交互数据全部
  采用WebService,这样的好处就是松藕合和架构灵活(注:当时团队中无人知道SOA,多年后想起来感觉当时
  大家的一些设计理念与SOA很相近,不过这也符合那几年全国开发人员对SOA的认识,而有关这方面的内容可
  以参见孟岩的这篇文章,他算是把从那个年代走过来的开发人员对SOA的理解从头履了一遍,让人深有同感)。
  
   说到这里,还没有提到标题所说的"手 枪篇"三个字,其实这个灵感来自于我路上的一次"忽发奇想".
  因为总有人会抱怨被别人(特别是公司老板)利用---当"枪"使.所以这样不妨使用这个比喻,因为我们在
  学校这个兵工厂中锻造出来的只是"手 枪",为什么"手 枪"呢?
  
   因为首先就是 "射程",我们在学校中无法学习架构,设计模式等内容的精髓(起码我的大学当时还没
  开"设计模式"之类的学习课程,原因很简单,C++还有考试不积极的,再讲解设计模式,恐怕要"全班全
  年级"覆没了)。因为我们的眼光只相当于手 枪的"射程",也就是五六十米左右,所以决定我们的技术
  仅够防身和开发简单应用的了。
  
   另外就是我们的"火力"。"手 枪"普遍都是单发(无法连发速射甚至多管齐射)而且弹夹容量很有限(相
  当于我们的设计经验).因为没有丰富的开发经验,所以平时开发时,经常一边看书一边写代码,开发效率
  和程序的健壮性稳定性可想而知。如果这时再让你同时接手几个项目(相当于"速射"连发),你肯定要
  感到头大,大得就像是"100个城管爆揍一个不法商贩"那样,只能说"死定了"。
  
   最后就是消化吸收新知识的速度,因为一切要白手起来,起来对当行流行的框架,模式等学习吸收速
  度慢,直接导致"弹药"不足。在与同行讨论切磋时,感觉底气不足,不知所云.而这直接决定了小A要
  尽快购买并吸收尽可能多的"子弹(书籍和源代码)",只有保证弹药充足,才能枪不至沦为"烧火棍".
  
   当然在接下来的一篇文章中,我们会伴随小A一起走过设计模式,代码生成工具,应用框架研究及使用
  以及AOP,IOC(那时相当时尚的技术名词)诸方面来加强自身火力使其从"手 枪"变成一把"半自动(或
  全自动)".如下图:
  
  好了,今天的内容就先到这里了,感兴趣的朋友可以在回复中讨论.    
  
   tag:开发,webservice,soa,wcf,手 枪,步枪,framework
  
   作者:代震军,daizhj
  
   原文链接:http://www.cnblogs.com/daizhj/archive/2008/09/12/1289817.HTML
    
阅读:
录入:blue1000

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement