zoukankan      html  css  js  c++  java
  • 又是一年末-总结自己APP的缺点

      再过几天,16年就过完了,想想自己又老了一岁,不禁感慨-时间过的真™快。这一年,有欢乐,有纠结,有痛苦,有辛酸。今年经历过的事情,有点多,有点乱。

      以往在谈论自己的缺点不足时,总是比较尴尬,或者不敢去直面,比如说面试的时候,总是一大堆的优点,当面试官问自己的不足时,捡一些不足道也的毛病说说。现在想,以后可不能再这么浑浑噩噩的过下去了。有不足,自己要发现,也要虚心接受别人的意见,说到这里,又想起了测试和技术说bug时,技术总是有大套大套的说辞,迫不得已review代码发现问题,也是风轻云淡改改一笔带过。看着从2013到2014再到2017,身子一年不如一年了,唯一没怎么改变的,就是卡里的余额了吧。

      这个APP做了一年多,大毛病没有,小毛病很多,自己知道的和不知道的,有些懒得改的,我希望能在明年一点点完善,做的更好。

      

      1、最大的问题,也是最突出的问题——应用后台运行。

      我这个应用,需要计算里程距离,所以只要用户不kill掉应用,它就要进行定位和位置上传。早在14年的时候,我就研究过后台实现,在这里我依旧用的是 “后台推送唤醒”。当然,我也一直在寻求更好更高效的解决方式,也实验过很多包括audio,VOIP之类的,要么就是审核不过,要么就是对系统有影响或者效果不尽人意。虽然现在的实现机制勉强可以完成需求,但是我会继续寻求更好的方式解决这个问题。

      2、web过多造成内存负荷较大。

      应用内有些资料填写页,由于要适应市场变化,资料随时会更改,所以这些填写提交页面大部分嵌入的H5来实现,有些包括图片的上传等,也用到了JS交互。在应用内加载了web后,释放了web对象,清空了cache缓存,总之能清空的全都清了个遍,但是占用的内存还是没有完全释放,查阅过很多文档和资料,建议弃用UIWeb,改用iOS8推出的轻量级WKWeb,好像内存问题会有很大的改善。嗯,这个问题是因为,一是比较懒,二是页面多,WK的实现方式包括委托都不一样,改起来有一定的工作量和风险。不过这个工作已经着手准备开始计划做,相信明年一定能完成。

      3、后台返回数据处理混乱—大部分闪退都是因为这个。

         嗯,我承认,这个确实是懒了。请求结果数据以JSON格式返回,如果返回fail,后台有好几种错误提示规则,要么是错误代码,要么是错误详情,要么是Java异常,不要抱怨后台人员,毕竟不是一个人在写,这些问题都可以通过大量判断来处理,但是,value为NULL的数据,并没有全部处理掉,解析JSON往model里放的时候,自己感觉会出现问题的字段,处理了这个NULL,以至于很多地方后台数据突然为NULL时,直接用回导致闪退。虽然意识到这个问题后,写了专门处理返回数据的过滤器,但是之前已有的代码并没有改,自己一直在对自己说,嗯,只是很小一部分,就是一个字,懒。从现在开始,就把数据过滤添加到每个model里。

      4、虽然没有任何人或用户提过,但是我知道,应用----耗电快。

      每五秒两次网络请求,固定的,而且还在定位,只要不kill掉应用或者不关掉后台刷新,那么在开始累计距离时,就会触发频繁的定位以及网络请求,当然,同时存在的还有屏幕常亮。不用担心,数据流量并不会太大,开一天也不过最多十几兆而已,但是电量就耗不起了,万幸的是,累计距离的用户大部分都是在车里,有用车载充电,所以耗电快这个问题一直没有暴露出来。也有人认为这并不能算个问题,理应正常才对啊,但是,我并没有去做任何优化耗电的算法和模块,不知道能不能在保证功能完整的前提下减少硬件的耗电。正因为没有去做,所以不能说做不到。接下来会尝试使用一些优化方法,为用户提供更好的体验。大功能要保证,小细节也要面面俱到。

      5、新用户不会用,老用户用不惯----界面设计缺陷。

      我从来没想到,我的应用需要安排客服去教用户如何使用。说起来,好多用户致电过来,说什么什么问题,本质就是功能找不到,信息项不会填。最开始的应用1.0,还挺容易上手使用的,基本上一看就会那种,第一界面简洁易懂,第二功能也少。经过了一年多的增增改改,应用功能丰富了很多,也好看精致了很多,但是用户反而不会用了。这个值得我们反思,注册流程增加了,我们就要加引导,功能增加了,我们就要从产品设计从UI设计上,做好入口的分类,而不是让用户打客服来问到底怎么用。这些我们都有待改进。是啊,由于一直执着于功能的完善,UI的精致,忽略了很多人性化的设计和提醒。当用户注册完成了一步,要进行下一步时,最好给全屏的引导或者高亮的提醒,就算只有单纯的文字提示也可以,不能像现在这样,用户完全不知道还有下一步,或者下一步从哪里进入。产品和UI没有考虑到的地方,作为优秀的技术人员,必须填补上这些空白,尽可能让小白用户都能很快上手使用。举个例子,在应用在后台累计距离时,系统内存不足,把我的应用释放掉了,但是用户并不知情,用户下次进入时,发现并没有这段距离,就懵了,我想,我们的应用软件是让每个用户都能达到自己想要的目的,而不是每天在吐槽这个找不到,那个不知道怎么回事。

      6、无网络或弱网络支持不好。

      应用做了数据缓存,可以做到无网络进入应用查看一些页面。但是并没有做实时数据的缓存,在网络不好的情况下,容易发生数据丢失,一旦给服务器的数据发送失败,没有缓存发出去的数据,也没有重发机制,导致用户在特殊环境下,统计不到具体的详细数据。我们在无网络时,会提示用户当前的网络状态,但是并没有根据无网络这个特殊情况做出正确的处理,完全把网络这个特殊情况抛给用户,我们完全可以有技术来解决这个问题,不管是把点数据写入本地库或者和服务器建立确认收发机制,都可以。

      

      还有好多好多问题,就不一一列举了,这些我已知的问题,并没有及时的解决,应该算得上一种过失吧。当我们每天宣传自己产品多么多么好,用户有多少多少的时候,是理应高兴的,对于技术来说,用户使用自己的产品,就是对自己的认可。但是高兴也别被冲昏了头脑,要清醒的意识到这些不足,每个应用都不完美,但那是我们的目标。

      年底了,不管是忙还是闲,都该好好静下心思考思考,新的一年该做什么,有什么目标。同时呢,也回顾一下已经快过完的这一年,发生了什么,学会了什么。可以是工作可以是生活,也可以是其他其他,不管什么,我都相信大家的2016全部是五彩斑斓的,有兴奋失眠时,也会有难过失眠时,都是自己度过的美好的/快乐的/忧伤的/难过的时光,都不要忘记坚持会让自己变得更好。我呢,尽管经历了刻骨又铭心,经历了彩虹又风雨,不也在用力地不忘初心。

      希望大家都能实现自己的小目标,都能越过越好。不乱于心 不困于情、不畏将来 不念过往。

  • 相关阅读:
    一个简单XQuery查询的例子
    《Microsoft Sql server 2008 Internals》读书笔记第七章Special Storage(1)
    《Microsoft Sql server 2008 Internals》读书笔记第八章The Query Optimizer(4)
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(4)
    SQL Server中SMO备份数据库进度条不显示?
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(5)
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(3)
    《Microsoft Sql server 2008 Internal》读书笔记第八章The Query Optimizer(2)
    省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
    FireFox意外崩溃时的手工恢复命令
  • 原文地址:https://www.cnblogs.com/ChinaLoong/p/6207976.html
Copyright © 2011-2022 走看看