一起来打太极(3)

又到了我们的太极时间。这几天开心被关了禁闭了,不仅要入住公司安排的饭店,而且每天晚饭也不能出去吃了,必须吃大锅饭,晚饭吃完后,没有休息时间,而是要继续工作到晚上十点。

公司的开发人员已经非常疲劳了,在我看来,这简直是一批溃军。由此我在想,那些国企的领军人物似乎真的都没有什么管理才能。他们总相信时间是海绵里面的水这样的观念,为了拼时间,而不停的压榨员工的休息时间。可是这样就能换取进度吗?我想不是吗?

其实这个项目的症结,还是在于需求确认上。上周六,监理组来了三位工程师(我十分佩服这三位工程师,那个161页的需求说明书其实就是他们执笔的),与这边的系统分析人员就需求进行确认,结果整个需求在监理组这边根本通不过,监理组认为分析师根本没有理会他们文档的意思。

周一晚上及周二上午,需求方来了十多位高官(需求方来头不小,是有执法权的),再次对需求进行确认(周六到周一,需求又被修改)。但是十分可惜的是,仍然没有通过,甚至需求方那十个人自己也无法把需求拿准,在内部就出现内讧的现象。整个需求分析在周一开到凌晨零点半左右。到最后仍然可以说没有结果。

第二天(周二)的需求分析会我就没有再参加,而且我要求我们的开发人员也都不参加了,我到了需要痛下决心的时候,把需求锁死。虽然一没有完整而且稳定的需求,二没有数据库设计(数据库设计由专人负责,不在我的掌控之内,本来周一晚上要给我数据字典,但一直到今天为止,我没有见到相关文档),但按照进度,项目已经不可能再拖了。

所以我把需求锁定为周一的那个快速原型(即使该需求有错误及不合理的地方),我们开发人员的目标就是在下周一前完成这个快速原型的一个模块,使用上次介绍的N层框架。

需求锁死后,我们发现很多事情都变得反而简单了。每个人的任务也比较清晰,虽然由于.NET的陌生的原因,部分开发人员并不熟悉开发方式,但他们的团队精神让我钦佩,到现在,完成的情况如下:

  • 数据提供层:100%已经完成;
  • 实体类:将实体类划分为三个模块,由于一个模块与需求关系过紧,现在没有涉及。另外两模块,一个完成30%,一个完成50%;
  • 业务逻辑层:下周一要完成的模块的接口定义已经基本完成,而接下来的模块则由一个高级开发人员专门负责进行设计及开发,不参与当前模块的开发。今天下午已经进入具体编码过程;
  • Web Service层:由于只是一个业务逻辑层的暴露接口,此部分的设计已经完成,代码开发在业务逻辑层结束后,仅需要两小时就可以完成(现在以伪接口形式提供);
  • Web Skin:由于需求的不确定性,在上周就已经将所有的界面都以Web User Control完成了(由于对ASP.NET的掌握情况,质量并不高)。

我相信下周一我们所定的目标能够初步完成,但是这个目标出来后,仍然会有很多Bug(我在这个阶段只负责技术难题的解决,不参与具体代码的开发),我希望在周一及周二进行两天的Code Review。然后就这段时间代码编写所暴露出来的问题进行探讨,并且讲解一下ASP.NET优化方式(其实做这个项目的同时,我们也在对大家的.NET技能进行培训)。

总的来说,我现在已经有了信心。而正是我的开发团队给了我信心,所以我决定在本周五,请我的开发团队成员们一起FB一次,如果哪位朋友有时间,欢迎来参加呀。

周末我可能要请假回家,准备拜见丈母娘了。

 

 

一起来打太极(2)

了,被锁住了,明天开始卷铺盖到该公司自己的饭店里面入住,要住一个月,一直跟到这个项目结束为止,周六周日也要在那儿加班,好命苦呀。据说那个单位是军工企业,被美军卫星从天上照着,凡在此进入频繁者,不允许入境美国,呜呜呜,明年的MVP Summit参加不了了。

 这两天开始进入详细设计阶段,前段时间,项目组的几位负责人最终与需求方定下了需求,当然,我们在详细设计阶段,还是发现了很多需求不清晰的地方,不过,这种情况经常发生,不是吗?

