使用 RxTest 来建立基于 RxSwift 的自动化测试

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

最近开始一个 iOS 新项目,我开始完全用 RxSwift 来构建所有逻辑了。本篇文章将讲述如何通过 RxTest 来架设起一个「响应式」的自动化测试环境。 我学习和使用 Rx 的经历 RxSwift(或 Reactive 响应式编程),我了解还算早,但是一直没有全面地采用它。一方面有项目的原因,经典项目因为忙着加 Feature,牵扯的地方比较多,所以只会谨慎局部使用,采用不多,比如奇点,只在一些和复杂网络请求有关的新特性上使用了它。另一方面,我虽然是一个追求新技术的人,但是也不想「有了锤子见…

继续阅读使用 RxTest 来建立基于 RxSwift 的自动化测试

[译]使用 bcc/BPF 分析 go 程序

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

BCC 是基于 BPF 的 Linux IO 分析、监控、网络工具集合。BPF Compiler Collection (BCC) 是创建高效内核追踪和处理程序的工具包,包含几个有用的工具和用例。BCC 扩展了 BPF (Berkeley Packet Filters) 的用途,BPF 之前被称为 eBPF,是 Linux 3.15 新增的一个新特性。BCC 大部分的功能都要求 Linux 4.1+。 本文翻译自性能分析大牛Brendan Gregg的 2017年中旬的一篇文章:Golang b…

继续阅读[译]使用 bcc/BPF 分析 go 程序

MySQL Alter Table锁表相关的....提纲?

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

(瞅一眼才发现四个月没写了,确实是好久没写代码了,没啥心得,不过想想好像可以写个提纲凑个数) 我们的业务主要还是用 MySQL 存储业务数据。 MySQL 一个很麻烦的问题是,alter table 的时候往往要锁表,而业务在最初设计的时候,又没法为未来的所有改动预留合适的字段,结果就是,要么另外建一张表横向扩展,要么熬到半夜,忍受锁表带来的业务中断;不过在多次实践中还是有一些心得体会,可以简单列一下。 1. alter table 是否都会锁表? 不都会,有些情况可以不锁表,例如,修改默认值,…

继续阅读MySQL Alter Table锁表相关的....提纲?

Direct3D12 的接口设计 bug

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

昨天被 D3D12 的一个 bug 坑了一晚上,这个问题很值得一写。 最初是发现LUID ID3D12Device::GetAdapterLuid()这个函数有问题。我用 mingw64 gcc 编译后的程序,只要调用了一个 api ,d3d12device 设备对象的虚函数表就被破坏掉了。下一次对这个设备的任何 api 调用都会 crash 掉。 由于这个函数的实现在 d3d12.dll 中,是没有源码的,所以只能用 gdb 调试了一下。发现了一个问题:这个 api 的返回值是 LUID ,它…

继续阅读Direct3D12 的接口设计 bug

你需要了解的 Swift 4 新东西之 Substring

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

