今年年初的时候接到了一个单子,一个类似前程无忧的功能的app,时间三个月,第一次接,完全无经验,接到的第二天就开始各种忙碌了,首先是研究了一下需求,发现难点不多,一个定位地图、分享、信息推送,其他的功能无非就是读取服务端进行展示,提交数据到服务端,感觉应该不是很难。但是考虑到是第一次做,公司的活也不少,就找了一个同事,以前是一个小组的,刚离职不久回老家,就想着他应该还没开始找工作,正好趁着这段时间可以挣点钱,长点经验,正好我心里面也有个依靠。
多个人开发软件的话,首先考虑到了版本控制的问题,这个必须做好,要不以后的开发会出现很多问题,如果不做代码控制,合并代码很容易会被覆盖,而且这样合并也很容易漏掉东西,会在这上面浪费很多时间,于是就开始找合适的代码控制工具,首先想到的是svn,因为在工作中用的就是svn,但是上网查,需要使用第三方的服务器,当时感觉挺麻烦的,因为觉得时间紧任务重,所以选择了一个相对简单的git,下载一个git插件,注册一个git用户就可以用了,但是还是没有学会git的使用方法,只会从git服务器上下载代码,上传代码,但是如果一个人提交了之后,另一个人要下载的话,就要把自己本机的代码与服务端首先做个比较,把自己修改的东西截图记下来,如果冲突了,把冲突的代码记录到text文本中,然后把自己本机代码做备份,重新下载服务端工程,然后把自己修改的东西添加进去再进行提交,这样的使用方法一直持续到了整个工程的结束!这点确实也很耽误时间,但是当时实在是觉得没有时间去研究这个git使用方法了。软件开发完了,好好研究下怎么使用,刚才找了篇文章,现在还没实践!
其次就是好好研究需求,做一个功能设计的文档了,这个自己感觉还不错,以后的开发大都是按照功能设计来的,所以感觉这个步骤也是很重要的,磨刀不误砍柴功!
然后就是美工设计软件的整体风格、画主要界面,这个我们做的就有点能失误了,应该是给美工看一下功能设计文档,一起讨论界面,而我们是美工看着需求开始做界面,我看着需求开始做功能设计,这其中就会有理解的偏差,而且美工只做了主要的界面,细节的界面没有做,我觉得这是我们在这个环节的主要失误,这导致后面的细节页面都是我们开发人员自己设计的。图片有的都是自己到网上找的!这块就会浪费时间。我觉得这个应该是美工把整体风格画出来之后给客户看下是不是满意,如果可以的话,我们就按照这个风格将整个app所用到的界面都画出来,所有的界面都画出来,然后我们开发人员看看界面的开发的难点,总共有多少个界面,每个功能有几个页面,做一个时间的评估,订一个开发计划表,项目进度表(这个应该是按照客户给出的时间计划,比如什么时候要演示什么功能),这个最好给出一定的测试时间,一般半个月的时间用来测试。
在美工设计界面的时候,我就开始自己写接口协议了,这个是做的最不好的,这个文档浪费了我整一天的时间,自己拼的json字符串,这个其实应该是跟服务端的开发人员讨论每个功能的入参和出参,出参格式是jsonarray还是json串,这样就可以了。这个定下来之后,以后就不要随意改动了,协议就是服务端和客户端双方必须遵守的,这样才能保证开发和调试的顺利!
定了接口协议之后,把整个项目的框架搭建起来,有了界面,我们应该把界面中经常出现的控件给抽取出来,弄成一个自定义的控件,一些比如字符串的处理、手机的信息、屏幕的宽度、把数据保存到本地类似这些也要抽出来,比如拍照上传、弹出框的样式,诸如这些的也要抽出来,这会为以后的开发省下很多时间。还有数据交互的公共类、activity的基类!
定了接口协议之后,就开始开发界面了,这个时候就要完全按照开发计划表来了,即项目进度表,把功能点分一下,各自看着进度表来开发,这点我们这次是完全没做的,这个也是为什么到中间给客户看的时候我们这么被动,所以以后的开发过程中一定要把计划表贴出来,每个开发人员都要按照这个计划来开发,这样我们才能有主动权!首先把界面开发出来,到后续的数据交互那块就特别快了!
再一个就是测试,逻辑的测试、功能的测试、整体的测试,这个一定要多测几遍。至此整个app就开发完成了!这个只是个人开发过程中的一些想法,希望大神们多给意见!