今天上午搭建了代码编写环境,并且初步分派了任务。共分为三组,一组去进行数据库设计,一组进行业务逻辑层的搭建(含数据层),另外一组进行Web设计。

Web组的成员主要是将前期的实用设计界面(即使用HTML+JavaScript搭建的快速原型)翻译为ASP.NET界面,不过不需要写任何代码,只要把相应的模块转换为ASCX就可以,并且签入到VSS当中。

数据库组的人员按照需求方提供的数据字典建立数据库(数据库系统是Oracle 9i,不知道性能如何),并且建立表间关系、存储过程之类的。

而业务逻辑层组的人员主要搭建实体类及业务操作类,以及数据层,同时为了保证结构优化,数据库组与业务逻辑层组的人员每天要会面一次,讲解一下各自的见解。

为了便于日后的NLB或者CLB的扩展需要,Web层将不会直接调用业务逻辑层的东西,而是通过中间的Web Service进行调用(今天演示了一把Web Service的创建,他们感觉非常酷。因为有人原来是使用Java的,现在对.NET服了,用JBuilder写Web Service,光WSDL文件就让人厌烦)。

现在有几个问题,一直没有想好:

  • 业务逻辑层中的实体类用什么比较好?是创建自定义的实体类还是直接使用DataSet,使用DataSet便于绑定,而使用自定义的实体类则效率较高。那么使用强类型的DataSet呢?会有什么问题吗?需要今天研究决定。
  • 开发过程中如何齐头并进?因为三层结构是纵向分割的,所以会存在相互依赖的关系。难道先是所有人一起上来去做数据层,然后再搭建业务逻辑层,最后一齐完成Web层吗?我不希望这样,所以分为了多组,在两天内不会出现问题,但下周开始,则会有一组人没有事情做。这是我不愿意看到的。
  • 缓存是在页面级做好,还是在业务逻辑层实现好?如何把关键层次的运行效率调整好?前几天看了ASP.NET的那个PPT,然后又去访问了http://www.asp.net,发现并没有像他们鼓吹的有多大的改善,甚至跟CSDN一样,越调整,速度越慢了(CSDN这几天成笑话了)。
  • 如何掌控程序中的Bug?在目前的态势下,根本没有办法按照MS的那一套来做。虽然我提出过可以使用BMS XP来试试,但项目负责人担心如此一来会使项目组的编程方式发生更改(不过也是,光使用VSS我就感觉他们就不习惯了)。

希望有经验的人能够给我一些见解,我也会在后续的过程中把太极十八式打好,供大家参考。

【博客堂杯征文】成就梦想-记我的成长路程(三)

续上

第五部分:技术界面

       有一句古话,叫做兵马未动,粮草先行,强调的是在军事战争中,粮草对于整个战局的重要性。做比赛,或者开发一个项目,就如同打一场战争,里面的粮草,就是我们的技术实力。在创新杯比赛之前,我们团队中所有人对于.net并不是很精通,最多就是能写出一两个中等规模的应用程序。

技术调查可以说是同选题同时开始的,每个人都在努力的学习这.net的最新技术。当然,我们的心理并不害怕,因为我们有最强大的技术支持—-放飞技术网,按我们的话说,就是“如果他们都做不出来的话,也就没人能做出来了”。我也非常相信这一点,正是因为有这样的技术实力,才能把网站办到今天。

