设计模式-创建型-命令模式(Command)
参考文献
https://www.oodesign.com/command-pattern
https://refactoringguru.cn/design-patterns/command
https://java-design-patterns.com/patterns/command/
命令模式
它可将请求转换为一个包含与请求相关的所有信息的独立对象. 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作.
组件
Command - 接口通常仅声明一个执行命令的方法.
ConcreteCommand - 会实现各种类型的请求. 具体命令自身并不完成工作, 而是会将调用委派给一个业务逻辑对象. 但为了简化代码, 这些类可以进行合并.
接收对象执行方法所需的参数可以声明为具体命令的成员变量. 你可以将命令对象设为不可变, 仅允许通过构造函数对这些成员变量进行初始化.
Client - 会创建并配置具体命令对象. 客户端必须将包括接收者实体在内的所有请求参数传递给命令的构造函数. 此后, 生成的命令就可以与一个或多个发送者 ...
读书笔记-MySQL技术内幕-SQL编程
参考文献
MySQL技术内幕-SQL编程 姜承尧
第四章 子查询
独立子查询
子查询可以按两种方式分类.若按照期望值的数量,可以将子查询分为标量子查询和多值子查询;若按查询对外部查询的依赖可分为独立子查询(self-contained subquery)和相关子查询(correlated subquery)
独立子查询是不依赖外部查询而运行的子查询.与相关子查询相比,独立子查询更便于SQL语句的调试.
标量子查询可以出现在查询中希望产生标量值的任何地方,而多值子查询可以出现在查询中希望产生多值集合的任何地方.只要标量子查询返回的是单个值或NULL值,就说明该子查询是有效的.如果标量子查询返回多个值,则,MySQL数据库将抛出错误.
EXISTS谓词
EXISTS是一个非常强大的谓词,它允许数据库高效地检查查询是否产生某些行.通常EXISTS的输入是一个子查询,并关联到外部查询,但这不是必须的.根据子查询是否返回行,该谓词返回TRUE或FALSE.
与其他谓词和逻辑表达式不同的是,无论输入子查询是否返回行,EXISTS都不会返回UNKNOWN.如果子查询的过滤器为某行返回 ...
读书笔记-深入理解Nginx-模块开发与架构解析(第二版)
参考文献
深入理解Nginx-模块开发与架构解析(第二版) 陶辉
第一部分 Nginx能帮我做什么
第一章 研究Nginx前的准备工作
Nginx的优点
高并发,高性能
高扩展性
高可靠性
热部署
最自由的BSD许可证
使用Nginx的必备软件
GCC编译器
1yum install -y gcc-c++
PCRE库
1yum install -y pcre pcre-devel
zlib库
1yum install -y zlib zlib-devel
OpenSSL开发库
1yum install -y openssl openssl-devel
磁盘目录
Nginx源代码存放目录
Nginx编译阶段产生的中间文件存放目录
该目录用于放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件.
默认情况下,configure命令会将目录命名为objs,并放在Nginx源代码目录下
部署目录
该目录存放实际Nginx服务运行期间所需要的二进制文件,配置文件等.
默认情况下,该目录为/us ...
读书笔记-Java并发编程设计原则与模式(第二版)
参考文献
<<Java并发编程 设计原则与模式(第二版)>> Doug Lea
第一章 面向对象的并发编程
Java编程语言提供的三种常用的并发构件
独占(Exclusion). 可以通过阻止多个并发行为间的有害干扰来维护对象状态的一致性.通常使用同步(synchronized)
状态依赖(State dependence).是否可以触发,阻止,延迟或是恢复某些行为是由一些对象是否处于这些行为可能成功或是成功的状态上决定的.通常,状态依赖关系使用监视器(monitor)方法实现,如Object.wait, Object.notify和Object.notifyAll.
创建线程(Create threads).使用线程(Thread)对象来创建和管理并发操作.
通过保证同步在同一个对象上的方法或者代码块操作的原子性(atomicity),加锁机制可以同时提供多种保护措施,包括对上层和底层冲突的保护.原子操作被作为一个整体来执行,这样它们就不会被插入的其他线程的操作打断.
第二章 独占
不变性
如果一个对象的状态不能改变,那么它永远不会遇到由于多个 ...
解决方案-认证与授权
参考文献
https://docs.authing.cn/v2/concepts/
https://datatracker.ietf.org/doc/html/rfc6749
行业标准
OAuth 2.0: 一种授权标准,允许用户在一个站点向其他站点授予对其资源的有限访问权限,而无需获得其凭证(通常是账号密码).举个例子,你在手机上点击「使用微信登录」时都会使用此标准,并且系统会询问你是否同意与该应用共享你的头像、昵称等数据.
Open ID Connect: 这是 OAuth 2.0 的一个超集,他在 OAuth 2.0 之上提供了更多用户信息和获取权限和标准,比如他定义了用户的头像为 picture.
JSON Web Tokens: 一种开放标准,主要用来安全的传输信息,他的格式非常紧凑和独立,解析之后是一种 JSON 格式.
Security Assertion Markup Language (SAML): 一种基于 XML 的开放数据格式,SAML 允许企业应用程序和内部、外部程序无缝连接.
LDAP: 可以把轻量目录访问协议(Lightweight Director ...
JWT
参考文献
了解 JWT Token 释义及使用
JSON Web Algorithms (JWA)
JWT 简介、陷阱及建议
JSON Web Token Best Current Practices
概念
JSON Web Token (JWT,RFC 7519),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519)。该 token 被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该 token 也可直接被用于认证,也可被加密。
使用场景
授权:这是使用 JWT 最常见的场景。用户登录后,每个后续请求都将包含 JWT,从而允许用户访问该令牌允许的路由、服务和资源。单点登录是当今广泛使用 JWT 的一项功能,因为它的开销很小并且能够轻松地跨不同域使用。
信息交换:JSON Web 令牌是在各方之间安全传输信息的好方法。因为 JWT 可以进行签名(例如,使用公钥/私钥对 ...
DICOM-基于dcm4chee搭建PACS系统
参考文献
Centos Docker环境下安装Dcm4che归档服务
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker
镜像
Repository
Tag(s)
Description
说明
dcm4che/slapd-dcm4chee
2.6.3-30.0
OpenLDAP server (slapd) with schemas and default configuration for dcm4che Archive 5
OpenLDAP 服务器 (slapd),具有 dcm4che Archive 5 的架构和默认配置
dcm4che/postgres-dcm4chee
15.2-30, 14.7-30, 13.10-30, 12.14-30, 11.19-30, 10.23-30, 9.6.24-30, 9.4.26-30
PostgreSQL 15/14/13/12/11/10/9.6/9.4 for dcm4che Archive 5
用于 dcm4che 的 Po ...
医疗-医院相关名词简称说明
参考文献
医疗软件行业关键概念扫盲
Top 10 Open source & free HIS (Hospital Information systems) and EHR solutions
简称
系统
HIS(Hospital Information System)医院信息管理系统 包含门诊和住院两部分,以药品和收费为主
CIS(Clinical Information System)临床信息系统;
LIS(Laboratory Information Management System)实验室(检验科)信息管理系统;
EMR(Electronic Medical Record)电子病历
PACS(Picture Archiving and Communication Systems)影像归档和通信系统;
RIS(Radiology Information System)放射科信息管理系统;
CAD(Computer Aided Design)计算机辅助检测软件系统.
CDR ( Clinical Data Repository) 临床数 ...
读书笔记-高性能MySQL(第四版)
注: 支持版本MySQL8.0
第一章 MySQL架构
MySQL的逻辑架构
最上层的客户端锁包含的服务并不是MySQL独有的,大多数基于网络的客户端/服务器工具或服务器都有类似的服务,包括连接处理,身份验证,确保安全性等.
第二层是比较有意思的部分.大多数MySQL的核心功能都在这一层,包括查询解析,分析,优化,以及所有的内置函数(例如,日期,时间,数学和加密函数),所有跨存储引擎的功能也在这一层实现:存储过程,触发器,视图等.
第三层是存储引擎层.存储引擎负责MySQL中数据的存储和提取.服务器通过存储引擎API进行通信.这些API屏蔽了不同存储引擎之间的差异,使得他们对上面的查询层基本上是透明的.存储引擎层还包含几个底层函数,用于执行诸如"开始一个事务"或者"根据主键提取一行记录"等操作.但存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应服务器的请求.
连接管理和安全性
默认情况下,每个客户端连接都会在服务器进程中拥有一个线程,该连接的查询只会在这个单独的线程中执行,该线程驻留在一个内核或者CPU上.
服务器 ...