又一年了

不知不觉一年又已经过去,毕业工作做开发已经快两年了。

老早就想写下这一年的总结了,但是总是往后拖,其实这与我个人有很大关系,也是我的一个很大的毛病,总喜欢把一些事情叠到一起去做,这也导致了我老是忘记一些事情或是一些本来简单的事情最后因为很多事情叠到一起而不能做好或是有的事情最后就没能去做,就像手动分配内存要释放一样,分配的时候想起知道要释放而后可能就忘了,所以工作中也就经常遇到这样苦恼的毛病。

说说这一年的工作吧,之前一年都是做了一些后台的东西,基本都是一些简单的数据处理,一个数据流的过程,从一个模块流向另一个模块,最后展现到UI,虽然也做了界面的东西,因为UI用户可操作的东西与交互性不是很多,所以逻辑自然就不是太多了,异常操作少了,界面功能不多,对于一个新手来说虽然是学一些新的东西,新的语言,有的东西甚至之前听都没听过,最后项目算是完成了吧,因为涉及到第三方的东西,所以有的地方不可控,自己也是个新手,最后客户的使用效果也不是太好,所以一直 比较郁闷,其实那时候第一次完成一个项目的大部分根本没有项目产品化,项目商业化的概念,真的是比较戳,到现在为止我都没有做过一个自己感觉比较好的东西,产品就更提不上了,虽然客户在用,但是自我感觉就是不咋地,其实现在想想这也与公司和老大有关系,没有一个完整的开发流程,没有一个完整的设计和规化,在开发过程中这儿改那儿改,今天说这样,明天说那样,现在才知道有多悲催。悲催归悲催吧,但是还是学到一些东西,毕竟刚刚工作,就这样结束了自己毕业第一年的工作。

去年过完年屁颠屁颠的回公司上班,又开始做另一个与前一个项目相近的东西,至于什么关系,用软件开发里的词我也说不上,这个我还是个门外汉;这个也做了不少时间,最后结果是悲剧了,虽然现在重拾起来,有一些模块用上了,但对自己来说还很失败的,那种挫败感,因为之前的那个项目客户用起来体验也不好,有时候还有问题,有时候还得回去查问题,所以那种感觉真的是说有多沮丧有多沮丧.说白了,还是自己太菜,一个只知道写代码的菜鸟,而且代码还写得比较戳(现在看起来,当然以后看起可能会更戳),根本没有软件开发流程的概念。其实到现在为止,都觉得自己这一年比较失败了。

中间种种原因,这个项目就暂时搁置了,至于中间的种种原因就不提了,功能算是完成了,只是不能实用,其实就是很戳了,说白了就跟没做一样。反正程序员屌丝那种沮丧是不用说了,现在我觉得这个项目做到这份上,自己尽力了,只是没有得到好结果。与自己的性格有关也与上司和公司的整个开发环境有关,只知道干活的牛,不多言语,一直跟党走,自己初级菜鸟嘛,所以免不了悲剧的结果,这样过程很苦逼,结果当然就更苦逼了。

后来做了现在这个项目,一个cs结构的项目,我负责了s和一个c,另外一个哥们负责另一个c,其实做到现在想想,老大能让我做这个,算是给了我一个很好的机会,但是还是那句话自己太菜,之前从来没有参加过一个完整的软件项目的设计开发流程,虽然有老大带,但是因为公司没有一个完整的规范的软件开发流程,就是按老大说的一步步来(老大其实也没说多少,可能是自己也没问),现在回想起来,自己除了写了个功能说明文档和协议文档,设计文档是另一个做界面设计的哥们做好了,其它什么文档都没写,就TM开始写代码了,期间老大也只是大体看了下功能说明文档和协议文档,功能细节基本都没提,更搞笑的是刚开始的时候 我什么都没做,就大体看了下需求文档和界面设计文档,就准备去学界面UI准备练下UI,因为之前没做过pc的UI,然后准备写代码了,自己也没多问(自己的性格有关系),后来老大叫我先拟下功能,熟悉下功能,我算是写了个功能说明文档吧,第一次写文档,可想而知了.最后开始上代码了,用了自己的都觉得很可耻很漫长的岁月才算把这个项目的初步版本完成,是不是都觉得很奇怪这个项目做出来会是什么样,当然是需求分析里的功能都有了,界面可能跟开始的界面设计有许多的出入,功能细节一开始就没有细过,也许界面ui设计图可能算是一个功能模块的设计吧,这个是出自另外一哥们(做界面设计的)之手,自己就天天苦逼的加班加点干活按照那个界面设计来搞,公司连一个工作餐都没提供过,就这样渡过这个漫长而苦逼的岁月,最后做出来也是改了又改,严重超过预期时间.

另外一哥们因为比我还新,就不多提了。只是他之前做过一个定制的pc端UI,因为客户端的网络层和协议层都差不多,所以这部分我写好之后,他直接拿过去做些小修改就直接拿来用了,也算是苦逼的和我一起把他的UI做完了。

