理解SQL JOIN

SQL语句中的表连接(Where)和过滤(Where)

首先, 可视化的介绍下连接的各种情况, 以表1 和表2为例, 下面分别列出了各种可能的连接的情况

  • 笛卡尔集: cross join
  • 内连接: inner join
  • 左外连接: left outer join
  • 右外连接: right outer join
  • 全外连接: full outer join
进入阅读→

Reagent使用react hook

Hook 是 React 16.8 的新增特性. 它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性. 一些第三方库也紧跟变化, 把api改成了Hook的形式. 但是在reagent组件中直接使用hook会报错. 比如:

(require '["react" :as react])

(defn example []
  (let [[count set-count] (react/useState 0)]
    [:div
       [:p "你点击了 " count " 次"]
       [:button
        {:on-click #(set-count inc)}
        "Click"]]))

(defn parent-component []
  [:div
   [example])

上面的代码运行后会出现下面的报错:

进入阅读→

Rich Hicky的演讲

Rich Hicky 是clojure的作者, 除了对clojure语言本身的贡献以外, 他还以一位慈父, 音乐爱好者和讲者.

下面是他非常棒的一些列演讲, 深刻且引人入胜.

作为一名YouTube的搬运工, 我把以下的演讲搬到了B站.

进入阅读→

Reagent文档:管理状态

尽管可以通过使用 reagent.dom/render 重新挂载整个组件树来更新 reagent 组件, Reagent 提供了一个基于 reagent.core/atom 的复态管理机制, 允许组件跟踪应用程序状态, 并且只在需要时更新.

Reagent 还提供了r/cursor, 这些游标类似于r/atoms, 但可以从一个或多个其他r/atoms来构建, 以限制或扩展组件使用的r/atoms. 最后, Reagent 提供了一组称为r/reaction的原语和一组构建更定制化状态管理的实用函数.

原子(r/atom)

进入阅读→

Reagent文档:创建组件

在Reagent中, 基本的构建单元是组件.

Reagent应用程序通常会有许多组件--比如说, 多于5个但少于100个--而一个Reagent应用的整体用户界面就是所有这些组件拼接在一起的输出, 每个组件都贡献一部分整体的HTML, 以层次结构排列.

因此, 它们很重要, 本文档描述了如何创建它们.

进入阅读→

clojure与java交互打包问题

-noverify

通过使用 -noverify 参数,关闭 Java 字节码的校验功能

在clojure 项目 project.clj配置文件中添加 -noverify

进入阅读→

clojure web开发入门

后端基础知识

编码规约

进入阅读→

Mulog整合

Mulog整合

大神之前已经对Log做过一次讲解了,可以先看下。传送门

Mulog 整合步骤

进入阅读→

后台管理系统开发规范

后台管理系统开发规范

后台管理系统是每个系统不可或缺的一部分,由于共性比较强,都是由查询列表、表单组成;为提高开发效率,统一制定下开发规范,也欢迎大家补充或修改。

列表页面

进入阅读→

babashka的pods

babashka是一个基于Graalvm的clojure解释器, 避免了传统JVM启动慢, 内存消耗高的问题. 非常适合写脚本.

我们blog已经有一篇用babashka进行文本处理的例子

最近这个项目演进迅速(捐助者多). 最新两个引入了两个很吸引我的功能

进入阅读→