Matt Reach

「Stay Hungry, Stay Foolish」

初识 Liquid 模板语言

去年 11 月,我开始使用 Jekyll 搭建静态博客系统,由于默认的主题过于简陋,因此我为自己定制了主题,Jekyll 使用 Liquid 模板标记语言作为模板引擎,所以要定制主题,就不得不去学习下 Liquid 这个标记语言,如果你点进去看的话,你会发现我的主题跟这个惊人的相似… 我没有足够的时间去学习,或者说我觉得也不需要去系统的掌握,简单入门后,用到哪里查哪里就行了,写这篇...

使用 WorkSpace 管理共享代码

在上篇博客中提到可以把通用代码打成静态库,然后多个项目可使用多个 Framework 包裹这些静态库的方式共享通用代码,详见最后的思维导图!这个方案的确是可行的,但是只用了两天就被干掉了!原因是太不方便了!程序刚好崩溃到打到静态库中的方法了,没法搞断点去一步步 debug ,降低了开发的效率!这种方案也不是完全没有用武之地,比如现在有几和后台商议好的加密算法,一般不需要人人都知道,省得泄漏出...

使用 Framework 包裹静态库共享代码

正如上篇博客介绍的,提取公共 Framework 确实能够让多个 SDK 共享基础代码 !这毋庸置疑,我们已经实践了好几个项目了,但是随着业务的发展,发现这个粒度有时还不够细,换句话说 SCF 包含的东西多了些,对于某些项目而言不需要用这么多的功能,SCF 显得有些臃肿了,这要怎么办? 背景 去年的这个时候,我来到了这个团队之后,开始做千帆直播 SDK ,经过一年的时间已经迭代到了线上 ...

使用 Framewrok 管理共享代码

这不是一篇讲解如何使用 Xcode 创建 Framework 的教程,而是代码共享的一个解决方案! 背景 今年 2 月刚迭代完千帆直播 SDK 之后,我们启动了 夺宝SDK 的开发工作,除了常规的产品需求外,有个特殊的要求: 作为千帆直播 SDK 的组成部分(集成到搜狐视频) 单独提供给千帆直播 App 思考 听起来挺简单的,仔细考虑后,并不简单,原因如下: 时...

Mac 上配置 Apache 服务器

我在业余时间搭建了一个博客式 SDK 分发服务器,用于公司内部分发 SDK 到其他部门,挺方便的,提交完代码,一键远程打包,打完自动上传到服务器,生成下载地址,不影响本地工作… 因此用到了一些 Apache 的知识,日后也会着重介绍下我的分发服务器… 如何控制Apache Apache 要启动一个系统服务,可能没有权限,一般 sudo 即可; 检查 Mac 系统自带的有 Ap...

Block 使用方式由浅入深

Objective-C 语言一直以来由苹果公司维护着,为其增加了不少更加现代化的语法,其中 block (其他语言一般都称闭包)语法就是在 iOS 4 发布的,与此同时还提供了抽象程度极高的GCD 技术,用于简化线程的操作!所以今天说的 block 并不是新的技术,但它恐怕是最难记忆的的语法了,并且使用形式很是灵活,因此总结一下我平时使用的几种类型,供大家参考。 特为此写了个 de...

致炫收音机改为家用音响

最近买了辆小车—丰田-致炫,不是高配的,所以没有导航,雷达,倒车影像等,只有一个收音机,CD 都不带… 上周六去汽配城装了导航和倒车影像,原车的收音机就被毫不客气的抛到后备箱里了,作为一个 Geeker ,不可能把他扔掉或者当破烂卖了,即使卖也是白菜价(论坛里有人出20大洋,呵呵),这些对于一个电子爱好者来说都是宝贝啊!必须改装,为我所用才是王道… 先睹为快 放在客厅的电视柜旁...

我的 2016

要和 2016 说再见了,是时候对今年做个总结了,今年是不平凡的一年,因为发生了几件人生重大的事情,还是按照时间顺序来说吧,这样简单些。 三亚 4 月 — 也就是刚过完年不久,天还有些冷的时候,我和未婚妻去了趟三亚,目的不是去旅行,而是去拍婚纱照。 8 号,我们乘坐地铁从丰台东大街出发到东直门换乘机场线,然后到达北京首都国际机T2航站楼。找到自助机器办理值机、领取登机牌,一般很...

千帆 SDK Refactor: 优雅的处理聊天数据源

以下讨论基于的前提思想是:Cell 和 Model 是绑定的,一一对应的;Cell 是数据源所决定的,Cell 要做的就是展示数据源而已,或者说是先确定的数据源而不是 Cell,因此我们今天以讨论 Model 为主。简单的概括这次重构是为 Cell 建立一个CellModel,他有个实现构建协议的属性,展示前通过协议方法构建 Cell需要的数据并且存储到 CellModel 里,这样的...

SLNetwork 支持链式编程

之前用 Masonry 写过一阵子自动布局,感觉很是方便,最大的特点是:使用block,在block块内编写约束即可,方便 update 约束,并且支持链式编程,于是我研究了下如何链式编程后,为我的网络请求也加了这个功能… 思考如何才能做到链式 必须满足的一个条件肯定是调用方法之后,方法的返回值调用者本身啦;如何优雅地返回自身对象呢,最简单的方式是这样? 1 2 3 4 5 -...