理解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进行文本处理的例子
最近这个项目演进迅速(捐助者多). 最新两个引入了两个很吸引我的功能
进入阅读→