using keto

Using Keto 解决什么问题 分布式的权限校验系统 上手 $ brew tap ory/keto $ brew install ory/keto/keto $ keto help 回顾 权限描述的是: 谁对资源拥有什么操作

using spock by example

Using Spock 引言 Java 程序员最熟悉的单元测试框架莫过于 Junit,大多数人用的应该是4.x的版本,最新的5.x的版本相比4.x的版本增加了不少新的特性,写起单元测试来,也更加的得心应手,不过这篇文章不是来介绍 Junit 的,而是简单引荐下 Spock,号称是 jvm 下最好用的测试框架。

system design principles by example

从todo-cli谈谈一些系统设计的原则 介绍 以实际的需求为切入点,谈谈在系统设计以及实现上哪些原则可以帮助我们更好的实现设计。 需求来自郑晔老师的代码之丑, 简单讲,就是一个简易的命令行todo应用。 原则解读 1. 分层设计 类设计图,具体代码可以下拉到参考链接 这是目前版本的类设计图,可以看到domain包作为核心功能的承载者,不依赖外部的类,这样做的好处是,外围的一些需求变化,不会导致核心功能的变更。

intellij idea tips

Intellij IDEA tips IDEA提供了很多提效的工具,比如很多人喜欢的重构菜单,今天我们来了解下其他的工具。 Live Template 这个代码模版工具可以让你在IDE里配置常用的代码模版。 内置 写个main函数 写个for循环

bean mapping simplified

Bean mapping simplified 背景 对于分层应用程序来说,Java Bean之间的转换非常常见,比如从DTO -> BO,从 BO -> DO,那么如何选择一个既好用性能又好的转换工具呢?

mac first met

听说你买了 Mac 背景 听说很多同学买了 Mac,所以简单罗列下平常使用到的一些工具,可以参考参考。 工具介绍 homebrew 介绍 Mac 下安装工具或软件的必备工具1 如何安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.

plantuml guide

文本绘图利器plantuml 应用场景 做系统设计免不了需要画图,从设计流程上来说,用例分析 -> 组件交互 -> 领域对象分析,往往不是一蹴而就的,需要一个反复迭代的过程,在这个过程中,如何更好的追溯你的设计变更很重要,不管后续维护的是你自己还是其他人,都可以从这个设计变更里得到重要的信息。 一个需求 这里以一个假想的需求为例,演示一下上述所述的画图场景 以顾客到餐馆用餐为例,需要经历顾客来餐厅吃饭,点菜,服务员下单,厨师出菜,服务员上菜,顾客结账的过程,下面我们来看怎么画这些图。

file operation on server

服务器文件操作笔记 数据库备份 mysqldump -uroot -p -hlocalhost -P3306 db > /var/lib/mysql/db.sql 数据库恢复

influxdb notes

InfluxDB学习笔记 notice: 学习笔记针对的版本是1.7 时序数据库的特点: 持续写入数据量大,数据和时间相关。读取操作相对较少,且通常读取的是一段时间范围内的数据。 存储 LSMTree 组件 目录结构 |-- data | |-- NOAA_water_database | | |-- autogen | | |-- 3 | | | |-- 000000001-000000001.

how to create a awesome gitlab project

如何创建一个高质量高逼格的Gitlab工程项目 目录 高质量 高逼格 对自己好一点 参考 高质量 首先我们来定义一下什么是高质量,不同于美的定义(一千个读者可能有一千个哈姆雷特),对于高质量,我们可以达成一个共识。 有效的单元测试 相信对于单元测试的作用,大家都不会陌生,对于能提高效率的事情,何乐而不为呢? 对于Java项目来说,junit是公认的测试框架,熟练使用就可以了,另外,你一定会用到mockito这个工具,具体见文末的参考链接 有可观的测试覆盖率 光光有单元测试是不够的,只有达到一定阈值的覆盖率才是合格的,不必追求百分百的覆盖率,按照2/8原则,80%是一个可以追求的阈值 这里推荐下jacoco这个测试覆盖率工具,和Intellij IDEA也有很好的集成 集成sonar 通过sonar扫描代码库,来帮助我们找出容易忽略的问题,对于你认为sonar检出的不是一个问题,大可以忽略,不用太纠结 CI/CD 开发完成之后,还需要手动跑测试用例,手动发布到开发环境? 正确的姿势见下图 高逼格 然后我们来定义一下什么是高逼格