中关村|如何看待 Android 面试却是 Java 面试官?( 二 )


至于HTTP协议 , GET、POST等一些细节没有很好的回答 , 了解HTTPS的人也很少 。 然而 , 这些应该是Java面试中真正通用的问题 。 Android开发不仅仅是绑定一个视图 , 发送一个网络请求 , 绑定然后更新界面 。
Android的很多开发者 , 在能做出一个阅读或者商城应用的时候 , 只是停留在一种自我满足的状态 。 如果理解了这四个组成部分 , butterknife和改型可以有一个新的动作 。
但在我看来 , 前端开发比后端有很多困难 , 比如:
1 。 有许多异步操作和复杂的状态管理 。 如果你想在回调地狱里完整的管理视图和模型的状态 , 同时把类职责分配好 , 活动就不会展开 。 光是做好这一点 , 我觉得就已经很有价值了 。
很多MVP的人都效仿 , 至于为什么这么做 , 都是得过且过 。 况且设计模式不是万能的 , 不是说用了就一定好 , 而是要看适用的业务场景 。
2.你需要处理状态恢复 。 当一个复杂的业务流程增长时 , 需要考虑如何恢复被中断的流程 , 是应该交给后端维护 , 还是前端记录信息并作为事务提交 。
这是一门学问 。 我朋友的app被强制回退后无法恢复 , 或者上一单的信息留给下一单 。
3.更新应用程序时的版本管理和本地数据迁移涵盖了安装 。 以QQ音乐为例 , 如此庞大的曲库和歌单 , 在本地肯定会使用类似sqlite的轻量级数据库 。 当你在cover安装时 , 你可能需要更新表结构 。
如何管理跨版本db结构升级和异常处理是一个大学问 。 即使不使用sqlite级别 , 如何管理SharedPreference中的缓存数据也是需要考虑的问题 。
4.多版本系统的适配 。 不用说 , 大家都知道 。 这些问题即使在iOS开发中也会遇到 。
所以我觉得在面试Android开发岗位的时候考察JavaSE的基础知识并不过分 。 如果他问你EE , 你真的可以对他翻白眼 。
至于拿kt当挡箭牌 , Java基础不扎实 , kt只会出更多问题 , JVM是绕不过去的坎 。 知道kt里的同步标注是什么吗?
你知道inline和crossinline的区别吗?我用kt半年了 , 感觉都神经兮兮的 。 所有不确定效果需要稳定的地方都是旧的实用Java实现 。
但是kt协作真的很甜 , 在安卓上消除回调太舒服了 。 要的 。 一直都觉得 , 作为开发人员要一直保持着危机感 , 时刻眼光放远些 , 多学些东西 , 30岁才不会失业 , 俗话说技多不压身不是么 。
【中关村|如何看待 Android 面试却是 Java 面试官?】