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

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

@author ASCE1885的 Github 微博 CSDN 知乎

139-150114140923.jpg-1603.1kB

本期导读:本期原创专题三篇各个方向的文章,Android 篇可重点了解 Android N 的适配要点,iOS 篇可关注下面向切面编程的 iOS 中的应用;React Native 篇带来三篇源码解读文章,对于不仅要了解怎么用,还想了解其实现原理的同学不容错过;技术纵横篇是本期内容最丰富的篇章,可重点关注 Code Review 相关文章。

原创专题

1)JVM 学习笔记-方法的执行过程 @李闯(产品服务组)

Java 方法是在方法栈中执行的, JVM会为每个线程分配一个独立的空间, 叫栈帧; 本文我们分四个步骤阐述方法的执行过程:调用、分派、入栈、执行。

2)H5 真机调试神器—HBuilder @曾文富(运营服务组)

本文无法解决h5调用hyperion接口的调试问题,主要讨论在不方便调试的android低端机上的调试方法。

3)使用实时编程语言 Extempore 演奏音乐 @潘伟洲(应用架构组)

Extempore 是一套实时编程语言和运行环境,它提供了一个人机混合编程 (Cyberphysical Programming) 环境,以支持对多媒体和实时系统的实时编程(Live Coding)。所谓人机混合编程,就是允许编程者可以在任意时刻自由地修改程序并即时影响系统的运作,达到“即写即执行”。

Android开发

1)为什么Android开发者应该使用FlatBuffers替代JSON? @Amit Shekhar

你可能会问,既然我们已经有很标准的JSON以及转换库比如GSON和Jackson,为什么还要使用新的工具呢?不妨先试一下FlatBuffers,然后你就会发现它比JSON快得多。FlatBuffers是一个高效的跨平台序列化类库,可以在C++、C#、C、Go、Java、JavaScript、PHP和Python中使用。是Google开发的,是为了应用在游戏开发,以及其他注重性能的应用上。

2)鹅厂专家详解Android N适配要点 @腾讯优测

Google即将发布的Android7.0的预览版Android_N为我们增加了许多新的特性,其中包括多窗口的支持、通知栏支持直接回复、网络数据节省开关、以及新的DOZE模式等;下面我们就来谈一谈关于这些新功能的适配问题和需要注意的地方。

3)千万级用户的 Android 客户端是如何养成的 @阿刘

Android 客户端的架构不论如何演变,架构设计的出发点总是离不开两点,一是提高开发效率,二是降低维护成本。本文是 in 的一个架构演进过程。

4)那些值得你试试的Android竞品分析工具 @D_clock爱吃葱花

本文整理了一些自己在开发过程中经常会用到的竞品分析工具,这些工具可以帮助分析竞品。让我们得以了解竞品相应的一些技术信息,例如:代码质量、某种业务的实现方式、用了什么第三方库等。除此之外,也有一些高端玩家会玩起 HOOK ,更有甚者是通过修改代码然后进行二次打包。当然这些损害开发者利益的事情,是不值得提倡的。但如果只是出于学习的目的,我是十分建议多折腾的。

iOS开发

1)面向切面编程之 Aspects 源码解析及应用 @zach

最近在做项目的打点统计的时候,发现业务逻辑和打点逻辑经常耦合在一起,这样一方面影响了正常的业务逻辑,同时也很容易搞乱打点逻辑,而且要查看打点情况的时候也很分散,因此想着如何将两者解耦,并将打点逻辑集中起来。其实在 web 编程时候,这种场景很早就有了很成熟的方案,也就是所谓的 aop 编程(面向切面编程),其原理也就是在不更改正常的业务处理流程的前提下,通过生成一个动态代理类,从而实现对目标对象嵌入附加的操作。

2)如何动态调用 C 函数 @bang

JSPatch 支持了动态调用 C 函数,无需在编译前桥接每个要调用的 C 函数,只需要在 JS 里调用前声明下这个函数,就可以直接调用:

require('JPEngine').addExtensions(['JPCFunction'])
defineCFunction("malloc", "void *, size_t")
malloc(10)

本文一步步来看看怎样可以做到动态调用 C 函数。

React Native

1)React Native for Android JSBridge 实现原理 @Desmond Yao

React Native for Android(RN4A) 的核心流程在 QZone的框架启动核心路径剖析一文中讲述得很详细,本文不再赘述,主要解析RN4A里面的Native&JS通信机制。

2)ReactNative iOS源码解析(一) @awhisper

通过本文你可以了解 ReactNative 是如何初始化一整套JS/OC通信机制,是如何相互通信的。通篇在讲JS/OC的通信的源代码流程,解释了为什么JS可以调用OC,为什么OC可以调用JS,这相互之间的通信,是如何通过代码进行控制与管理的。

3)ReacNative iOS源码解析(二) @awhisper

本文主要介绍上层的业务module是如何一步步用js搭建出一款app的。

技术纵横

1)Gerrit代码Review入门实战 @mobilehub

代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查软件Gerrit。

2)适合码农工作时玩的游戏:Scrum @唐巧_boy

什么是游戏规则?游戏规则是玩游戏的人为了更好地娱乐而制定的规则。所以 Scrum 的规则是为了让大家更开心,更有效地工作,而不是约束大家。事实上由于 Scrum 只是一个框架,所以在实践 Scrum 时,更多的规则需要团队成员共同制定,这更加体现了游戏规则的思想——大家自己制定的规则,必定是得到大家一致同意的、能让大家舒服工作的规则。

3)Code Review 程序员的寄望与哀伤 @mindwind

Code Review 是很多软件工程理论和方法学中的重要一环,而且程序员们大多都感性的认识到 Code Review 对于提升代码质量和减少 bug 有帮助,但在我过去工作的这些年里,经历了几家公司,数个不同的团队,却几乎没有把 Code Review 作为必要的一环去执行的团队。

4)2016年,我们为什么要学习C++? @Krzysztof Szatan

学习C++的一大好处在于,它可以帮助我们理解生命周期(Lifetime)和所有权(Ownership)的概念,以及类型的抽象,还可了解到怎样利用类型保持API的使用方式不变。除此之外,为何各种高级语言层出的今天,学习C++仍颇有价值?本文将为你道来。

5)整个硅谷都在谈的 Growth 是什么? @邵震

我以前在谷歌工作,大概2013年的时候到 Square 公司,后来一直做 Growth 的工作。在一个技术论坛上,可能我讲的这一部分内容是最不技术的。提起 Growth,大家认为很神奇。以前范冰老师写过一本书,叫《增长黑客》,这个书名非常迷惑人:黑客像是超人一样的存在,一个人坐在黑漆漆的屋子里面。实际上 Growth 很现实,整个硅谷都在谈论它。不但在谈论,而且他们认真在做。

6)技术团队如何发现和培养Tech lead? @李国鹏

对技术团队来说,怎么强调tech lead的重要性都不算过分。好的tech lead能极大程度提升团队的凝聚力和执行力;严重不合格的tech lead会导致团队迅速崩溃,但好在暴露快、时间短、危害小。接近合格水平的tech lead则既不容易替换,又让产品的进度和质量缓慢、持续下降,处理不好的话会积重难返,最终变成灭顶之灾(接近合格水平的技术经理也一样)。

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

平安金融科技移动技术周报(第二十六期)_第1张图片

你可能感兴趣的:(平安金融科技移动技术周报(第二十六期))