您的位置:首页 > 职场人生

还有什么能比整个软件完全由你设计开发更让程序员开心的事呢?

2011-09-10 20:15 441 查看
  接上一篇《寂寞的程序人生》中提到的,从辞职到新公司也有一个半月了,相对在之前公司做点测试,这段时间则完全不同了,真的,完全不同!

  新公司是一个创业公司,成立不到一年,做安全测试和服务方面的,当初也是奔着这方面去的,顺便提下个人情况,今年毕业,学的是信息安全,对安全有点兴趣,却去了一家外包公司做了半年测试,后来由于兴趣不在测试这边,就果断辞职了,为什么会来到这家公司,这家公司为什么要我,还得从去年说起。

  我们学校属于二流学校中的二流,所以我们学校的政策是,尽可能把我们往外赶,大四就上了不到一个月的课就结束了,然后开始找工作,去实习。无奈大学四年混过,啥技术也没学到,不过也算是入了门。顺便提下,最初混看雪的,至于为什么来到博客园,后面会说到。在看雪上,看到了现在这家公司的招聘,投了几封简历,还写了一封真诚的自荐信,几天没有消息。后来我之前那家公司来我们学校招人,结果就稀里糊涂的签了。上午签的,下午那个没有消息的公司打电话过来,问有没有时间电话面个试。用QQ语言聊了一个小时,中间被鄙视了无数次,现在想想都不知道当时怎么过来的。由于跟之前公司已经签了三方协议,不想违约,于是就去做了测试,一做就是半年。然后就是上一篇中提到的辞职,来到了这家公司,可能是因为我的诚意吧,也可能是因为现在人真的不好招吧,毕竟创业公司,给不了太好的待遇,再然后就要了我。

  来到这家公司,主要做界面,说实话本来准备做C++的,无奈水平不够,而且相对对winform了解一点,在之前那个公司学到的一点C#基础,好吧,听从组织安排,就干起了C#,开始了界面开发。公司产品界面由winform开发,核心模块是C++写的,先说一下,整个公司就我一个C#,还是一个新手,崭新崭新的,还是一个不知道博客园的新人,连菜鸟都不是,连委托没用用过,不过用过函数指针。可能各位同学都已经烦了,说到现在,题目中所说的毛都没提到,如果是技术文章当然不可饶恕,不过这是随笔水文,大家就表骂了哈,那我我们回到正题吧。

  来公司一个半月,看了半个月的代码,中间修了几个BUG,这真的是没有任何指导的看,第一次接触有十个工程文件,编译要3分钟的项目。毫无头绪,之前写这个的人因为其它原因已经离职了。没办法一步一步走,熟悉软件流程和功能,慢慢也就明白是怎么回事了,不懂就用google,然后搜到的文章博客发现博客园的最有水准,于是我就来到了博客园,然后开始每天逛园子。看了半个月的代码,又花了十天完成了一个功能模块,产品2.0版本要开始开发了,C++模块那边早已经在开发了。功能于1.0有天壤之别,而且需求非常不明确,没有文档,没有说明,更没有人指导,但是有什么能比完全由你设计更激动人心的呢?

  与其用winform,不如用WPF,由于在之前那家公司做测试接触过,会一点。每天下班后开始用WPF做,大概花了一个礼拜,做了一个简单的demo,然后说服了老大,开始用WPF,就像老大开玩笑说的,既然选择了,就得承担后果和风险啊,多少未知因素啊。由于程序流程和选择了WPF,之前1.0的代码基本不能用,关键之前代码很多地方我都不能接受。因为来到了博客园,然后看到了小城故事的两篇文章《.NET程序员,我们应该更专业点》《别把你的代码当老婆》,个人觉得写得非常好,然后找了本《.Net设计规范》看了,然后觉得1.0版本的代码不可接受,基本要全部重写了。产品还是一步一步的设计出来了,不时的讨论和交流,整体程序也渐渐浮出水面。

  说实话,界面这边没有多少技术,当然要做的美观那就需要很多的功底了。WPF的界面开发个人觉得比winform简单多了,布局更好,还有更多特效,我不用管什么MVVM模型,所有代码我一个人完成(关键是不会),拖控件,添加事件,codebehind,做着菜鸟程序员最喜欢做的事。整个软件的界面我设计,如何更简单的操作,如何更合理的布局,如何更好的用户体验,这些都需要我来做,或者有我来发起,这种待遇有多少程序员能享受到?虽然很苦很累,很多东西需要现学现卖,不停的去google,和向他们请教,感觉每天都有新的惊喜。

  产品2.0初步版本前几天已经完成了,还延期了,在部署时出了很多问题,很多非常诡异的问题,程序只能在我的工作机上跑,因为我这用的是vs2010,他们C++那边的用的是vs2005,不过问题都顺利解决了,他们解决问题的能力真强。顺便提下由于要用WPF,我果断要求换成了VS2010,太喜欢2010的配色了。

  下面记录下这段时间用到的技术点,有时间把他们整理出来。

  1.由于程序要读写xml,最开始用的是XDocument,无意中后来看见一个人评论,然后知道了Linq to xml,果断抛弃前者,顺便把之前这方面的代码全重写了。

  2.由于程序要读写项目文件,以前用的是调用API一个一个写进文本,然后一个一个读出来,无意中知道了XML序列化,让我高兴了两天,多方便啊,多激动人心啊!

  3.对之前版本的窗口之间上一步下一步采用switch case弄晕了后,觉得应该有更好办法后,无意中知道了command设计模式,然后终于知道了多态的好处,结果现在弄的如果有switch case就想去用多态实现,悲剧啊!

  4.C#调用共享内存,以及调用非托管代码,混合编程什么的,这个前人栽的树,我只用乘下凉就OK啦。

  5.WPF多语言动态切换设计

  6.WPF水晶报表

  7.剩下的更多是WPF控件的用法了,Grid,listbox,listview,toolbar等一些乱七八糟的控件,还有就是些特效,窗口切换,窗口透明,程序启动动画等,界面真花时间!我甚至把窗口的长宽比换成了黄金分割,至于好不好看,不管你们信不信,我反正是信了。

  不管怎么样,这一个半月感觉很充实,很开心,还有什么能比整个软件完全由你设计开发更激动人心的事呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: