最近在技术上多了不少体悟 关键是要掌握住问题的需求 接着不断思考和尝试 避免卡在特定的规则或工具里 将重心放在隐藏在这些东西背后的核心思想。

直接看现有的工具或别人的作法很难有所体会 但自己从头边做边想 会得出自己一套理论 接着会出乎意料地更快理解这些工具和作法 毕竟在足够严苛的需求下 方法可能有些差异 背后的精神却是类似的。

比方说 若程式反应速度要求在 1ms 以内 全部资料来源都得在内存或网络 不能使用硬盘。那么 针对这种应用 单机程式能做的事就是想办法将东西塞在内存里取用

从这个角度出发 实作久了自然会理解为什么界面要开洞放入物件 为什么需要 factory 隔离生成和操作逻辑。至于是否真的有先写测试 个人觉得不是铁则 在有为测试而考虑的设计下 在必要时补测试可能更划算

再往上拉一个层次来看 解决问题的前提 本来就是如何确认问题有被解决 若无法确认问题有无被解决 用什么方法也是白搭 不知成效如何。从这个角度往下看 在设计之初就考虑测试 并不是什么新颖或强人所难的事。

但要走到这步 如同学其它东西一般 需要累积不少经验 不断思考消化 才能有自己一套系统化的想法 从而视需求调整应用的方式。