界面是这个作品给人的第一种感受,所以界面的设计非常重要。刚开始,每个人必须设计出自己的界面方案,然后拿到一起大家共同讨论。有的设计得像Winamp,有的集成了Windows Office XP的按钮风格,有的设计得像MSN,千姿百态。最后还是一个完整的界面方案得到了大家的认同。


 

       没错,上面两幅图片就是我们当初设计的界面方案。(我没有做任何修改,完全无保留给贴出来的)第一个是一开始画面的Splash窗口,双击桌面图标以后看到的界面。当时的想象是做成MSN的风格,落实到我们这里就是中间的主图标向左上角飞,因为前面还有一个登陆界面,然后一个沉稳的男性声音或者可爱的女生声音同时在说“Checking your password, please waiting.”。窗口中间再有程序的另外图标(比如说那个神殿)在中间旋转或者有其他的动作。第二个是软件的主界面,左下角是旋转的椭圆形轮盘,每个节点代表不同的项目功能,右边主要的那一部分是该部分的详细介绍,对应到每一个介绍中,主界面的左上角会显示相应的详细信息。每次切换轮盘的不同部分的时候,显示界面会出现梦幻般的切换效果,同时配以左下角轮盘的变速旋转。总之所有的所有设计最好能给人一种有下一代应用程序的感觉。界面都是没有边框的,设计的时候考虑最多的是界面美观,完全抛弃技术实现难度。事实证明,这样的决策是正确的。另外还要说一句,我们的项目名称叫做《我的工大.net》,英文名称是《My BUT.net》是解决工大校内信息化的一个应用。

       对于这次的比赛,我们在前期争论最大的就是用什么样的应用。当然焦点只有两个,Web Application 或者 Windows Application,各有各的好处。因为以前我们都是作Web开发出身,或者是做MIS出身,可能对于网页形式的会感觉好一些,毕竟大家都很熟悉。但是考虑到技术实现难度,选题角度,以及一些可拓展型等等,最终我们选择了Windows Application。在这次争执中,我们再次感受到了一个关键的问题,一定要出现能够镇服大家人,或者是理由。那—-是2003年4月。

【博客堂杯征文】成就梦想-记我的成长历程(一)

为便于阅读,本文现在分为几篇发表,每天发表一部分,敬请原谅笑脸

作者      曹翼飞   [email protected]  放飞技术网

简述
我们都知道微软“创新杯”,他是代表全国最高水平的软件设计大赛。作者从一个什么都不会的孩子,经过努力的拼搏,最终获得了大赛的三等奖。其中的苦也好,乐也好,通过本文有着真实的体现。希望所有大学中的朋友,在看过本文之后,能够有所感悟。
文章以时间为线索,以梦引子,展开详细记述了一个人的成长历程。最后文章以梦结束,作者实现自己的梦想。
文章以“序”开始,以“幕”结束。“幕”字本身有末尾的意思,代表文章的一个结束。但是两个字加起来,正好为“序幕”,将所有的成长过程加在中间,意思为整个这一过程,仅仅是人生的一个序幕,将来还有很多的路要去走,很多的事要去做。

内容

梦的开始
初现端倪
茁壮成长
创新大赛
技术界面
前期设计
遭遇非典
酷暑激战
准备决战
梦的演义

正文

序:
成为软件开发高手,是每一个学习计算机的学生的梦想,当然,我也不例外。在大一大二时,我曾经为了这个梦想,自学过很多东西。但是看着那些功成名就的师哥师姐,总觉得自己还是有很大的差距。
在第一届的微软“创新杯”大赛中,北京工业大学代表队获得了全国第三名的成绩,当我看到获奖者在当年的上海APEC峰会上与Bill Gates先生握手的时候,不由产生了一种强烈的敬佩感。“真不知道怎么学才能学成他那样!”这是我当时最强烈的感受。在学校的大礼堂,团队的成员为全校师生展示了他们的作品—电子政府。无论是界面,还是功能,都给了我一种耳目一新的感觉。由于我当时的变成水平还停留在C语言的DOS界面的程序设计上,所以对于他们所作出来的一切,都感到了前所未有的神秘与向往。那—-是2001年11月。

第一部分:梦的开始
每个人都有自己的梦想,我的梦想是成为软件高手。这对于每一个处于大一或者大二的学子来讲,都是可以接受的。
我是一个不甘于现状的人,所以为了自己的梦想,肯定自己坚信是要付出很多的。于是,我找到了第一个大牛—-一个大四的师哥。他为我介绍了步入软件行业的第一步,数据库。于是我毫不犹豫地买下了第一本计算机书籍《SQL Server 7.0数据库系统管理与应用开发》。在整个大二寒假的假期里,自己一直在以一种非常痛苦的状态来看这本书,毕竟这是我一门从来都没有接触过的知识。在放寒假之前,我还听从了另一个人的建议,去看看win32程序设计。一个寒假过去了,结果可想而知,我除了知道windows下程序设计是一条一条令人难以理解的消息,SQL Server是一个微软的产品以外,我毫无收获。
在接下来的一个学期里,我又自学了MFC程序设计,但是那本被誉为经典中的经典的《VC6技术内幕》,我也仅仅看到了200页,就再也看不下去了。那些知识对于我简直是致命的打击,我一直在怀疑自己是否真正适合程序设计这一行,甚至有时在怀疑自己的智商或者能力。
当然这时候还出现了另外一件事,那就是竞选学生会主席,最终我失败了,在那个酷热的夏天里,我,有一种无比的失落感。梦—-就这样破灭了。那—-是2002年6月。

