@EricJing
2017-05-11T05:13:54.000000Z
字数 5975
阅读 638
你好,我叫景宏刚,2012年毕业于浙江财经大学,目前就职于杭州挖财互联网金融服务有限公司,在公共基础组负责Android研发。五年Android App开发经验,负责过挖财多款App产品,包括挖财记账理财、钱管家、挖财宝、社保掌上通。具有扎实App架构、性能调优、App优化经验。两年项目管理经验,包括进度管理、团队协作、规范流程、Code Review。一年团队管理经验,包括招聘面试、技术规划、团队规范、技能分享。
单向数据流,React 标榜自己是 MVC 里面 V 的部分,那么 Flux 就相当于添加 M 和 C 的部分。
Action -> Dispatcher -> Store -> View

整个流程如下:
所有的状态都由 Store 来维护,通过 Action 传递数据,构成了如上所述的单向数据流循环,所以应用中的各部分分工就相当明确,高度解耦了。
这种单向数据流使得整个系统都是透明可预测的。
优点:单向数据流,分工明确,高度解耦。
缺点:代码复杂化,迁移旧代码复杂。
优点:
缺点:
* 代码增加

优点:
耦合性低,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
重用性高,模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。
部署快,使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
可维护性高,分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
缺点:
增加系统结构和实现的复杂性,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

优点:
缺点:
优点:
* 解耦
* 可测试
缺点:
* 代码量增加
1帧16ms
* Systrace 与设备互动,查看渲染瓶颈具体问题
* Traceview 查看具体代码性能
每天固定时间打包,运行单元测试,邮件发出测试报告。
缺点:
1. 不支持新增字段和资源
缺点:
1. 需要重新启动App
2. 需要给应用开启新的进程才能进行合并,耗费内存,可能失败
后来的技术选型是AndFix,只是为了修改Bug,足以。
GreenDao
Dagger2
Picasso
ButterKnife
Volley
技术选型
项目期间每晚统计进度,发布邮件,尽快抛出风险,及时对项目功能和资源进行调整。
不只是QA、产品和设计,还包括Android、iOS和HTML
代码规范、提测流程(保证单元测试、自测后进行提测)、每日站立会(昨天的进展,今天的计划,是否遇到什么困难)、
MR,如果遇到有争议部分,进行Code Review。
每周技能分享
对各种架构的,编程模式的理解
MVP、MVC、MVVM、Flux、Clean Architecture优缺点。
函数式编程:它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。输入一定,保证输出一定。
面向对象编程:
面向方面(切面)编程:日志、监控、权限处理等
对开源库的理解,设计模式的理解
对技术架构的风险评估,技术选型的考虑方向
不盲目追风,用部分人力投入,快速产出,评估技术成熟度。业务不同的发展情况,也决定技术的选型不同,主要是找到合适的。
考虑团队人员配比。
用ReactNative还是Weex
非阿里团队 选择React Native,用的人多,RN迭代快,趋于稳定,问题方便处理,招人成本相对低。
偏管理的,会问很多工作方式,沟通技巧,平时行为处事方式,爱好什么的
工作方式:效率、可衡量目标、关注结果、执行力强
沟通方式:根据不同的人,有不同的方式,有些人会很内向,保持固定的沟通,及时发现问题,提供帮助。耐心的听完。
爱好:比较广泛,旅游、看书。
动态代理的几种方式
静态代理:代码在编译时生成代理类,编译时增强
动态代理:在运行时,利用反射动态创建,与静态带来相比,简化编程工作,提高软件系统的可拓展性,运行时增强
Spring IOC、DI、AOP原理和实现
Spring IOC:控件反转也就是由容器控制程序之间的关系,把控件权交给了外部容器,控制反转是一种思想
DI(依赖注入):依赖注入就是将实例变量传入到一个对象中去,依赖注入是一种设计模式
AOP原理:广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。
并发编程
深入分析了Classloader,双亲委派机制
HashMap的并发问题
了解LinkedHashMap的应用吗
搜索算法

