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

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

@author ASCE1885的 Github 微博 CSDN 知乎

平安金融科技移动技术周报(第三十一期)_第1张图片
1022263J9-0.jpg-197.9kB

本期导读:本期原创专题带来 FastJson 的原理解析,后端开发和 Android 开发的同学都应该了解一下;Android 篇干货较多,建议都好好学习一下;iOS 篇带来热更新,Block 和 iOS 10 UserNotifications 框架的解析;技术纵横和技术人士篇依旧带来一些基础和公共的知识点。

原创专题

1)FastJson性能优化知多少 @严月强(产品服务组)

FastJson是一个近几年非常热门的第三方java库,它以它强大的功能和出色的性能表现而广为人知。那么,究竟为何FastJson能做到如此fast呢?它有什么秘诀?或者说,它做了哪些优化工作使得性能提升如此之多?本文从作者的理解出发,结合代码详细分析FastJson的性能优化方法和优秀的编程实践。

Android开发

1)[Android技术专题] APK瘦身看这一篇文章就够了 @张明云

随着Android开发越来越成熟,关于Android方面的技术文章越来越多,作为开发者不缺资源,缺乏的是系统的知识和指导,对于学生和上班族来讲,更缺乏筛选信息的时间。从某个角度来讲,精心筛选整理网络上的优质文章并形成专题,如果需要学习某方面的知识只需要看这一篇文章就够,那意义会比写一篇纯技术文章会有价值得多。

2)小红书Android客户端演进之路 @isming

小红书Android客户端第一个版本于2014年8月8日发布,转眼到了2016年8月8日,小红书Android版本发版两周年。趁机回顾一下小红书的Android版本,两年中我们踩过很多坑,收获很多经验,分享出来与大家共勉。

3)Android安全开发之通用签名风险 @阿里聚安全

Android系统要求安装的应用必须用数字证书进行签名后才能安装,并且签名证书的私钥由应用开发者保存。签名证书的生成也由开发者自己生成。在应用安装时会校验包名(package name)和签名,如果系统中已经存在了一个相同的包名和签名的应用,将会用新安装的应用替换旧的;如果包名相同但是签名不同,则会安装失败。

4)拆轮子系列:拆 Okio @piasy

Retrofit,OkHttp,Okio 是 Square 团队开源的安卓平台网络层三板斧,它们逐层分工,非常优雅地解决我们对网络请求甚至更广泛的 I/O 操作的需求。其中最底层的 Okio 堪称小而美,功能也更基础,应用更广泛。这次我们就对它进行一个详细的分析。本文的分析基于 Okio 截至 2016.8.4 的最新源码,非常建议大家下载 Okio 源码之后,跟着本文,过一遍源码。

5)Android端外推送到底有多烦? @zhangtielei

说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到一种完美的解决方案,Android程序员通常需要同时集成多家推送平台(如果有自己的端内推送,还要考虑与端内推送的配合);其次是说Android推送的市场现状比较混乱,无论选择哪一家,都让人纠结万分,难免心情烦躁。无论是你花费了多少功夫,做了多少优化,仍然可能存在推送不到或推送延迟的情况。

6)Android 利用 APT 技术在编译期生成代码 @brucezz

APT(Annotation Processing Tool 的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。现在有很多主流库都用上了 APT,比如 Dagger2, ButterKnife, EventBus3 等。

iOS开发

1)iOS 动态更新方案对比:JSPatch vs React Native @bang

虽然 JSPatch 目前大部分只用于热修复,但因为 JSPatch 可以调用任意 OC 方法,实际上它也可以做热更新的工作,也就是动态为 APP 添加功能模块,并对这些功能模块进行实时更新,可以起到跟 React Native 一样的作用。我们从学习成本、接入成本、开发效率、热更新能力和性能体验这几个方面来对比一下使用 React Native 和 JSPatch 做热更新的差异。

2)iOS 中的 block 是如何持有对象的 @draveness

这篇文章并不会详细介绍 block 在内存中到底是以什么形式存在的,主要会介绍 block 是如何持有并且释放对象的。文章中的代码都出自 Facebook 开源的用于检测循环引用的框架 FBRetainCycleDetector,这是分析该框架文章中的最后一篇,也是笔者觉得最有意思的一部分。

3)活久见的重构 - iOS 10 UserNotifications 框架解析 @onevcat

iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。

技术纵横

1)k歌自助安全系统 @derrydeng

社交化的全民K歌app,在快速发展的同时,也面临着严重的安全威胁,包括骚扰、广告、刷粉、色情、政治等内容,对产品的健康运营造成了严重的威胁。虽然有自动审核和打击的策略,但是面对多样化的安全问题,以及快速出现的各种变种内容,还是处于被动,防不胜防。另一方面,效果最好的人工审核,受限于人力资源,无法全部处理每天的海量内容。

2)QQ空间面向移动时代Hybrid架构设计 @黄俊涛

社交网络日新月异,需要更快,更灵活的技术架构才能满足用户日益丰富的媒体需求,Hybrid App架构具备了快速发布的能力,同时也有更接近Native的流畅体验以及性能;本视频来自ArchSummit深圳2016腾讯社交平台高级工程师黄俊涛的分享演讲,主要介绍QQ空间Hybrid架构,包括如何提高H5页的加载速度以及稳定性,以及使用React Native如何提高体验,改善性能。

3)深入理解哈希表 @bestswifter

有两个字典,分别存有 100 条数据和 10000 条数据,如果用一个不存在的 key 去查找数据,在哪个字典中速度更快?有些计算机常识的读者都会立刻回答: “一样快,底层都用了哈希表,查找的时间复杂度为 O(1)”。然而实际情况真的是这样么?

技术人生

1)内部人建议炸掉华为研发金字塔,然后任正非给全公司发了封邮件 @泥瓦客

外人都说华为好,技术实力强大,但在华为这样的大公司作技术,也确实真不容易,公司大了,层级多了,效率低了,协作差了,那么怎么办?

2)如何打造公司级公共前端团队 @张耀春

作为公司级的公共前端团队,应该如何对团队进行定位,在实践过程中应注意哪些问题,如何打造这样的团队?本文对滴滴公共前端团队的实践进行了总结,希望能带给读者一些启发。

3)你和高级工程师的差距在哪里? @stormzhang

之前很多人问过我这么个问题,说怎样才能成为一名高级工程师?我觉得这是一个很好的话题,技术人的职业规划不管如何发展,总归是一个从初级到高级的过程,不要妄想从初级一步跨越到架构师、CTO 之类的职位,所以高级工程师这个过渡阶段显得就很重要了,那么今天就来给大家说说你们还差在哪里!

4)浅谈高风险多团队协同的项目管理方法 @敖骧

高风险多团队协同,一直是互联网项目管理的重要课题。本文从实践出发,对高风险多团队协同的项目管理进行梳理总结,归纳出核心议题与可执行的方法。希望对项目管理者有所启发和帮助。

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

平安金融科技移动技术周报(第三十一期)_第2张图片

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