我是怎么在两个月之内做完一个项目的

这个标题是个假标题,因为我并没有在两个月之内通过一己之力完成了项目的全部内容

我在一个不算小的公司,但是在一个小的项目组里工作。这个项目不大,用户也不多,组织架构不完善。技术上确实有大牛,但是平均的能力还是偏低了。

我要做的简单的说是个 + 阅读类的安卓客户端。之前的项目基本基于webview,新版应用增加了阅读器应有的功能,然后重构之前的逻辑。

我是做技术的,与技术无关的话不多说。虽然我没有在‘规定’的时间内完成项目,但是项目做到现在总会有点心得与体会,今天得空,记录一下我这心酸的两个月。

新版的应用有几个功能,在线离线的写作、在线离线的阅读、夜间模式、动态换肤、推送、登录、分享、用户信息、用户成长等几个功能。之前的老项目是在两年前开始的。经过了大概5个人的手、项目中存在的问题太多,比如

1、泄露问题

  • 程序中的泄露问题主要源于项目中封装的volley网络请求造成的。所以基本上所有的页面都有泄露。
  • 其次,工具类持有静态context泄露。再此我没有瞧不起某些程序员的水平,但是,我一直有一个观点,就是,干什么像什么,马虎不得。

2、卡顿

  • 程序中的卡顿也是个大问题,对于滚了两年的应用,因为不是大项目,也没有用户,开发人员也不太注重这个问题。

举个,在首页会加载多个页面,并没有在程序启动加载时加载这些页面,导致每次点击页面,页面会创建,导致底部的按钮卡顿,页面卡顿。

………

等等这样的问题,大多说开发者会认为,但凡一个应用,不应该存在这样一个问题,况且还是滚了两年的应用。但是我确确实实在这样的项目组,维护着这样一个应用。

我决定重写这个项目,并且,在两个月之内,从零开始。

不知道公司出于什么考虑给从ios客户端转了两名同事,都没有android经验。项目伊始,我一个android工程师与两名ios,干起了这个项目,996,预计两个月完成、不算写作模块。


1、文档

在开发之前我规范了文档,之前的成员不注重文档的维护,整个项目没有文档,注释也是罕见。

2、代码规范与架构

新的改版,我使用了mvp的架构,并规范了代码格式

3、有必要的封装

我把每个模块都抽取了出来,做成一个个的小工具,并且每一个模块的api我都尽量保持相同,像登陆、注册、分享,推送。都有 初始化、传递数据、成功失败回调。 以便在没有熟悉android的时候也能上手开发

4、使用工具

工欲善其事必先利其器,要想在完成如此紧急的项目需求。我使用了很多工具。

  • 如大家所能遇见的,okhttp + retrofit +rxjava 网络层使用了就是这一套了。同时也带上了整个项目的错误处理

  • 使用kotlin
    ios工程师对swift一定是了解的,那我就用kotlin,这样从语法上转换就是是那么难了。并且减少了代码量,代码量少了也就缩短了时间,代码少了,从某种程度上也就减少了代码bug的出现的频率。

  • 使用databinding,为了加快开发,部分页面使用了databinding,当初也就应该考虑直接使用mvvm

  • 代码review
    及时项目紧急,也要review。

  • 二次开发
    对于阅读器,并且支持图片,视频,我们直接拿fbreader进行二次,虽然我不赞同,但是也没办法。

  • 分工
    两个ios, 一个干的年头长, 我让他做所有的与js交互相关的页面,另一个前一个月没有具体的任务先学习,之后先从一些小bug入手,了解android,了解项目。

5、deadline

时间到了,我们没有完成需求,写作模块没有做完。除了写作模块,剩下的也没有通过自测。

6、总结
大学毕业到现在整整两年,我的工作一直不是顺利。先后换过三次公司,前者是觉着自己应该去提高,后者抵不过互联网中的宿命。

在工作中,不顺利但是幸运。我庆幸我自己遇到过大牛学到了好多本领、庆幸自己遇到过老师指明了方向、遇到过好同事一起奋斗。在我看来,每一个工作都会有挫折,都会是挑战。

我自己有自己的打算,不可能为了完成需求,陷入苦海。人,总是自私的,凡是都会从自己的利益出发。期限,对我来说是一个对自己技术能力的规划、是对自己的一种考验。但是,付出与我收入不等的劳动,这是我所不能接受的。

道阻且长,行则将至,心向阳光。也许盛夏的蝉鸣是闹人的、可能也是醉人的。

你可能感兴趣的:(我是怎么在两个月之内做完一个项目的)