每周引言

每周一读

由 LeanCloud 内部所有工程师和设计师以周为单位进行内容分享的帖子,将有 LeanCloud 每位工程师和设计师想加入自己读到的「有价值、有趣味、有分享意义」的文章以及推荐理由。

分享格式

我推荐的文章

简介

推荐理由

《JavaScript 中的原生 Promise》4

简介
什么是 Promise,Promise 有什么用,解决怎样的问题,以及原生浏览器的 Promise API。

推荐理由
对 Promise 能够有一个深入的了解,并且文章中有很多实例,也能够更好的了解浏览器的 Promise 设计思路,所以强烈推荐。

我推荐的文章 (其实是 Github 项目)

Bolts -- Make developing mobile apps easier5

简介

Parse 加入 Facebook 之后,两个团队抽取了一些公共的底层库,并放到了 Github 开源出来。这就是 Bolts,旨在让移动应用开发更加简单。参照 Java Script 的 Promise 模型,设计了 Task 组件,来处理异步操作。目前支持的版本有 Android 、iOS 和 Java。

推荐理由

在上一期「技海拾贝」分享中,@lzwjava 分享了 Android 中异步处理机制的解析。确实在 Android 开发中异步处理是很常见的需求,Android 也提供了 AsyncTask、HandlerThread 等工具方便开发者进行异步操作。但处理复杂的异步操作时(譬如多个异步操作的组合等),并没有很简单的办法。要么嵌套回调,写出层级很丑陋的代码,要么需要通过 Handler 和 message 将事件间的逻辑在代码中维护。
Bolts 通过 Promise 的模型,来尝试解决这个问题,实现也很简单。所以推荐大家看看。

搭配楼上推荐的 Promise 文章,一并引用,效果更佳!

Rust Collections Case Study: BTreeMap
http://cglab.ca/~abeinges/blah/rust-btree-case/3

介绍了 Rust 标准库中 BTreeMap 的原理和实现。

推荐理由:

介绍了二叉搜索树的基本知识,讨论了 B-Tree 的概念和参数 B 的含义和影响。最后介绍了以上内容在目前版本 Rust 语言中的实现。这个系列还有对 HashMap 结构的讨论。

我推荐的文章: 《Mac上小众却常用的app推荐5
简介:
作者介绍了一些 Mac 上相对小众(其实不少应用,比如网易音乐、Instagram 客户端之类的也不算小众了),并且附带了功能介绍以及应用的优劣点评,甚至还有相对详细的设置说明及截图赠送。很用心,也很不错的 Mac App 推荐帖子,当然,我要声明,不少应用是要收费,各位自拿自取。

推荐理由:永远不缺少工具控。

推荐文章:

Picasso by Square1

简介:

Picasso 是 Android 平台上非常强大的图片下载、缓存库。图片是大多数 Android 应用中必不可少的元素, Picasso 提供了非常简单的使用方式:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

Picasso 自动处理了 Android 平台上很多图片下载方面的陷阱:

  • ImageView 的资源复用和取消下载;
  • 使用最少的内存完成大量图片处理操作;
  • 自动的内存、磁盘缓存;

推荐理由:

Android 平台上好的图片处理库不多,github 上 4700+ star,1377+ fork,好的代码永远值得学习。

PHP 中使用协程处理多任务

https://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html2

简介

PHP 5.5 中引入了 generator 这一语言特性,相当于也支持了协程的功能,以此我们可以实现一个任务调度器来管理多个协同任务,在 PHP 中实现高性能的并发 io 处理。

推荐理由

在当下高并发是一个热门话题,目前对此最佳的解决方案是异步 io + 协程。Google 的 go 语言已经将这两项特性在语言层面做了支持,其他很多语言也给出了自己的解决方案。PHP 在 5.5 版本中也可以支持这一特性,如今的 PHP 早已不是当年的那个 “模板引擎”语言。

推荐文章


http://yanxyz.github.io/emmet-docs/

简介


Emmet (即之前著名的 Zen Coding) 是一个网页开发者工具,可以大大地提高你的 HTML & CSS 开发效率。

推荐理由

对于提高开发效率非常有用。比如代码行数较多是,快速选出成对的 TAG,标签提示快速书写,看上去有很多快捷方式会比较困惑,具体使用中掌握常用的几个就够了,不要有压力。
很多编辑器都有插件支持,subliime,eclipse,textmate 等,还有在线编辑器的应用,如 JSFiddle

使用 VIPER 构建 iOS 应用2

简介:
VIPER 是一个创建 iOS 应用简明构架的程序。VIPER 可以是视图 (View),交互器 (Interactor),展示器 (Presenter),实体 (Entity) 以及路由 (Routing) 的首字母缩写。简明架构将一个应用程序的逻辑结构划分为不同的责任层。这使得它更容易隔离依赖项 (如数据库),也更容易测试各层间的边界处的交互。

推荐理由:
测试永远不是构建 iOS 应用的主要部分。当我们 (Mutual Mobile) 着手改善我们的测试实践时,我们发现给 iOS 应用写测试代码非常困难。因此如果想要设法改变测试的现状,我们首先需要一个更好的方式来架构应用,我们称之为 VIPER。

本主题已被解除置顶,它将不再显示在它所属分类的顶部。