// 递归版本int binary_search(const int arr[], int start, int end, int khey) {if (start > end)return -1;int mid = start + (end - start) / 2; //直接平均可能會溢位,所以用此算法if (arr[mid] > khey)return binary_search(arr, start, mid - 1, khey);if (arr[mid] < khey)return binary_search(arr, mid + 1, end, khey);return mid; //最後檢測相等是因為多數搜尋狀況不是大於要不就小於}
/** 冒泡排序* 比较相邻的元素。如果第一个比第二个大,就交换他们两个。* 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。* 针对所有的元素重复以上的步骤,除了最后一个。* 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。* @param numbers 需要排序的整型数组*/public static void bubbleSort(int[] numbers){int temp = 0;int size = numbers.length;for(int i = 0 ; i < size-1; i ++){for(int j = 0 ;j < size-1-i ; j++){if(numbers[j] > numbers[j+1]) //交换两数位置{temp = numbers[j];numbers[j] = numbers[j+1];numbers[j+1] = temp;}}}}
/*** 查找出中轴(默认是最低位low)的在numbers数组排序后所在位置** @param numbers 带查找数组* @param low 开始位置* @param high 结束位置* @return 中轴所在位置*/public static int getMiddle(int[] numbers, int low,int high){int temp = numbers[low]; //数组的第一个作为中轴while(low < high){while(low < high && numbers[high] > temp){high--;}numbers[low] = numbers[high];//比中轴小的记录移到低端while(low < high && numbers[low] < temp){low++;}numbers[high] = numbers[low] ; //比中轴大的记录移到高端}numbers[low] = temp ; //中轴记录到尾return low ; // 返回中轴的位置}
问题
1. 最近遇到最难的事情是什么,最后是怎么解决的
2. 你觉得你未来5年会在哪
带来团队实现可盈利的商业级产品
3. 为什么你想在这里工作
4. 如何解决和同事间的意见不同
别人的问题
1.团队情况
一共80人左右
业务线:9条 记账、挖财宝、信用卡管家、钱管家、基金、社区、股票、社保掌上通,公积金
公共线:4条,公共产品、公共基础、新业务、跨端
2.个人情况
你好,我叫景宏刚,12年毕业于浙江财经大学。有5年Android app开发经验,有一定的设计、架构,app优化经验,2年项目管理经验,包括进度管理,团队协调,流程规范,code review等,1年团队管理经验,包括招聘面试、技术分享等。14年加入挖财,经历了挖财从100多人到1000多人的快速发展。3年呆过4条业务线,均担任主力开发和pm角色,其中社保掌上通是从0开始,选型使用react native开发,在离开的时候,已经做到一周快速迭代。17年3月份开始轮岗到公共基础团队,负责监控,组件化开发,工具开发。
3.为什么要跳槽
挖财的技术岗位基本都做过一遍,在公共组看了下一年的计划,也基本知道该怎么做,挑战不大。希望可以有更多技术和带团队的挑战。个人也是希望在5年内可以带团队完成有盈利的商业级别产品,这样就需要我有技术,产品,运营,市场等相关的经验。
4.个人优势
非管理岗位
5年的Android App开发经验,在挖财业务线待过3年,作为主力负责过4款App,有一定的架构、设计、App优化等经验,也在基础团队轮岗,虽然时间不长,但也清楚组件化,工具开发,热修复,监控等实现和流程。并且也在业务中锻炼了自己项目管理的能力,很好的团队协作能力,对业务本身有很大的热诚。我相信我符合贵公司对该岗位的要求。
有管理岗位
5年的Android App开发经验,在挖财业务线待过3年,负责过4款App,也在基础团队轮岗,虽然时间不长,但也清楚组件化,工具开发,热修复,监控等实现和流程。并且也在业务中锻炼了自己项目管理的能力,很好的团队协作能力,对业务本身有很大的热诚,如果岗位需要,也能从业务,技术,开发流程,团队管理等各个方面带领一个团队。我相信我符合贵公司对该岗位的需要。
5.rn,native,h5如何选型
6. 贵公司产品的优缺点
针对领导人
1. 我们有利可图吗,盈利前景如何
2. 公司文化是什么
问题
1. 最近遇到最难的事情是什么,最后是怎么解决的
2. 你觉得你未来5年会在哪
带来团队实现可盈利的商业级产品
3. 为什么你想在这里工作