程序员修炼之道:从小工到专家
可以为以下事物制作原型
1、架构
2、新功能
3、外部数据结构及内容
4、第三方工具组件
5、性能问题
6、用户界面设计
为了学习而制作原型
怎样使用原型
1、正确性
2、完整性
3、健壮性
4、文档风格
领域模型
语言的界限就是一个人的世界的界限。
数据语言与命令语言
估算,以避免发生意外
1、估算来自哪里?
2、理解提出问题?
3、建立系统的模型
4、模型分解为组件
5、每个参数指定值
6、计算答案
项目进度的控制:
1、需求检查
2、分析风险
3、设计,实现,集成
4、用户确认(验收)
5、维护
纯文本的威力:
1、保证不过时
2、杠杆作用
3、易于测试
进步远非由变化组成,而是取决于好记性,不能记住过去的人,被判重复过去。
除了版本控制外,还需要经常编写FAQ手册,方便以后的查询及记忆,好的记忆不如烂笔头。
bug(虫子,臭虫)被描述为“恐怖的东西”,对于bug的制造者,不应该去指责,而是应该去想如何修正问题。金无赤足,人无完人。
最容易欺骗的人是一个人自己。(自我保护意思,强制性的认为自己的东西是正确的。)
要接受错误,并改造,怀疑的精神不可获取,别人的怀疑可以帮你确定自己的工作,面对怀疑,不要恐慌。
再现bug, bug的繁殖的意思。
数据可视化。可以帮助分析问题。
学习一种文本操纵语言。
1、你写不出完美的软件
2、防卫性的编码,注重实效性的编码,学会怀疑自己的代码,是否存在更好的设计。
3、当每个人都确实对你不利时候,偏执是一个好主意。
4、DBC——按照合约设计。
5、出错时要偏向用户,以用户的观点为主。
6、早奔溃,要奔溃不要破坏。
7、在自责中有一种满足感,当我们责备自己的时候,会觉得再也没有人有权责备我们。
8、检查任何可能的错误,使用断言设法监测你疏漏的错误。
9、要有始有终,分配的资源要记得释放。
10、生活不会停步不前进
11、是模块之间的耦合减至最少。
12、再多的天才也无法战胜对细节的专注。
13、将抽象放进代码,细节放进元数据。
14、容许并发,解除时间次序上的依赖,提高效率。
15、用服务进行设计。
16、
17、
18、重构:重复,非正交设计,过时的知识,性能。早重构,常重构。
19、不要试图在重构的时候增加功能。
20、重构前确定良好的测试。采取短小,深思熟虑的步骤。
21、测试你的软件,否则你的用户就得测试。
22、不要使用你不理解的向导代码。
23、不要只是搜集需求,挖掘他们。
24、与用户一同工作,以像用户一样思考。
25、抽象比细节活得更加长久。
26、使用项目词汇表。
27、把话说出来。
28、不要在盒子外面思考,要找到盒子。
29、有犹豫的人才会得以保全。
30、倾听反复出现的疑虑,等你准备好再开始。
31、启动恐惧症,挑战它。
32、是良好的判断还是拖延?
33、对于一些事情,做 胜于 描述。
34、不要做形式方法的奴隶。
35、昂贵的工具不一定能制作出更好的设计。
36、围绕功能,而不是工作职务进行组织。
37、文明通过增加文明不假思索就能完成的重要操作数目而取得进步。
38、自动化,不要使用手工流程。
39、回归测试,早测试,常测试,自动测试。
40、要到通过全部的测试,编码才算完成。
41、通过蓄意破坏,测试你的测试。
42、测试状态覆盖,而不是代码覆盖。
43、一个bug只抓一次。
44、把英语当做有一种编程语言。
45、把文档建在里面,不要栓在外面。
46、不应该出现在注释中:文件中的代码到处的函数的列表,修订历史,该文件使用的其他文件列表,文件名。
47、任何形式的文档都只是快照。在打印出来的时候就已经过时了。
48、温和的超出用户的期望。
49、你要别人怎么对你,你就怎么对人。
1、类包含抽象方法,则必须为抽象类 abstract
2、密封类 sealed修饰符
3、类的继承只有一个类,不允许多个继承,可以通过多个接口继承。
class Face:Iinterface1,Iinterface2{}
4、委托。
想要,不代表可以得到,想要,不代表有资格拥有。