非常实用的GitHub项目
CoilCoil是Android上的一个全新的图片加载框架,它的全名叫做coroutineimageloader,即协程图片加载库。与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势。它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。示例如
Wesley13 Wesley13
3年前
SPI应用场景及详解
java中spi(serviceproviderinterface)是jdk内置的一种服务发现机制,可以基于配置,在运行时加载指定服务。java中提供了很多服务提供接口,如jdbc、jndi等。面对分布式的开发,很多系统之间的调用都是使用rpc直接调用,但是有的时候上游的系统需要调用下游系统很多的接口,导致开发工作量很大。因此上游系统使用sp
Stella981 Stella981
3年前
Spring Data Jpa最佳实践
前言SpringDataJpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量。SpringDataJpa存储库抽象中的中央接口是Repository。它需要领域实体类以及领域实体ID类型作为类型参数来进行管理。该接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展该接口的接口。CrudRepository、JpaRe
Stella981 Stella981
3年前
Android单元测试之四:仪器化测试
Android单元测试之四:仪器化测试仪器化测试  在某些情况下,虽然可以通过模拟的手段来隔离Android依赖,但代价很大,这种情况下可以考虑仪器化的单元测试,有助于减少编写和维护模拟代码所需的工作量。  仪器化测试是在真机或模拟器上运行的测试,它们可以利用Androidframew
Easter79 Easter79
3年前
TiDB DM踩坑实践总结
一、背景在早期从MySQL到TiDB实施同步操作过程中,我们大多数用的是mydumperloader进行整体全量备份的导出,之后拿到meta信息后,通过syncer实现增量同步,整体操作起来比较麻烦,涉及的配置文件较多,其基本原理就是Syncer通过把自己注册为一个MySQLSlave的方式,和MySQLMaster进行通信,然后不
Wesley13 Wesley13
3年前
PG_RMAN使用手册
众所周知,Oracle下可以使用rman进行物理备份,支持数据库的全量、增量、归档的备份模式;而PostgreSQL作为开源数据库,也推出了开源功工具pg\_rman,同样具备了oraclerman大部分的功能。本文写的很早,近期才翻出来,挂到博客上,希望能帮助需要的朋友。1、下载安装软件root@mydb01~wget
Wesley13 Wesley13
3年前
Java中的异常
异常的概述异常就是不正常的意思,Java语言中主要指程序在运行阶段产生的错误Throwable(可抛出、可扔出的)Java.lang.Throwable类是Java程序所有错误或异常的超类主要有两个子类:  Error:主要描述比较严重的错误,无法通过编程来解决的重大的错误  Exception:主要描述比较轻量
Stella981 Stella981
3年前
Netty学习三:线程模型
1Proactor和ReactorProactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图:!(https://oscimg.oschi
可莉 可莉
3年前
2016.2.16 k12在线教育的全面架构设计
1.业务场景 公司要进行多个城市的互联网教育项目,业务是天朝正统k12(呜呼哀哉)的教育范儿,现总用户量大概在300万左右,按照现有情况估算3年后会达到千万左右,按照用户量百万级的标准进行设计,高发时段并发可达100万QPS。2.业务架构!(http://sta
Stella981 Stella981
3年前
Android依赖注入应用
依赖注入(DI)是一种设计模式,允许在运行时或编译时移除或改变硬编码的依赖性。使用依赖注入库可以减少编码量、把精力专注在更有价值的地方、降低维护成本。Android程序通常使用注解(Annotation,例如@Click)实现“声明式编程”和依赖注入。注:“声明式编程”告诉机器在什么地方做什么事(Where