第一章 设计模式-引言

第一章 引言

为什么面向对象设计困难?

设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。

  • 你必须找到相 关的对象,
  • 以适当的粒度将它们归类,
  • 再定义类的接口和继承层次,
  • 建立对象之间的基本关 系。
  • 你的设计应该对手头的问题有针对性,同时对将来的问题和需求也要有足够的通用性。
  • 你也希望避免重复设计或尽可能少做重复设计

spring 自动装配集合类型

spring 自动装配集合类型

问题

有个托管bean中存在这么一个属性

@Autowired private Map<String, Processor> processors;

整个context的 xml配置文件和 *.java文件中排查没有对该属性的初始化。通过调试应用初始化过程发现spring可以对集合类型进行自动装配。

Insufficient space for shared memory file

Insufficient space for shared memory file解决办法

问题

启动Java应用时报错

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:    /tmp/hsperfdata_work/10700 Try using the -Djava.io.tmpdir= option to select an alternate temp location.

Estimation,Pressure,Teams and Projects,Mentoring, Apprenticeship, and Craftsmanship

十、预估

  1. 预估是什么 承诺是关于确定性的,是必须要做到的。 预估是一种猜测。不包含任何承诺的色彩。 暗示性承诺,要区分预估和承诺。
  2. PERT 计划评审技术(Program Evaluation and Review Technique),三元分析法 对预估的计算方法,预估编程概率分布,让上级看懂 O 乐观预估。一切顺利需要时间。 N 标称预估。概率最大的数字。 P 悲观预估,是最糟糕的数字。 u= (O + 4N + P)/6 u=任务的期望完成时间 q=(P-O)/ 6 q=任务的概率分布的标准差,越大,也不确定
  3. 预估任务 拇指会议: 规划扑克: 类似拇指会议 关联预估:全员参与排序
  4. 大数定律 大任务拆小重新评估,最好按工时或天为单位

UAT,Time Management

七、验收测试

  1. 需求的沟通 产品的设想,经不起电脑前真刀真枪的考验
    • 过早精细化: 业务没启动,开发就要精确知道最后得倒什么;开发还没有评估项目,业务就想精确知道最后要交付什么
      1. 不确定原则。观察者响应/不确定原则。看到时就会冒出更好的想法
      2. 预估焦虑。评估会存在变数,即使掌握全面准确的信息。
    • 迟来的模糊性:需求中每一点模糊指出,都对应着业务方的一点分歧
  2. 验收测试