Swift 4 正式版已经随着 iOS 11 和 Xcode 9 的发布而发布了。 这是一个值得受好评的版本,很重要的一点是,它改变了 Swift 被人吐槽最多的一个问题:每个版本因为不兼容的问题,都要重写。Swift 4 有着 Swift 3 语法兼容模式,这意味着你不用改一行代码,就可以在 Xcode 编译通过。这对大型 iOS 项目而已非常重要:我们可以在未来的一年从一个 Target、一个 Framework 开始的形式慢慢地迁移至 Swift 4。 由于我比较急,一下子把自己的项目(奇…

继续阅读你需要了解的 Swift 4 新东西之 Substring

关于 iOS 11 GM 及正式版可能存在几个小问题

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

还有几个小时,iOS 11 正式版就要发布了。而在前天,我却从 iOS 11 GM 降级回了 iOS 10。这是我用 iOS 系统七年以来,第一次因为 GM 用的不愉快而回到旧系统。这篇文章,我想谈谈对 iOS 11 的一些看法。 我是在 Apple 发布会结束后的那天,把自己的 iPhone 6s 更新到 iOS 11 GM 的。更新的形式用的是备份原手机,下载 iOS 11 GM 的 ROM,干净安装 iOS 11,再从备份中恢复。理论上是最干净和毛病少的方式,然而,五六天的的体验却让我失望…

继续阅读关于 iOS 11 GM 及正式版可能存在几个小问题

一个关于 nolock 的故事

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

加入沪江不久,我就被扔到一个将集团 SQL Sever 的数据库迁移到 MySQL 的项目里, 同时伴随进行的还有 .net 系统迁移到 Java 系统。 在这个过程中我发现了一个很有趣的现象:历史遗留的 .net 项目中, 几乎所有的 SQL 中都会使用一个关键字:nolock。 这让我很困惑,nolock的字面意思是对当前技术不使用锁技术,为什么要这样用呢? 我找了一个范例如下: SELECT [id] FROM [dbo].[foos] WITH(nolock) WHERE aField …

继续阅读一个关于 nolock 的故事

关于Facebook 的 React 专利许可证

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

随着Apache、百度、Wordpress都在和Facebook的React.js以及其专利许可证划清界限,似乎大家又在讨论Facebook的这个BSD+PATENT的许可证问题了。这让我想起了之前在Medium读过的一篇文章——《React, Facebook, and the Revocable Patent License, Why It’s a Paper》,我觉得那篇文章写的不错,而且还是一个会编程的律师写的,所以有必要把这篇文章传播到中文社区这边来。注意,我不会全部翻译,我只是用我的…

继续阅读关于Facebook 的 React 专利许可证

小程序技术方案探讨

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

微信小程序上线大半年,大部分技术原理也有文章介绍了,本文尝试从需求出发探讨微信小程序技术方案的来源,以及最近公测的支付宝小程序技术方案的考量。 微信小程序 微信小程序的需求是让第三方开发者可以接入,可以使用微信的提供的接口去开发应用嵌入在微信里。对于这个需求,最简单的实现方案是:让外部开发者开发纯H5应用,在微信的 H5 容器里打开,容器提供微信 native 接口,就行了。在有小程序之前,已经有很多这样的业务接入,像京东购物,钱包里的各种友商大众点评/滴滴出行等,都可以认为是一个“小程序”,内…

继续阅读小程序技术方案探讨

《ES6 标准入门(第3版)》上市了!

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

2017年6月,TC39 委员会正式发布了《ES2017 标准》。 相比两年前,JavaScript 语法有了很大的升级,主要是引入了async 函数和decorator。这让我觉得,《ES6 标准入门》必须要出新版,否则就跟不上形势了。 电子工业出版社的张春雨编辑很支持我的想法,最快时间投入出版社的资源;孙奇俏编辑连续几周都忙于校对排版。7月初我交稿,8月底送印刷厂,9月中旬《ES6 标准入门(第3版)》就全面上市了。 淘宝 京东 亚马逊 当当 China-pub 新版本的背后是,四年不间断的…

继续阅读《ES6 标准入门(第3版)》上市了!

复古设计在左,数字化营销在右,奢侈品巨头们正大举重回市场

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

设计学就如同哲学一样,随着人类文明的不断发展进步,这门学科不会出现高度的限制。没有作品会被誉为“最好的设计”,但一定会被称为“里程碑”。看如今的奢侈品牌们,Gucci的古希腊神话包袋、Vetements的90年代风格颓废卫衣、Balenciaga还原“爸爸球鞋”,复古设计风潮在奢侈品牌中热度不减。在设计上突破传统美学桎梏,在营销上也花样百出。在奢侈品牌们纷纷“.CN”之后,一手做着复古设计,一手玩着数…

继续阅读复古设计在左,数字化营销在右,奢侈品巨头们正大举重回市场

日本电影在中国叫好又叫座,韩国电影为何就没那么“受待见”?

  • Post author:
  • Post published:
  • Post category:IT
  • Post comments:0评论

这个九月,有三部日本电影登上了内地院线,分别是《银魂》、《声之形》和《刀剑神域:序列之争》。截止到目前,《银魂》的票房已经超过了8000万,《声之形》的票房也超过了4000万,《刀剑神域》也于今天上映。在豆瓣上,这三部电影的评分都超过了7分。相较于往年,近两年引进的日本电影可以用“井喷”来形容。据统计,去年引进院线公映的日本电影共计11部。其中,《你的名字。》等4部电影都斩获了过亿的票房。反观我国的另一位邻居韩国,却很少有在中国大银幕上露脸的机会。即使在“禁韩…

继续阅读日本电影在中国叫好又叫座,韩国电影为何就没那么“受待见”?