🌓

免开发环境在GitHub站点上快速给开源项目贡献代码

给开源项目贡献代码应该算是进阶程序员的一条必经之路。今天我就简单介绍一下,如何在不clone代码,不使用本地开发环境的情况下,给GitHub上的开源项目贡献代码。
还没有GitHub账号的小伙伴,就抓紧注册个吧,其他就没有任何必要条件了。

第一步,发现问题

这个我可教不了,只能介绍一下我自己的经验,就是多看,多想。比如我今天举例的就是JVM下知名项目Vert.x,官方维护的vertx-examples,我发现他在介绍gradle-redeploy的时候,其中build.gradle有一段写得就不够严谨,他是这么写的:

阅读全文

PostgreSQL中实现更新默认值(二)

今天我们用表继承+触发器的方案,来实现表中的更新默认值。这也许是PostgreSQL里最佳的解决方案。

一. 创建一张表,作为父表

create table basic_update
(
t_update timestamp
);

阅读全文

PostgreSQL中实现更新默认值(一)

业务系统中,经常会在设计表的时候,考虑这两个字段:新增时间、修改时间。前者用数据库的基础功能即可实现,后者就要采取一些手段了。
PostgreSQL中的最佳实践是采用触发器,捕捉UPDATE实践,虽然听起来很可怕,但其实并不难。

阅读全文

PostgreSQL中用递归CTE获取一张表的所有祖先表

今天介绍两个知识点:

  1. PostgreSQL的表继承
  2. PostgreSQL中的可递归CTE

阅读全文

Vert.x项目监测代码变化自动冷重启

传统的Java Web开发一般都会提供热重载的方式,方便开发人员在代码发生变化的时候,无需手动重启应用,就可以刷新到效果。用惯了的人,在用Vert.x开发的时候多少会有点不习惯,不过Vert.x程序启动速度还是很可观的,所以也勉强能忍。
后来通读文档的时候,发现有个关于redeploy的介绍,似乎能用,又似乎不好用的,直到看到官方的Vert.x 3.2 Gradle redeploy project总算豁然开朗了。
核心代码无非下面几行

阅读全文

家长的责任及义务

身为家长,到底能为孩子做些什么,什么又是最重要的呢

我认为按重要程度,依次有这几点

    阅读全文

    分享一个Vert.x的自定义Launcher

    Vert.x的官方example中,mainClassName一般是指定的io.vertx.core.Launcher,但是在实际应用中,如果我们也不加思索的用这个Launcher就会损失好多定制性,比如:

    阅读全文

    用pg_cron定时刷新PostgreSQL的物化视图

    PostgreSQL中可以很轻松的创建物化视图,但是却没有自动刷新物化视图的机制。通常来说,不外乎两种方式,一种是通过触发器,另一种就是定时任务调度。今天我们就来说说第二种方式。
    主要借助一个名为pg_cron的扩展。
    安装方法在官方介绍里面已经说的很清楚了,不再赘述,这里提醒一点,安装完后,是需要修改postgresql.conf配置文件,并重启PostgreSQL服务的。具体修改如下:

    阅读全文

    PostgreSQL修改FDW相关配置

    必要的时候要修改PostgreSQL中配置的外部服务器。有个ALTER SERVER命令是专门应对这种场景的。比如我的外部数据源服务器地址换了,只需要改下之前配置的host地址即可,SQL如下

    阅读全文

    PostgreSQL中的distinct on

    想象有这么一张表,存放若干学生不同课程的考试成绩,需求是,找出每门课程中,成绩最好的学生。原始表大概如下:

    +--------------------------------------+-----------------+----------------+-----------+
    | id | v_studentname | v_coursename | i_score |
    |--------------------------------------+-----------------+----------------+-----------|
    | fb9fe43a-6f57-4f92-8678-139167693e72 | 张三 | 语文 | 91 |
    | 0898afd7-4253-496e-9190-36fae14bddf2 | 张三 | 数学 | 77 |
    | 2a1f810d-55ee-42cc-ac17-ee970154cecb | 张三 | 英语 | 90 |
    | fa975cd4-af5f-49d0-a89e-6f88665629eb | 李四 | 语文 | 88 |
    | 8833a07c-de8d-4b15-aa34-d9340c2e82c3 | 李四 | 数学 | 87 |
    | 1a9dfbdf-7c44-45d7-8141-590203aa26a9 | 李四 | 英语 | 89 |
    | cd3ec937-0ab9-4745-ad1a-c9f85839eaeb | 王五 | 语文 | 89 |
    | 431b7ccd-3a25-4ff4-9cc2-2e9f111f5c06 | 王五 | 数学 | 91 |
    | 8021e41d-09f5-49fb-a9e2-750d14bbff50 | 王五 | 英语 | 79 |
    +--------------------------------------+-----------------+----------------+-----------+

    阅读全文