做人生大戏的主角——《红衫》读后


当你在压力日趋增大的现代社会中疲于奔命的时候,又或者当诸多意想不到的失意或失败已经成为过去,你又重新鼓足勇气面对新的生活踌躇满志的时候,下面这种想法是否曾经在你脑海中出现过,哪怕只有一瞬?那就是:现实世界只不过是某个至高无上的存在——我们也许可以称其为上帝——所导演的一出情节太过跌宕的戏剧,又或者是一部沉闷无聊的电视剧。不管它是什么,关键是并非所有情节都按你预想的发展。更糟糕的是,也许当我们走到人生的终点,在这场人生大戏中准备谢幕的那一天,我们才发现,自己只不过是这场拙劣戏剧的一个小小的龙套而已,从头至尾也没有得到导演(上帝)的多少眷顾。

阅读全文 »


小孩子的魔法


如果不是恰好你家里也有一个五岁的小女孩的话,你就不会理解《冰雪奇缘》在这个年龄的小孩子心中的分量,也不会理解艾莎公主在幼儿园小朋友当中深受喜爱的程度。

在送女儿去幼儿园的路上,我们又一次聊起了艾莎。

“你喜欢艾莎还是安娜呢?”我问她。

“我喜欢艾莎。”女儿毫不犹豫地说。

“为什么呢?”

“因为艾莎会魔法。”

阅读全文 »


Android和iOS开发中的异步处理(三)——多个异步任务协作


本文是系列文章《Android和iOS开发中的异步处理》的第三篇。在本篇文章中,我们主要讨论在执行多个异步任务的时候可能碰到的相关问题。

通常我们都需要执行多个异步任务,使它们相互协作来完成需求。本文结合典型的应用场景,讲解异步任务的三种协作关系:

  • 先后接续执行
  • 并发执行,结果合并
  • 并发执行,一方优先

阅读全文 »


Android和iOS开发中的异步处理(二)——异步任务的回调


本文是系列文章《Android和iOS开发中的异步处理》的第二篇。在本篇文章中,我们主要讨论跟异步任务的回调有关的诸多问题。

在iOS中,回调通常表现为delegate的形式;而在Android中,回调通常以listener的形式存在。但不管表现形式如何,回调都是接口设计不可分割的一部分。回调接口设计的好坏,直接影响整个接口设计的成功与否。

阅读全文 »


用一张图解释RxJava中的线程控制


上周五和团队一起讨论了RxJava的用法和实现机制。在讨论中,@坚坚老师 问了一个有趣的问题:如果调用链中包含多个subscribeOn和observeOn,会是什么情况?

阅读全文 »


苹果IAP开发中的那些坑和掉单问题


相信很多iOS App的开发者,特别是手游开发者,都接触过苹果支付IAP(In-App Purchase)。相信使用了IAP的App,都经历过“掉单”问题。

什么是“掉单”呢?简言之就是用户付款买金币,钱扣了,金币却没到账。

掉单一旦发生,用户通常会很愤怒地来找客服。然后客服只能找开发人员把金币给用户手动加上。

阅读全文 »


Android和iOS开发中的异步处理(一)——开篇


本文是我打算完成的一个系列《Android和iOS开发中的异步处理》的开篇。

从2012年开始开发微爱App的第一个iOS版本计算,我和整个团队接触iOS和Android开发已经有4年时间了。现在回过头来总结,iOS和Android开发与其它领域的开发相比,有什么独特的特征呢?一个合格的iOS或Android开发人员,应该具备哪些技能呢?

阅读全文 »


博客搬家啦,庆祝!


经过了多天挤牙膏似的努力,终于把博客搬到 Github Pages 上来了,并使用了 Jekyll 来生成博客页面。

原来陈旧的新浪博客:http://blog.sina.com.cn/zhtielei,由于个人时间的关系,平常很少更新。之前旧的一些内容,以后有机会再慢慢搬过来。

阅读全文 »