一些关键tips的记录:
-
Care About Your Craft
-
Think! About Your Work
-
在所有的弱点中,最大的弱点就是害怕暴露弱点
-
Provide Options, Don`t Make Lame Excuses
-
Don`t Live with Broken Windows
-
欲求更好, 常把好事变糟
-
使质量成为需求
-
知识上的投资总能得到更好的回报
-
做好投资:
- 定期投资:
-
-
每年至少学习一门编程语言:不通语言解决问题的方式不一样,拓展自己的思维
-
每季度最少阅读一本技术书籍:阅读一些与项目无关的书籍,拓展视野
-
需要阅读非技术书籍:
-
上课:大学等等
-
参加本地组织:不光是听,需要参与
-
跟上潮流,上网
-
-
-
批判的思考,批判的分析你读到的听到的
-
交流(说什么跟怎样说同样重要):知道自己想要说什么;了解你的听众;选择时机;选择风格(考虑听众);让文档美观;让听众参与;做倾听者;回复他人
-
Don`t Repeat Yourself
-
-
重复的产生
-
-
强加重复:无从选择
-
无意识的重复
-
无耐性的重复:偷懒,降低复杂度
-
开发者直接的重复:同一团队、不同团队之间的重复
-
-
-
正交性:表示不相互依赖、相互解耦
可撤销性:
-
如果某个想法是你唯一的想法,在没有比这个更危险的了
原型和曳光弹:
领域语言:语言的界限就是一个人世界的界限
-
根据场景选合适的语言
估算:避免意外发生
-
如何估算:
-
-
理解提问内容,理解需求
-
建立系统的模型
-
将模型分解
-
给每个参数指定值并计算答案
-
追踪你的估算能力:证明自己
-
估算项目进度
-
在被要求进行估算时,多些时间进行思考,不要急于给出答案
-
-
要修正问题,而不是发出指责
-
不要恐慌
注重实效的程序员
-
不相信任何人能写出完美的代码,包括自己
-
如果确信不可能发生,请用断言
-
关注细节,细节,细节
-
要配置不要集成
-
用黑板协调工作流
-
不能考巧合编程,需要深思熟虑
-
不做历史的奴隶 ,不要让老代码支配新代码
-
何时重构:
-
-
重复。DRY
-
过时的知识
-
非正交的设计
-
性能瓶颈
-
-
不要搜集需求,需要挖掘商户
-
需求阶段切忌过度设计,需要足够抽象,区别于架构设计
-
解决问题的方法有很多种,想一想是否有更好的方法,必须以这个方法解决吗?
-
关注自己的疑虑,等真正准备好了再开始
-
一切都要自动化
-
早测试,常测试,自动测试
-
要通过全部测试,编码才算完成