平安金融科技移动技术周报(第三十二期)

2,116 阅读9分钟
原文链接: mp.weixin.qq.com

平安金融科技移动技术周报(第三十二期)

@author ASCE1885的 Github 简书 微博 CSDN 知乎

本期导读:本期原创专题带来同态加密的简介及其在匿名投票系统中的应用,同时带来两篇工具介绍的小短文。Android 篇带来四个不同知识点的最新文章;iOS 篇带来五篇干货;React Native 篇主要带来一些基础知识的回顾文章;技术纵横和技术人生两篇带来不少实践的总结。

原创专题

1)同态加密在匿名投票系统上的运用 @黄伟淦(产品服务组)

早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以银行为应用背景提出了同态加密(Homomorphic Encryption)这个概念。在这个概念中,允许对密文进行特定的代数运算后依然能得到加密的结果,将该结果解密以后的结果与对明文进行同样运算的结果会保持一致。

2)移动开发工具巡礼 の 四象限时间管理利器 Focus Matrix @ASCE1885(应用架构组)

时间管理对于上班族来说是一个能够有效提高工作效率,增加生活幸福指数的理念,最简单的一种时间管理方法就是四象限法则。

3)移动开发工具巡礼 の 编码时间统计工具 WakaTime @ASCE1885(应用架构组)

想知道自己编码的时间都去哪儿了吗?想更高效的管理自己的编码活动吗?想在朋友圈装逼吗?快来给你电脑上的编辑器们都装上 WakaTime 吧!

Android开发

1)我不使用 Android Data Binding 的四个理由 @马飞

Data Binding 在最简单的场景下是比较有用的。但它并没有什么创新,所以在复杂度增加的情况下还是会像其他平台上的解决方案一样用起来非常痛苦(例如:XAML)。当这个库扩展到高级的情况下,将会迫使你把绑定的逻辑写到代码中,那里才是它真正该在的地方。

2)ZeusPlugin:掌阅Android App插件补丁实践 @adison

插件化和补丁在目前看来是老生常谈的东西了,市面上已经有一堆实现方案,如DroidPlugin、Small、Android-Plugin-Framework。掌阅研究插件化是从2014年中开始,研究补丁是从2016年初开始,相对来说,算是比较晚。直至目前,插件化方案已经达到相对成熟的阶段,而补丁方案也已经上线。

3)Android Log打印的正确姿势 @hujiandong

大家对输出Log肯定不陌生吧, 任何语言任何程序都少不了Log读出, 程序交付前我们可以用它来调试code, 交付后我们可以用它来排除问题。记得当时用C写程序时,我们经常唱“print 大法好哎!print 大法好哎!print 大法好哎!”

4)Android6.0权限适配,比你想的还要简单(实践篇) @xdeveloper

自从升级到Android M以来,最大的改变就是增加了运行时权限RuntimePermission,6.0以上的系统如果没有做适配,运行了targetSDK=23的App时就会报权限错误;当然如果你还没准备好适配权限,把targetSDK设置成小于23就ok了,不过适配是迟早的。

iOS开发

1)客户端动态化系列之——URLRoute @kuailejim

对于客户端来说,发版本身就属于一种很高成本的行为。然而一个初创的app,会有各式各样的问题,而在初期也不会像大型app一般有一套成熟的处理异常机制。而这往往会造成许多问题,那么问题来了,如何在有限的开发资源下,做到客户端的动态化。并且实现降级、ABTest等等一系列的行为呢?

2)iOS 开发中你是否遇到这些经验问题(二) @判若两人

小伙伴们在开发中难免会遇到问题, 你是如何解决问题的?不妨也分享给大家!如果此文章其中的任何一条问题对大家有帮助,那么它的存在是有意义的! 反正不管怎样遇到问题就要去解决问题, 在解决问题的同时也是提高开发经验的渠道!

3)微信iOS SQLite源码优化实践 @张三华

随着微信iOS客户端业务的增长,在数据库上遇到的性能瓶颈也逐渐凸显。在微信的卡顿监控系统上,数据库相关的卡顿不断上升。而在用户侧也逐渐能感知到这种卡顿,尤其是有大量群聊、联系人和消息收发的重度用户。我们在对SQLite进行优化的过程中发现,靠单纯地修改SQLite的参数配置,已经不能彻底解决问题。因此从6.3.16版本开始,我们合入了SQLite的源码,并开始进行源码层的优化。

4)深入浅出iOS事件机制 @ZhoonChen

