简介 同样一行 Kotlin 代码: 有时会直接修改 a 指向的对象,有时却会先计算 a + b,再把新对象赋值给 a。 再看几种熟悉的写法: 这些符号看起来像 Kotlin...
简介 同样一行 Kotlin 代码: 有时会直接修改 a 指向的对象,有时却会先计算 a + b,再把新对象赋值给 a。 再看几种熟悉的写法: 这些符号看起来像 Kotlin...
简介 Go 代码里经常能看到这样的写法: 表面看起来像类型转换,实际含义完全不同。 类型转换是在两个允许转换的类型之间改变值的类型: 类型断言则是在检查一个接口值: 类型断言...
简介 一段 Lambda 看起来只有几行代码: 为什么 Kotlin 还专门提供了 inline? 如果只是为了“少调用一次函数”,JVM 自己也会做方法内联,似乎没必要再加...
简介 generic 通常翻译成“泛型”。 Go 从 1.18 开始支持泛型。 泛型解决的核心问题很直接: 比如求和。 没有泛型时,int 要写一份: float64 又要写...
简介 MySQL 从 5.7.8 开始支持原生 JSON 数据类型。 它适合存储结构不完全固定、但仍然需要按路径查询和修改的数据,例如: 商品扩展属性 用户个性化配置 动态表...
推荐一个 Zig Web 工程骨架:wing-app 最近看到朋友写的一个 Zig Web 项目:dacheng-zig/wing-app[https://github.co...
简介 虚拟线程的英文名是 Virtual Thread,它是 Project Loom 带来的轻量级线程实现。 虚拟线程在 JDK 19、JDK 20 中经历了两轮预览,到了...
简介 Spring WebFlux 是 Spring Framework 5 引入的响应式 Web 框架。 它和常见的 Spring MVC 都能写 HTTP 接口,但底层处...
简介 Thread 是 .NET 里直接创建和管理线程的底层 API。 命名空间: 最简单的写法: 一句话概括: 不过,现代 .NET 项目里并不需要到处 new Threa...
简介 Emit 通常指的是: 它是 .NET 里一套非常底层的运行时代码生成 API。 一句话概括: 普通 C# 代码是先写源码,再编译成程序集,然后运行。 Emit 的思路...
简介 项目代码写久了,很容易出现这种函数签名: 真正的业务参数只有 userId 和 productId。 后面的 logger、config、tx 更像“运行环境”: 日志...
简介 interface 是 Go 里非常重要的类型。 它不保存字段,也不写具体逻辑。 它只定义一组方法。 比如: 这段代码表达的是: 一句话概括: 结构体更像“数据长什么样...
简介 TaskFactory 是 .NET 里专门用来创建和调度 Task 的工厂类。 最常见的入口是: 很多代码里会把它当成 Task.Run 的高级版,甚至直接用它替代 ...
简介 JDBC 全称是 Java Database Connectivity。 它是 Java 官方提供的一套数据库访问 API。 简单理解: JdbcTemplate、My...
简介 Tomcat 全名是 Apache Tomcat。 它是 Java Web 领域很常见的 Servlet 容器,也可以理解成轻量级 Java Web 服务器。 它主要负...
简介 Flyway 是一个数据库迁移工具。 它解决的问题和 Liquibase 类似: 不过 Flyway 的风格更简单直接。 它主要通过 SQL 文件管理数据库变更。 比如...
简介 pointer 是 Go 里绕不开的基础概念。 中文通常叫“指针”。 它的作用很简单: 先看一个最小例子: 这里: a 是普通变量,值是 10 &a 是 a 的地址 p...
简介 with 是 Kotlin 标准库里的作用域函数。 作用域函数常见有 5 个: let run with apply also with 的定位很清楚: 把一个已有对象...
简介 Liquibase 是一个数据库变更管理工具。 它解决的问题不是: 而是: 比如项目从第一个版本到第三个版本,数据库可能经历这些变化: 如果靠手动执行 SQL,很容易出...