0%

认证与授权是所有应用都必须要实现的,也是所有后端工程师必备的技能,本篇文章旨在快速上手使用 Spring 提供的 Spring Security oAuth2 搭建一套验证授权及资源访问服务,在实现企业微服务架构时能够有效的控制多个服务的统一登录、授权及资源保护工作。主要内容是oAuth2协议,认证/授权登录的交互过程以及 oAuth 2.0 定义的四种授权模式。

Disruptor 是由 Java 编写的基于内存的高性能队列,最早由英国外汇交易公司LMAX(一种新型零售金融交易平台)开发并开源的,能够在无锁的情况下实现队列的高并发操作,用于在异步事件处理体系结构中提供低延迟,高吞吐量的工作队列。与ArrayBlockingQueue 一样,它通常用于多个线程间的消息传递(常见场景就是生产者-消费者模型),Disruptor 从功能、性能都远好于 ArrayBlockingQueue ,当多个线程之间传递大量数据或对性能要求较高时,可以考虑使用 Disruptor 作为 ArrayBlockingQueue 的替代者。

在之前的 《纯手写路由框架实现Android组件化》 中讲到了Android APT技术,并且在讲解视频中使用APT了技术,加以JavaPoet辅助代码生成实现了一个最简单的基于注解的View注入(其实就是省略了大量的findViewById方法)。如果只是单纯的想体验APT技术带来的便捷性,那么这篇文章非常适合,APT从讲是一个编译期的注解处理工具(Annotation Processing Tool)。一些主流的三方库,如ButterKnife、EventBus等都用到了这个技术来生成代码。

Android调试桥(Android Debug Bridge,简称ADB)。本文主要是记录如何在WLAN网络下进行ABD连接设备以及一些常用的ADB命令,还有ADB的组成以及原理简要说明。

Gradle作为一款优秀的构建工具,也作为是目前Android主流的构建工具,不管是通过命令行还是通过GUI方式构建,背后都是通过Gradle来实现的,所以学习Gradle非常重要。无论是组件化、插件化、热修复等技术都需要对Gradle比较了解,不懂Gradle将无法完成上述事情,所以Gradle必须要学习。这篇文章主要是针对组件化的Android项目,如何使用Gradle完成公共配置项的抽取,Gradle如何定义Task,工程测试环境与正式环境的自动配置等内容。

在非常简单的业务场景下,单一工程就可以实现一个完整的App,而且维护和开发都非常简单。但是当一个App涉及到很多功能,单一的Module显得很吃力。如果整个工程一个 Module,业务逻辑都写在app模块中不同的包下:无论分包做的再好,随着项目增大也会失去层次感,接手起来也很吃力;而且包名约定作为约束太弱,一不注意就出现不同业务包之间直接相互调用,代码高度耦合;多人联合开发在版本管理中很容易出现冲突和代码覆盖问题。那么就很容易出现下面的场景:

// when I wrote this, only god and I understood what I was doing

// Now, god only knows

本文主要围绕什么是组件化,为什么需要组件化,如何进行组件化展开。路由在Android组件化开发中的重要作用,分析路由框架的实现原理,如何一步一步实现一个路由框架。

摩尔定律让算力放缓,以前学习的都是32位的x86汇编,不得不说x86架构的指令集真的是历史包袱太重了,x86架构的不足在当代急需超强的算力的背景下越发明显,功耗大、通用寄存器数量少、计算机硬件利用率低、寻址范围小等问题凸显,难以跟上算力发展的速度。与此同时,ARM架构在移动互联网盛行的当下却开始焕发出别样的生命力。于是最近看了看ARM架构下的衍生RISC-V架构,顺便回顾一下计算机组成原理的相关内容。