Chen Jian

如无必要,勿增实体 — 无用接口越多,修改代码的风险越大

每当修改一个接口时,我们都要看看这个接口哪些地方在用,用的地方越多,我们就越要小心,需要回归测试的地方就越多。 所以说,应该尽量不要让接口的能力超过系统所需。比如说,如果现在只需要查询状态为“已付款”的订单,就不要写一个可以查询所有状态的万能接口;再比如,能private的接口就不要写成public。

有时候: 易读的代码不易改,易改的代码不易读

有没有同感? 比如说用了Command、Strategy模式的代码,改起来比较容易,因为解耦比较好,代码重复比较少; 而这些代码读起来却很费劲。 以Strategy模式为例,读者先要找出当前用的是哪个Strategy,回到主程序,然后再去这个Strategy子类里找出真正的处理逻辑。这其中要反复切换当前打开的类文件,并且还要用 Ctrl + T 找到具体的子类,一波三折,很费劲。

代码片段:在数据库COLUMN_NAME和Java类attrName之间互转

// firstName => FIRST_NAME private static String attrNameToColumnName(String attName) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < attName.length(); i++) { char c = attName.charAt(i); if (!(c <= ‘z’ && c >= ‘a’)) { sb.append("_"); } sb.append(c); } return sb.toString().toUpperCase(); } //FIRST_NAME => firstName private static String columnNameToAttrName(String attrName) { String …

代码片段:在数据库COLUMN_NAME和Java类attrName之间互转 Read More »

将Tomcat的控制台输出重定向到文件中

在startup.bat中,把原来 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 替换成 call "%EXECUTABLE%" run %CMD_LINE_ARGS%  > D:\Tomcat\logs\console.log 副作用是:    1.控制台看不到了    2.catalina.bat和startup.bat在同一个DOS窗口中运行

Life events

Life events can trigger a review of insurance coverage. For example, "Just married" ,  "Starting a family" and so on.

常用认证中心 (CA)

摘自《Java加密与解密的技术》 CA三巨头: VeriSign, GeoTrust, Thawte  –都很贵,但会提供一些Trial Version 一个免费组织: www.cacert.org 中国各省均设有CA机构,如北京市数字证书认证中心

基于口令加密 — PBE

PBE = Password Based Encryption 可以认为这种算法的KEY由两部分组成:   1.口令   — 人类可读的字符串,较恒久   2.盐     — 一个随机信息,相同的随机信息极不可能使用两次。

KeyPairGenerator, KeyFactory, KeyStore

待完善…. KeyGenerator    — 用于生成Symmertric Key KeyPairGenerator   –用于生成Public/Private Key对 SecretKeyFactory — 把代表对称密钥的byte[] 变回 Key对象 KeyFactory  — 把代表非对称密钥的byte[] 变回 Key对象 KeyStore  —  in-memory collection of keys and certificates