其实自己一直有那么一个目标,就是做优质应用,希望自己每拿出的作品都能代表当时能力的最高水平。以前做项目抱着糊弄的态度,完成功能就行,但是1-2年后在回头想想,正的想不起什么,app也拿不出手。这几天看了别人的项目代码,Oh ~~ No ~~:
随着的自己年龄的增长,自己能开发的年限有限,不想过几年回头看自己的App,结果来了句:『写的真渣』,一脸不削的表情。更希望听见:『啊呦,不错哦!』。
优质应用是什么?
好的idea,赏心悦目的UI,流畅的使用流程,良好的交互,完美的用户体验等等,这些都是公司层面,产品经理,UI,UE...他们考虑的事情,程序猿只能在自己力所能及的范围内,做好自己的事情。
我们能做好哪些事情呢?
1. 优雅的代码
首先咱们得清楚:是我们在写代码,不是代码在写我们。写了一大堆自己以后维护很难看懂的代码,不仅仅是坑自己,也是坑别人。其实这2年我一直在追求优雅的代码,越少的重复性代码,越少的多层嵌套代码,越少的回调函数。希望就好像打篮球一样,同样是投篮,你的动作就丑的要死,巨星的动作却很美观。
比如:某个人中心的界面做的动作是:请求服务器获取用户信息 和 展示这个用户信息,所以这个类的代码,我最希望看到的是 请求服务器 和 展示用户信息的代码,其他的什么控件初始化,网络判断,上下文的生命周期,都不是我们关心的代码,尽力减少。
比如:我有abcd 4个任务,其中b 和c是异步的。后一个需要前一个任务的返回值。常规的做法是b c是异步的,所以他需要通过回调函数来处理。 别人看你的代码就是 几个函数飞来飞去,有时候夸张一点,几个类飞来飞去,自己都绕晕了。当然优雅的做法,就是 a() ->b() ->c() ->d() 很直观,至于代码怎么实现,各位自己想想
当然还有其他很多的例子..等我后续慢慢补充。
2. 良好的程序结构
不管是MVC,MVP,MVVM框架,都不要死搬硬套,要能真正感受到他的好处。
还有我以后那别人的代码,发现很不稳定,动不动就crash。我看他的代码,满屏幕的if()判断,又是数据校验又是异常处理。我们要了解请求,哪些校验需要在那一层做,那一层该干什么事情,不该干什么事情。
例如安卓经常出现的空指针异常,怎么减少呢?有一句话说的好,你不传空就不会有空。有的说这不是废话。我想跟你说不是的,你没理解。 假如a,b,c,d四个界面都用到业务层的xxx()方法。 如果我不在xxx()了把空指针给规避掉,那么我a,b,c,d四个界面都有可能出现空指针。
还有就是编程思路,oop!我经常听见人说,面向对象就是用面向对象的语音。他们思维逻辑一点面向对象的概念都没有,不是靠嘴上说说。
还有变量生命周期的控制。你作为程序的缔造者,每个变量你都要想他什么时候产生,什么时候改消失。除了工具类和常量 我认为static尽量少用。 我曾经看过别人的代码,2个activity的通讯竟然就是静态变量,好吧。
3. 良好的交互体验
我这里说的交互,不是业务层级的,而且某些程序级别的。 我每次做app都对自己说那么一句话:就是如果你是用户,你拿到这个app是什么反应。如果我是看见就觉得垃圾,直接卸载。那这样的app是very bad!
例如,流畅的动画,你的动画生硬,别人却非常优美。
例如,用你的app,用户觉得自己像sb,界面有卡顿,有的时候还不知道在干嘛。用别人的app就很舒服,用户的每一步操作都能得到app的响应,像2个人对话一样。
美妙的交互当然还要很多,这2年比较的火的Material design,里面提供的一些控件都能提升用户的体验
吐槽
经常会听见有其他开发人员说:还是做移动端简单,我去学个1-2周就能做,轻松且收入还可以。其实我想说,我看别人做鸡蛋饼也很简单,但是我做的就是没别人的好吃。不接触就不要妄下结论。我以前还经常遇到ios开发说安卓简单,安卓开发说ios简单...每次我都呵呵一笑,我心里想问他们:你们会么?精通么?
今天就写到这,哈哈,吐槽贴,后面想到我在慢慢补充。。。
网友评论