iOS的事件有好几种:Touch Events(触摸事件)、Motion Events(运动事件,比如重力感应和摇一摇等)、Remote Events(远程事件,比如用耳机上得按键来控制手机),其中最常用的应该就是Touch Events了,基本存在于每个app的每个地方,今天我们主要就讲讲它,至于其他两个事件有兴趣的可以自行查阅资料。

5)ReactiveCocoa 中潜在的内存泄漏及解决方案 @高君

ReactiveCocoa是GitHub开源的一个函数响应式编程框架,目前在美团App中大量使用。用过它的人都知道很好用,也确实为我们的生活带来了很多便利,特别是跟MVVM模式结合使用,更是如鱼得水。不过刚开始使用的时候,可能容易疏忽掉一些隐藏的细节,从而导致内存泄漏等问题。本文就带大家深入了解下ReactiveCocoa中隐藏的一些细节,帮助大家以更加正确的姿势使用ReactiveCocoa。

React Native

1)选择 React 是商业问题而不是技术问题 @yanni4night

React 在开发者中很流行,有很多文献都在强调其优点。然而,迁移(或者选择)到一个新的框架最终要说服每个人——包括非开发者。很少有项目经理会仅仅因为是新的东西就同意重写整个项目,更糟糕的是,许多组织倍受纷乱繁杂的 JavaScript 工具的煎熬,在进步的同时也会有部分退步。本文不会讨论关于 React 的新的东西,而是教你尝试在规划期间如何说服所有持异议的人。

2)React高级性能优化 @hepeguo

当大家考虑在项目中使用 React 的时候,第一个问题往往是他们的应用的速度和响应是否能和非 React 版一样,每当状态改变的时候就重新渲染组件的整个子树,让大家怀疑这会不会对性能造成负面影响。React 用了一些黑科技来减少 UI 更新需要的花费较大的 DOM 操作。

3)五个你必须知道的javascript和web debug技术 @三水清

在前端开发中,调试技术是必不可少的技能,本文将介绍五种前端开发必备的调试技术:

  • Weinre移动调试
  • DOM 断点
  • debugger断点
  • native方法hook
  • 远程映射本地调试

4)从零开始的Android新项目10 - React Native & Redux @MarkZhai

本篇来讲讲 React Native 和 Redux,和其他一上来就啪啪啪丢上来一堆翻译的东西不同,本文会从简单的例子入手,让大家能快速地明白 React Native 是什么,Redux 和常见的 MVC、MVP 等有什么区别,怎么去组织一个 Redux 架构的 React Native 项目。

技术纵横

1)JAVA代码覆盖率工具JaCoCo-原理篇 @刘洋

作为一个测试人员,保证产品的软件质量是其工作首要目标,为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中一环比较重要的环节。我们通常会将测试覆盖率分为两个部分,即“需求覆盖率”和“代码覆盖率”。

2)研发体系这点事 @rowkey

几年前在读研究生的时候,自己负责着实验室的项目,就一直在思索如何建立一套简单又高效的研发管理体系,能够在保证项目高质量顺利进行的同时还能够提升团队成员的技术level。后来在自己在校的几次小的创业中,也做过一些尝试。直到毕业后进入前东家,在几个项目的参与过程中,算是见到了大公司的研发管理是如何进行的。直至加入目前的公司,将研发管理系统梳理一遍,且学且抄且实践,对这一套东西算是有了一定的实践感悟。

技术人生

1)我无法写出易读的代码 @技匠

经常能听到一些开发人员抱怨其他人写的代码难以理解,这时,我常常会想,如果不告诉那些开发人员,而直接让他们看我写的代码,他们也一定会有同样的感觉吧,“这个人的代码写得真烂”。似乎无论你的技术水平多么高超,都很难写出易读的代码来。

2)暗时间:学会正确思考 @Piasy

《暗时间》让我印象最深刻的,就是学会正确思考和解决问题的思路这两部分内容。

3)培训有毛用!大会有毛用! @阿朱

看书,写博客,多参与开源项目,多敲代码,你可以快速成长。

4)说说 Code Review @朱赟

总的说来,硅谷稍具规模的公司 code review 的流程都是比较规范的。模式也差不多。一来所有的 PR 都必须有至少一个人 stamp,才能 merge。如果改的东西涉及到多个项目,则需要每个项目都有人 stamp 才行。还有一些特别关键的代码,比如支付相关的,通常也会需要支付组的人 stamp 才行。

5)CTO教你如何脱颖而出成为公司里的leader? @贺志明

互联网创业公司刚开始组建起来研发团队,同事之间互不熟悉,一般都会采用扁平化管理方式。随着时间的推移,有一些人会脱颖而出,被委以重任,后面会慢慢成为团队的核心leaders。

欢迎关注我们团队的技术公众号