这个过程中,有时候自己坐车回家的时候,已经是很晚了,加上其它方面的原因,觉得自己特别痛苦,天天做得那么苦逼,却还是做了这么长时间,还没做完。自己也算是慢慢调节自己,慢慢的走过来了。自己心情不好的时候就会自己一个人出去走走,慢慢就会好了,其实糟糕的心情过上段时间就没事了。这个过程中一直在给自己台阶下,调整自己的心态,也算是不容易的走过来了。

新手菜鸟一定要多问,这是我血的教训,界面上的东西真的不能随便搞,如果最开始就有一个界面的设计定型还好(就是有详细设计阶段),如果没有或是你有别的想法一定要跟上司或是项目组讨论,否则自己veryvery可能是徙劳,因为如果你见过的界面UI风格少,平时又不是一个怎么关注UI的人,你搞出来的可能很业余。其实是美工的事儿,这种情况也只有像我遇到的类似公司会遇到了.记住,多问一定会提高工作效率。

如上写下总结吧,个人觉得如果没有一个良好的软件开发流程,首当其冲的就是开发周期没法控制.对于个人项目经验老手,技术方面也比较强的人来说,这种小项目可能还好,但是对于 一个新手,就像我,可忴的项目经验加可忴的技术等于可忴的结果或是悲剧的结果。现在算是知道了软件开发流程中的各个阶段该干啥啦,这个流程多么重要了。尤其公司跟据市场需求做自己的产品,因为公司自己开发产品,所以需求这块可能不会太全面,当然也不可能做到太全面,不同客户有不同的需求,所以这就要求刚开始的时候需求分析要做得很好,也就是一个初步的版本要具备哪些功能,一些通用的功能是否涉及全面。当然这个需求肯定是跟一部分客户沟通之后,自己再结合实际情况来确定要完成哪些功能了。这个过程就会产生一个需求说明文档,需求说明文档应该说得很详细,功能自然不必说了,其它的比如:对运行速度是否有要求; 对数据的实时性是否有要求; 对界面细节是否有要求(说白了也就是用户体验了);对网络带宽是否有要求(即运行环境了);对安全性是否有要求(如对数据加密或是对一些功能的实现细节会有影响),以后是否有拓展需求(即增加软件的功能);软件的运用规模等,以上的这些(我在做项目过程中能想到或是遇到的了)都会对接下来的功能模块设计,软件的数据流程,软件的组织结构以及一些细节功能的实现方式以及UI设计都会有很大影响,如果这一步做不好,后面再来改的话,那将会是一个很痛苦的过程,因为后续的很多东西都要改,模块之间数据交互方式,细节功能实现方式等等。

下一步就是对需求进行功能模块设计,各个模块组织结构也就是数据流的流程,运行过程,一些数据交互过程中用到的数据结构的定义,应该有一个软件的主体框架图(组织结构图),及每个功能模块之间的数据流程图,我大概就知道这些了。这里有一个错误处理模块,整个软件的错误处理模块是很重要的,当然这里的错误处理模块是针对整个项目而言;像那种界面UI很复杂的项目,在开始做之前一定得事先想到除正常流程外其它可能的非正常操作流程会导致的结果,最好在详细设计一些功能的实现时,在每一个模块里有一个记录,是做友好提示还是做其它操作等,以致在后续编码中不会遗忘,当然详细设计里可以进一步将这些错误或是异常跟据功能模块等来进一步化分。详细设计阶段应该是对每一个功能模块进行细化,也就是数据处理过程(输入和输出),每个功能模块都有自己的输入和输出,即数据的流进与流出,有的模块可能是程序内部另一个模块的输出作为输入的,而有的模块可能是以用户的鼠标键盘操作等作为输入,同时可能还需要将一些数据信息输出展现给用户,不得不提界面的输入与输出是直接与客户打交道的,所以逻辑会比较复杂,模块(界面)之间的关联性比较强,涉及到的异常操作和输入会比较多,在模块设计时一定要想好,考虑好数据在模块之间的交互方式及可能的异常操作或非正常操作带来的异常处理。功能详细设计里面可能就会涉及到一些具体算法或是技术问题以及界面的最终定型。这个阶段里应该将每个功能的实现算法和所要用到的技术都有展现,即每个功能用什么方法技术实现,界面要做成什么样(数据怎么展现)都要定型,实现过程中还有哪些技术难点等都应理出来。

如果以上两个过程做得很到位,接下来的编码应该就没太多问题了,而且功能模块,做出来的界面也不会随意改动,就可以达到开发周期上的可控。否则界面会面临今天这样改明天那样改的局面,功能模块的变化,都会直接导致一个痛苦的编码过程。

还应该总结一下自己身上的bug,这个就私下里去慢慢调,慢慢改吧!

我的一年也就这样了,技术应该是没学到太多东西了,项目上也就是写的这样了。苦逼的一年吧!

今年先在这儿激励一下自己吧,再难也要顶住。

菜鸟总结,如有发现,欢迎拍砖。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值