工作一年的总结

     不知不觉参加工作一年多了,对自己一点总结吧。

开源

     还记得来公司的第一天,分配给我的任务就是,花1周的时间看CEGUI的源代码,知道CEGUI的内部流程。这也是我第一次接触开源。说实话,当时看那些代码有点看天书的感觉,头皮发麻,看了一周也就大概弄清楚了个大概的GUI渲染流程,内部的东西还是一点没懂。慢慢的随着工作需要,会经常跟的CEGUI的内部去调试,加上熟悉了抽象的编程方式,开始逐步对CEGUI有所了解,并且发现它的代码写的很cool,就是易用性方面做的确实不太好(所谓学院派的通病),但是代码中运用了很多成熟的面向对象技术,所以基本上后来看《设计模式》的时候经常能在里头找到真实使用案例。

再后来,项目变动的原因,开始想自己写一个工程了,参考了CEGUI的SampleHelper,自己也试着将一些设计模式带入自己的代码,当写出来的时候感觉真的很cool,想着以前看这种代码都很难看懂,现在也出自自己之手,哈哈,一点点程序员小小的虚荣心。重要的是,从这之后,再看开源的东西已经是豁然开朗了,阅读代码能力得到了很大提升,更重要的是我领略了开源的魅力,想到如果以后我也能写出一个能让人觉得好的东西,并愿意来解读我的代码,这种感觉真的很cool,而这也对代码的美观提出了很大的要求,毕竟是要拿出去给别人看的。

游戏

从小到大,我都很喜欢玩游戏,从FC到街机,PS再到PC,再从单机到网游,玩的游戏也是数不胜数,但那是的身份都只是玩家。大学毕业设计时选了手机游戏,那是第一次领略到做游戏的快感,虽然很没有经验,做出来的游戏也仅仅是一个Demo,但这种感觉我却记得,所以找工作那会觉得如果能进入游戏行业真的很美妙的事情,有幸得偿所愿,而且是做为一名程序员。

进入游戏行业以后,我却很少玩游戏了,不是因为对游戏的兴趣减了,而是发现了比玩游戏更大的乐趣——编写游戏。虽然在现实生活中我们只是普通的程序员,但在游戏里我们是上帝,一切的一切都掌握在我们的手指之下,每一个NPC或者物品的诞生与消亡的规则都是我们制定的,这是个多么美妙的世界啊!

作为一名游戏爱好者,显然如果只是一名程序员的话,只能按照策划的要求去实现,对游戏而言,游戏程序员存在的意义是让策划的想法能够实现,游戏更加流畅而已。(当然程序员自有程序员的乐趣- -)在游戏制作方面,缺乏主动性,而这么多年的游戏经验也让我脑中有很多关于游戏的想法,所以我考虑以后也会往策划的方向发展学习。(其实现在公司每次有策划相关的培训讲座我都会参加)

程序

做为一名程序员而言,游戏和其他应用软件一样,都是软件,没有太大区别。

刚开始的时候,我喜欢什么都做的很快,这样才显得自己效率比别人高。慢慢的发现,快带来的后果经常是考虑不周全,代码经常需要修改。之后我喜欢代码写的比别人整洁,美观,通俗易懂,同时要有自己的风格。再然后段时间我开始关注代码的效率问题。

到了XSJ之后,受到这里的教导,我开始关注于程序的模块性和扩展性,此时写程序的速度已经慢了很多了,每次都会先把整个结构想一想,这段代码究竟该属于哪个模块,该怎么写才能更好的适应以后不断变化的需求,而不是仅仅为了解决当前的需求,解决当前的问题就可以了,要考虑的有很多。与此同时,还有个概念也开始进入我脑中,就是代码的复用和平台化,每次新加一个模块的代码的时候,除了考虑低耦合,高内聚之外,还要考虑的是它的通用性和可平台化,尽量降低与工程间的逻辑依赖,这是很重要的。理想的模块应该如积木一般,可随意混搭,而不用做太多改造。慢慢的开始有了简单的架构的概念。

另,来XSJ后更大的收获是开发中大量工具和脚本的运用,我断然感受到了为什么当年的蒸汽机可以引发工业革命,工具的应用给开发带来了极大的便利,各种策划工具,自动生成代码,自动构建,自动化测试,再看看以前,仿佛还处在刀耕火种的年代……脚本,方便快捷,以轻微的代码效率换来的是代码的“高机动性”,实在物超所值。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!