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.html https://blog.csdn.net/qq_35246620/article/details/53790350 https://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</groupI...
疑难汉字
字 读音 含义 刳 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
checklist
写代码 checklist 注意位置 注意顺序 注意初始化 注意返回值 注意注释 注意防御性编程 注意数据库性能 上线 checklist 代码变更 check 代码 配置变更 check 配置 系统变更注意上线顺序 依赖中间件变更注意配置中间件 配置中心配了吗 交互所有细节都实现了吗? 配监控和埋点 数据库变更了吗? 安全检查
JDWP 与远程调试
JDWP(Java Debug Wire Protocol),它提供了调试器和目标 JVM (target vm)之间的调试协议。 在 target vm 启动时,增加这个 JAVA_OPTS: 1JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=26310" 在服务器端,增加 remote debuging 的时候使用如下配置: 12345678# Java 9 以上-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000# Java 5-8-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000# Java 1.4.x -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,addre...