第二部分:初现端倪
在竞选失败的一刹那,我加入了学校里的另一个组织,放飞技术网。起初在这里的工作很简单,就是更新新闻,这是一项根本连大脑都用不上的工作,可是我却干的很高兴,因为可以近距离的接触那些高手。
后来从某个渠道听说,在暑假的时间里,放飞网要开发一套学宿中心管理系统,是为我们学校学宿管理中心开发的系统。我由于比较善于表达自己,自告奋勇要求参加这次系统的开发。很幸运,我被选中了,在那个北京罕见的“桑拿天”里,我们开始了程序设计开发。
我的工作很简单,当然这也因为我什么都不会。只是拿着一本ATL网络开发方面的书,来回的看,然后作出一个内嵌IE的框架浏览器。我的主要工作还是测试与文档,在接下来的两个星期时间里,我写出了整个系统几乎全部的使用手册与开发文档。
一个暑假的时间不长,但是我经历了一个项目从设计分析,到最终完成设计的全部阶段。可以说这样的机会对于一个大二的学生来讲,是不多的。于是我对自己的前途,又产生了新的希望。那—-是2002年9月。

 

一起来打太极(1)

斯林总会带来一些惊喜,在排版上一直比较前卫,相当于技术博客中的木子美吧咧嘴笑脸,(知道我为什么把他比喻为木子美吗?只是为了点击率,呵呵)。

这两天在协助一家公司进行.NET开发,我作为外聘人员进入这个开发团队,蹲点一个月。

昨天进入后,发现一个情况,团队成员共有六个人员,可是基本上没有人了解.NET,甚至使用过ASP、JSP、PHP的人都甚少,其中有两个女孩子似乎只在大学里面学过C语言,没有过实际开发经验。而我得到的项目需求却有整整六十五页,而且目前需求还处于不明晰的时期。所以,第一天开始,我的心就有一些凉,感觉项目可能要延期。

然后我又查看了团队成员的学习方法,在他们身边查看他们如何学习,得到以下情况(以下无任何对我们的团队成员不敬的地方,只是用以归纳现象):

  • 过于相信技术经典:这似乎是很多初学者的毛病,对大部分人来说,如果接触一门新的语言或者系统,他们往往去书店里面买来所有相关的书籍,而且价格越贵越好(当然,有些人是花公司的钱,不会心疼)。 
  • 不知道如何下手:或者是VS.NET提供的功能过于丰富,很多人在接到项目中无从下手,虽然看了很多书及许多示例,但真要自己干活的时候,却没有概念,甚至会使用一些莫名其妙的怪招。
  • 基本概念不清晰:由于.NET一次提出来的新概念实在太多,响叮当甚至提出“世界上最困难的事,莫过于要你三句话讲清楚什么是.net……. ”,所以很多人对于一些基本概念不清晰,甚至会有人问我“Code Behind是不是就是面向对象”;
  • 不习惯使用调试(Debug):我第一次帮成员调试的时候,竟然发现他们机器上无法进行调试,然后在我询问后,发现大部分人都没有使用调试功能,或者不喜欢用调试。第一个的原因是因为使用Proxy,但忘记设置本地地址不使用Proxy的选项了。而第二个人竟然建立了一个空的Web项目,所有文件都手工加上的,就是没有加Web.config及Global.asax这些文件。

今天上午我自己做了一个简单的示例程序,即留言本。我想这个是每个人都用过的东西,所以也适合做初学者实验使用。然后下午开始在会议室,利用这个Demo为大家讲解如何上手一个.NET Project的开发,主要是Web User Control的应用、配置文件的使用、多项目开发、面向对象等等,讲解了一个小时,然后让他们用一天时间做出这个项目来。(我习惯于用这个程序带领别人入门,不过这次我没有让他们使用Web Service)。

明天准备给他们讲一下Visual Sourcesafe的使用,然后开始动手程序框架的编写工作。

 

熟悉Office System 2003及Biztalk的人站出来

现在有一个工作,使用Office System 2003及Biztalk进行开发工作流的项目,要求对微软的各种产品比较熟悉的人参与。

