代码大全学习笔记1

建立试验性原型

  1. 试验性原型是为了解决如何判断你设计是否存在缺陷的问题;
  2. 试验性原型的定义为:写出用于回答特定设计问题的、量最少且能够随时扔掉的代码的这项活动;
  3. 试验性原型代码只是一个指导方向,并不是真正的产品代码;
  4. 只有设计问题够明确够具体,才能进行试验性原型代码的进行,否则就没有任何意义;
  5. 为了程序员能够指导试验性原型代码是可以随时扔掉的代码,可以用非项目的语言去实现(比如项目用的是c语言,可以用python或者c++来实现,那么程序员就只能扔掉这段代码了)

合作设计

  1. 其实就是三个臭皮匠赛过诸葛亮的俗语,最后在自己形成思路之后,能够与其他人交流,这样既可以找出问题,也可能找到新的思路;
  2. 如果只是提高创造力并引入更多的备选方案的话,那么最好选择一些非正式的方式来进行交流;如果方案已经确定,那么最好选择一种正规的方式来进行核查以找到方案中的错误;

要做多少设计才够

  1. 在这里插入图片描述
  2. win10截屏快捷键是win键+shift+s;
  3. 如果无法预知项目的困难,那么最好先做出最详细的设计方案;
  4. 应该花更多的精力寻找方案比如提出更多的备选方案,而不是简简单单的提出一个方案,花更多的精力去完成这个平庸的方案;

记录你的设计成果

  1. 将设计文档插入到代码里:这种注释一般放在代码文件的开头,优点是对于写这部分代码的程序员是立即可取的,而且可以保持文档与代码的同时更新;
  2. 用wiki来记录设计讨论和决策
  3. 写总结邮件:每次讨论都进行纲要的总结,保证每次讨论都有收获和结果;
  4. 使用数码相机
  5. 保留设计挂图:将设计图纸放到巨大的图纸上,放在显眼的地方,便于阅览和修改;
  6. 使用CRC卡片;
  7. 在适当的细节层创建UML图;

对流行的设计方法的评论

你在应用某种设计时越教条,你所能解决的现实问题就越少;所以不要停留在你想到的第一套方案,而是寻求合作,探求简洁,在提出的原型的基础上进一步迭代;

软件设计,一般性问题

这部分只是介绍了一些数据:

  1. 《面向对象的思考过程(第二版)》 weisfeld matt,这是一本易于理解的介绍面向对象编程的数据,它更适合初学者;
  2. 《OOD启思录》Riel Arthur,这本书关注在类一层的设计,易于理解;
  3. 《Program on purspose: Essays on Software Design》 Plauger , P.J. 此书中包含很多有关软件设计的好点子,作者精通大量的设计方法;
  4. 《UNIX编程艺术》,此书从UNIX的角度很好的研究了软件设计;

设计模式

Gamma Eric 《设计模式》是实际模式领域的开山之作;
Shalloway Alan and James 《设计模式精解》对设计模式做了深入浅出的介绍;

标准

  1. Recommanded Practice for Software Design Descriptions;这份文档包含了用于软件设计的IEEE-ANSI标准,它说明了应该把哪些文档放入软件设计文档中;
  2. Recommanded Practice for Architectural Description of Software Intensive Systems 这份文档用于创建软件架构规范的IEEE-ANSI指南;

第五章小结

  1. 软件的首要技术使命就是管理软件复杂度,以简单性作为努力目标的设计方案对此最有帮助;
  2. 简单性获取的两种方式:①减少同一时间所关注的本质性复杂度的量;②避免生成不必要的偶然的复杂度;
  3. 设计是一个启发性的过程,不要用一种方式来束缚住自己;
  4. 好的设计和程序都是迭代的,你尝试的可能性越多,你的最终设计就会越好,所以要尽可能的去尝试去迭代,即使迭代或尝试有错误,那么对于你个人来说也是一种提升;
  5. 信息隐藏是个非常有价值的概念;

猜你喜欢

转载自blog.csdn.net/u012850592/article/details/89412426