三.产品设计无限拖延
一个产品开发新版本流程大概是:提出需求->根据需求UI做出效果图->然后产品和UI根据效果图做出小调整->定稿,UI切图->开发根据效果图开发
当然上面说的不是敏捷开发的步骤…
很多时候两个周的开发周期,前面几步就被用掉了一周,开发拿到效果图已经是第二周了…开发前期很多时候能做的事情很有限…有时候根据大概描述先做也很不清晰,做出来后面看到效果图,基本也要重新改动一遍,改动小的除外,所以有时候开发的时间非常紧迫。so 加班 加班 加班
四.产品设计不够整体化考虑
好多时候产品经理提出新的功能或者需求都会去参考其它的app,如果是一个经验不太够的产品,他每次设计出来的东西和整个产品都不一定能对应上,比如 :好几种颜色的标题栏,首页风格经常会变 一会九宫格布局 ,一会儿tab标签栏布局(一种是activity跳转,一种是fragment碎片),好几种风格的筛选数据的效果。
我们一般开发很多功能都有一个共用的概念,比如程序的标题栏等都是继承一个,如果效果不一样,我们就要单独处理,导致程序可维护性不高。
当然有很多时候这都是没办法的事情…大部分时候都是要按照需求做…
更有夸张的时候,我们做完马上要发布了,要求重新做一版…
五.产品开发时间卡的非常死
很多情况,我们开发的时候都会排一个时间表,大家严格按照时间表执行,但是这个时间表上面罗列出来的功能和我们真正的开发时间往往相差很多。一个支付功能问你做过没有,你说做过,那可能只给你1天时间,第二天产品经理就过来问 支付调通了没有…
让你负责整个项目,列出一大堆功能,问你20天能上线吗?你这就是赤裸裸的让我加班啊…
就算是开发时间够,开发过程中难免出现这样那样的问题。总要有一些处理其他问题的时间吧,万一开发环境突然搞乱了,或者电脑出了问题需要重装环境。又或者大家一起合作有同事把代码提交错了,覆盖了自己的代码。各种情况都有可能耽误开发时间。有的公司还各种开会,一个会一上午就没了…
有些负责人还要去面试,面试回来就被问进度怎么样了?要不就是带些新人,帮助他解决问题或者讲解业务 这都需要时间啊!
有排计划的时候把这些都考虑进去的吗?产品负责人只会说,这点功能怎么这么久还没跑通?
六.简单功能复杂化
举个例子 一个选择城市的功能,可能公司产品就支持3个城市,大家在做这个程序的时候,一般有点经验的都会考虑 这个城市以后增加了怎么办,肯定不可以在程序里面写死,这个必须动态控制,不能以后增加一个城市我们就提交一次app吧。 这么想讲道理没有问题,然后获取一个城市列表(3个固定城市)加一次网络请求服务器。然后产品经理过来发现,你这么做有问题啊,就这么三条数据每次进这个界面还有正在加载数据(一般网络请求如果网络慢的时候,都有加载中提示…),然后让你改,说体验不好…然后你就要想办法了,这个不能写死,还不能每次都加载,那么只能第一次加载完存本地了,下次判断本地有就不请求服务器了…好然后高兴的写去了,写完想想有漏洞,如果服务器这个时候有增删改就麻烦了,比如 多个城市,少个城市,改了其中一个城市的名字…这个本地就和服务器对应不上了,然后还要再添加对本地数据更新的逻辑…
后来,这个app再也没有支持过别的城市,白白加了这么多复杂的逻辑…
我总觉得功能尽量越简单去实现越好,不要为了一个简单的小功能去影响整个产品的体验…
我在第一家公司的时候,老板提出这样一个概念,就是做一款可以配置的app,就一个项目…听好是一个项目,不允许拷贝多个项目然后修改,因为不好维护…
老板大概意思就是 首页的图片文字,主界面的模块功能点等都是动态的 所有的能看到的界面都可以在后台服务器配置…
说白了就是:app上所有的地方都要从后台请求字段 ,然后根据定义好的字段的值 去控制app的显示…这样就会产生出来很多app… 餐饮,医疗,交通,购物…
老板的概念是:定制化全能app…
大家想一下这个难度有多大,然后缺点有多少.
这个产品的缺点:
1.app内逻辑以及请求太多,影响app的流畅度及体验
2.从产品角度考虑,配置出来的app缺乏个性化,功能界面效果很单一。
3.产品过于复杂,导致app本身过大。(基本所有第三方的sdk都会用到,jar包就几十个)
我理解的好的产品应该是: 设计简单、操作流畅、功能简单易用、稳定性高、用户体验好, 这些都很关键。
最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司21年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
展示一小部分。
[外链图片转存中…(img-XupQb8V0-1720122495971)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。