不过与我上次说的那个招聘一样,仍然需要在这段开发期间是全职的,在开发完成后,则需要另行寻找工作。不过待遇绝对优厚,以我的经验来说,这样的工作一天相当于你原来的工作的三天。当然,如果你更有价值,则可以一天相当于别人的一个月也不定。

当然,更详细的信息我仍然没有,只是有人找我做项目,而我目前没有时间,所以就把好处让给大家了。如果有更多北京的SOHO的就好了吐舌笑脸

我现在在一个国有企业工作,唉,节奏慢得跟打太极似的,我决定明天开始利用这段时间钻研Yukon+Whidbey咧嘴笑脸

冲刺,冲刺,最后冲刺!

今天完成了两个微软的项目,不过却有些后发先至的味道,呵呵。

本来在上周的时候就接了那个Windows Application项目,可是却一直没有完工,主要是自己的懒惰,加上一些误解(以为项目由他人代为完成了呢),所以现在才正式完成。在这个项目的进行中,得到了大家的帮助,在这儿表示感谢。

本周又做了一个Biztalk 2004的项目,记得上次已经说过了,而且这回与上次的Biztalk项目最大的不同就是,我们使用的是Biztalk 2004中文版,而且项目周期特别急,满打满算才四天。周五早上十一点演示的,我没有参加演示,而是直接回家睡觉了,第二天睡醒了,打电话去问,得知郊果还不错,真是十分高兴!

这个月开始,好象一直没有闲着,明天又接了一个为期一个月的项目。新的项目是ASP.NET开发,而且也牵扯到工作流的开发,不知道能不能说服他们使用Biztalk,我现在对Biztalk上瘾了,虽然我并不拿手。

另外,还有两个项目,由于实在忙不开了,只好求助于大家了,如果谁有空余时间,可以与我联系一下,ASP.NET的,要求在开发期间是全职的,开发完了,就脱离劳动关系,所以大家一定要想好,有工作的人就不要想了。而且外地的也不要想了。如果实在没有人想,我准备直接与小峰联系了。

 

中国移动?感动中国

还记得开心的手机GPRS欠费事件吗?当时我的手机曾经一个半月欠费三万多元,全都是因为该死的GPRS。之所以欠费是因为我当时是以大客户的身份参与GPRS测试的,GPRS包月200元,但在测试期完成后,他们并没有通知我,而擅自改为了自由套餐,所以话费猛涨,差一点导致开心破产哭泣的脸

最后是怎么解决的呢?第一个月给我算了200元钱的包月费,第二个月因为已经通知我了,给我算了500元。也就是花了700元钱,那时候想想还是非常的亏悲伤的脸

结果昨天中午正在努力工作的时候,收到一条短信,说我的积分已经可以换取奖励了。于是发送JF到1861,结果消息太令我振奋了,你们知道我现在拥有什么了吗?

  • 12000公里的国航里程
  • 100万元人身意外伤害
  • 青鸟健身季卡

呵呵,怎么样?更详细的信息在这儿:http://www.bmcc.com.cn/index/svc/jfhb/,我的积分现在足以选择两张青鸟健身季卡了咧嘴笑脸

我要去健身,太被中国移动感动了吐舌笑脸

下周安排

又是一周的结束,明天一天要去北京市大兴区参加一个大学同学的同学的婚礼,今年我参加的婚礼真的不少,简直太多了。到现在为止,今年参加了四个婚礼,呵呵,而且都发生在我失业的时候,好可怕呀。

下周将又要去MS工作一周,还是一个工作流的项目,Biztalk Server 2004+ASP.NET,可惜,上次跟我合作的阿斌这一次却不是我的搭档了。

刚才青鸟培训中心的“网络埋伏记事”同志说我真能熬,在没有收入来源的情况下,能够坚持半年左右,对我PFPF。其实呢,我还是有收入来源的,就是给微软打几次散工而已,但的确有些资不抵债,这不,上次打散工的钱一直到现在还没有到帐,不得不从Best那儿借了一万元钱,苦呀。本来借钱是买电脑的,可是后来想了再想,想了再想,决定还是先用现在的电脑,毕竟钱不够呀!

生活,总会继续下去的。我想在不久的将来,我会有一个好的工作,有一堆好的同事…