1、在所有的弱点中,最大的弱点就是害怕弱点暴露。
负责任的工作,注重实效性。
2、提供各种选择,不要找蹩脚的接口。
面对问题的时候,要想着如何解决问题,而不是找理由逃避。
3、软件腐烂(熵),不容忍破窗户,用中文说就是:勿以善小而不为。
低劣的设计、错误的决策、糟糕的代码需要发现一个修复一个,否则将出现无法控制的局面,造成巨大的损失。
4、灭火。消防员在灭火的同时,不忘记保持地毯的干净。
即使在存在最后交付期限,发布日期,会展演示等强制性要求的时候,仍然要保持代码的整洁和设计的良好,这样才能保证软件的质量。
5、温水煮青蛙,做变化的催化剂,要是加入什么会更好,提出自己的想法,让系统变得更加完善。
做变化的催化剂,记住大图景。
6、使质量成为需求问题,让用户参与权衡,照顾用户的需求,需求型项目尤为重要。
知道何时止步,追求质量的同时,不忘记稳定性和实用性。
7、知识上的投资总能得到最好的回报。——富兰克林。
定期投资:每年学习一种语言。每季度阅读一本技术书籍、非技术书籍。有机会的话,去听听别人讲的课。参与本地用户组织,认识更多业内情况。实验不同的系统环境(Unix、Windows、Linux等)。跟上潮流。上网。
多元化:
管理风险:
低买高买:
重新评估和平衡:
8、学习的机会,网络,本地,朋友,公司,书籍。
批判的思考,批判的思考你听到的读到的。
交流,我相信被打量比被忽略好。
9、你想要说什么,了解听众,选择时机,选择风格,让文档美观,让听众参与,做倾听者,回复他人,你说什么和你怎么说同样重要。
二、不要重复你自己。
1、 重复是怎么样发生的:强加的,觉得无可选择,似乎只能重复。————————文档与代码:糟糕的代码才需要许多注释,简单明了的注释即可。
无意的,没有意识到。——————“DRY原则”,不要重复粘帖你自己的代码。Don't repeat yourself.因为重复黏贴会带来很多的问题
无耐性的,偷懒,更容易。——————“欲速则不达”
开发者之间的重复。团队多人写了重复代码,未进行公共模块的抽离。————————交流专人负责
2、正交性:消除无关事物之间的影响。高内聚,低耦合。模块化。接口化。
提高生产效益,降低风险,项目团队,项目设计,工具箱与库。
编码:让代码保持解耦,避免使用全局数据,避免编写相似的函数。
测试:单元测试。
文档:
3、可撤销性:如果某个想法是你唯一的想法,那么再也没有比这个更危险的事情了。
灵活的框架支持。
4、曳光弹:原型模型设计,进行规定性的开发,定死需求及所有未知因素及环境。
5、
三、可以为以下事物制作原型
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的繁殖的意思。
数据可视化。可以帮助分析问题。
学习一种文本操纵语言。
编写能编写代码的代码——代码生成器。