🌓

ios12中关闭app内购

之前版本的IOS中,是通过访问限制菜单,限制应用程序内购的。这个功能在设置->通用下可以找到。然后在IOS12中,我们已经找不到了。很显然,它被挪到了另一个地方。当然还是能找到的

阅读全文

reactive-pg-client中的数据库事务

使用reactive-pg-client中的数据库事务有两种写法,一种是通过PgConnectionbegin方法,开启一段数据库事务;另一种是通过PgPoolbegin方法。
先来看第一种:

阅读全文

reactive-pg-client实现数据库到应用程序的数据推送

昨天聊过,依托reactive-pg-client可以做很多传统JDBC无法实现的事情,比如PostgreSQL的消息推送(notifylisten)。有了这种功能,我们就可以轻易实现从数据库层主向业务逻辑代码推送消息的功能。可以说,又一次为我们打开了新世界的大门。

阅读全文

性能封神的数据库访问库reactive-pg-client初探

不知道有没有人关注过TechEmpower的Web Framework Benchmarkshttps://www.techempower.com/benchmarks/ ),一种把各种Web后端开发技术都罗列起来,在同样的机器下跑最简单的业务逻辑,来对比各技术性能的竞赛。参与跑分的技术代码,都是开源的,甚至很多代码就是由Web技术本身的作者维护的。
虽说,跑分不能代表性能,性能更不能代表技术的优劣。但是有着么一个性能维度的粗浅比较,还是能带给我们不一样的收获。
比如,在2018-06-06的最新一场比拼中,Vert.x搭配PostgreSQL的组合,在部分比试时表现十分抢眼,性能一骑绝尘且大幅领先第二名。被它踩在脚下摩擦的对手,不乏我们熟知的技术方案,比如gonodejsspringphp,还有mysqlmongodb等数据库。(这里我无意引战,有兴趣的朋友可以查看具体跑分结果相关代码
查看具体跑分代码可知,Vert.x之所以能位居榜首,与其使用的数据库客户端是密不可分的。作为一套基于Java的技术解决方案,Vert.x没有使用Java程序员所熟知的JDBC,而是使用了一种叫reactive-pg-client的技术。
reactive-pg-clientJDBC最大的区别就是前者是针对PostgreSQL数据库单独开发的,利用了PostgreSQL异步特性,最大限度了挖掘了数据库的访问性能。
现在我们就来简单尝试下reactive-pg-client,首先添加依赖

阅读全文

给异步的Vert.x程序做单元测试

异步的程序先天不好单元测试,尤其是按照传统的JUnit思路来弄,肯定是不行的。好在Vert.x想到了这一点,所以提供了vertx-unit包,专门考虑了对异步代码的测试。
使用起来也很简单,首先

testCompile "io.vertx:vertx-unit:3.5.3"

阅读全文

再谈CompletableFuture

今天是还之前欠的一个账,当时在Vert.x异步方法转同步这篇文章里,我提到其关键点是CompletableFuture类,今天我们就沿着当时的代码继续掰扯一下这个强大的类。
先来回顾下当时的代码

阅读全文

iTerm最佳实践


阅读全文

Groovy迭代器中的return陷阱

groovy从不会让人失望,如果有,那就是接下来我要说的这种情况:

def list = [1, 2, 3, 4, 5, 6, 7]
def test(List list) {
list.each {
if (it > 3) {
return it
}
}
}

println test(list)

阅读全文

用JavaScript在PostgreSQL中写存储过程

首先交代一个概念,在PostgreSQL中,函数、存储过程都是一回事,创建语法都是create function。之所以本文标题使用存储过程的叫法,是为了方便其他数据库的使用者容易理解。
先来看看PostgreSQL默认支持的创建数据库函数的写法,如:

阅读全文

使用Google Trends了解某一技术的全球态势

今天想介绍的东西很简单了,但却异常强大,就是Google Trends。使用方法非常简单,访问trends.google.com即可。
那么来看看我自己通过Google Trends发掘的一些有意思的事情吧。



阅读全文