分类: 程序世界

179 篇文章

ArchUnit 工具守护分层架构
简介 ArchUnit 利用反射和字节码技术获取所有的包、类、字段等信息,并通过特定的分析来确定对象之间的访问关系。ArchUnit 使用 ASM 作为字节码分析的工具,代价是 ArchUnit 的很多规则的定义不是类型安全的。 ArchUnit 支持的检查特性有: 包依赖检查。 类依赖检查。 类和包的位置约定检查。 继承检查。 分层依赖检查。 循…
logback 修改运行时的日志级别调整
前言 线上环境,一般我们不需要详细的日志。但如果线上出现了啥疑难杂症,这些详细日志将会变得非常宝贵。这时,我们就需要调整日志的输出级别,把详细日志打开,帮助我们定位问题。比如把日志级别从WARN调整为DEBUG,打印出更多的信息帮助我们定位问题,而这就需要我们有一种在Runtime调整日志级别的能力。 实现 代码修改 代码修改的话,你需要写一段如下…
COLA架构
概述 最近接触到一个新的架构:COLA (基于扩展点+元数据+CQRS+DDD的应用架构) COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。 开源地址:https://github.com/alibaba/COLA 博主 张建飞(alibaba) 博客地…
使用 MyBatis 的 BATCH 方式执行批量修改
前言 最近在优化公司的一个数据导入功能,里面涉及到比较复杂的逻辑,特别是最后一个列表更新,涉及到比较多的数据,在这里卡顿处主要为两处: 1.使用大量的查询条件去做修改删除操作 2.在一个for循环里面调用数据库做修改操作; 当数据量大的时候,服务非常的卡顿,在这里记录一下优化过程 现状 代码一: sql中有大量查询条件 Service 类 // 前…
MySQL 的 EXPLAIN 分析
简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 EXPLAIN 就可以了, 例如: EXPLAIN SELECT * from user_info WHERE id <…
几款内网穿透工具
nps-npc 简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。 一台有公网IP的服务器(VPS)…
在 Linux 中立即创建大文件
我们一般用 touch 命令创建一个空文件,但是如果有时候需要的话,如何创建特定大小的新文件呢 dd 命令 dd 命令用于复制和转换文件。它最常见的用途是创建实时 Linux USB。 dd if=/dev/zero of=test.img bs=2G count=1 上面创建了一个大小为 2 GB 的文件,其中有一个大小为 (bs, block …
理解 OAuth 2.0 – 阮一峰的网络日志
OAuth 2.0 是一个流行的授权机制,用来授权第三方应用,获取用户数据。 第三方登录 用户想要登录 A 网站,A 网站让用户提供第三方网站的数据,证明自己的身份。获取第三方网站的身份数据,就需要 OAuth 授权。举例来说,A 网站允许 GitHub 登录为以下流程: A 网站让用户跳转到 GitHub。 GitHub 要求用户登录,然后询问&…