正交性
所谓正交性(orthogonal 意为正交的),就是设计的维度与其他维度完全隔离,一个正交的设计/值域设计,其变化绝不会受其他正交维度影响,也不会影响其他正交维度。
我们可以把 API 设计成正交的。这样 API 有独立变化的空间的。
我们可以把问题域切分清楚。问题域之间完全不相互干涉(注意跨问题域问题)。
我们可以把变量、字段、列设计成正交的。这样不同业务场景下,列之间的赋值不会相互覆盖。
数据分析
DW(Data Warehouse)数据仓库存储是一个面向主题的,反应历史变化数据,用于支撑管理决策。
ODS(Operational Data Store)操作型数据存储,存储的是当前的数据情况,给使用者提供当前的状态,提供即时性的、操作型的、集成的全体信息的需求。
ODS 是数据库到数据仓库的一种过渡形式,与数据仓库在物理结构上不同,能提供高性能的响应时间, ODS 设计采用混合设计方式。
ODS 中的数据是“实时值”,而数据仓库中的数据却是历史值。一般 ODS 中储存的数据不超过一个月,而数据仓库为10年或更多。
Data Mart 为特定的应用或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。
DSS(Decision-Support System)以启发的方式对大量的数据单元进行的分析,通常不涉及数据更新。
参考:https://www ...
UML 细节
用例图泛化(generalization):泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。
扩展(extend): extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从子用例指向基用例。
UML Use Case Extend。
包含(include): include为包含关系,当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从基用例指向子用例。
注意,被扩展的 ...
分治策略
步骤分解(divide):将问题划分为一些子问题,子问题的形式与原问题一样,只是规模更小。解决(conquer):递归地杰出子问题。如果子问题的规模足够小,则停止递归,直接求解。合并(Combine):将子问题的解组合成原问题的解。
递归式递归式(recurrence)可以帮我们刻画整个算法的运行时间。
一个常见刻画递归式的方法是画递归树。通过递归树的枝叶来试图把整个算法的步骤勾勒出来。
日志问题
Log4j 的架构设计
http://www.cnblogs.com/Fskjb/archive/2011/01/29/1947592.htmlhttps://blog.csdn.net/qq_35246620/article/details/53790350https://blog.csdn.net/liuxiao723846/article/details/52126936
依赖123456789101112<dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.13.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> ...
疑难汉字
字
读音
含义
刳
kū
从中间破开;破开后再挖空。 「刳竹」
剡
yǎn
削;削尖 [sharpen]
scoop 安装
首先要有一个 Powershell 3.0 与 .Net 4.5 以上的环境。
在 PowerShell 中输入:
1iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
如果没有网络问题,则可以直接安装成功(可能需要修改一些与 admin 有关的 policy)。如果安装不成功,则删除C:\Users\LC\scoop再试一次。
12# 安装 curlscoop install curl
MySQL 中的引号
标准的 SQL 中只允许用单引号表达字符串类型。有些 SQL 方言允许使用双引号包裹字符串,如 MySQL,有些则不允许,如 Oracle。
反引号是专门用来表达 identifier 的。
MySQL 字符串和数字隐式转换的 pitfall
Data truncation: Truncated incorrect
不要小看 MySQL,它出 warning 就一定有错误。
不要滥用 MySQL 字符串到decimal,和 decimal 到 string 的转换。这样有时候 MySQL 不只是 warning。
散列算法
MD5 易于碰撞。
SHA1 是 git 默认的 commit 用的散列算法。
SHA2 是第二代安全散列算法,合共有六种。 SHA256 是其中一种。
参考:
https://blog.csdn.net/chenze666/article/details/79730753 https://www.keycdn.com/support/sha1-vs-sha256