「程序员修炼之道」【更新中】笔记

自我修养:

  1. 频繁的高强度的外部刺激(项目)和自主意识(自身训练)的反复提醒是加速知识内化的两个途径,应该通过实践获得知识。
  2. 关心自己的技艺
  3. 思考关于自己的工作
  4. 注重实效的程序员有的特征:承认自己的错误,并为其负责,不去找接口,找到错误原因,想出什么能挽回局面。承认自己的错误,并为其负责,不去找接口,找到错误原因,想出什么能挽回局面。
    1. 早期采纳者:有技术直觉,很快就能把握它
    2. 好奇:想知道是怎么做到的
    3. 批判的思考
    4. 有现实感:会设法理解每个问题的本质,事情有多困难,需要多长时间等
    5. 多才多艺:不止会一方面的技术
  5. 承认自己的错误,并为其负责,不去找接口,找到错误原因,想出什么能挽回局面。
  6. 不要容忍破窗户(低质量的代码)存在,应当及时修正,否则根据破窗理论,代码会越来越烂。
  7. 每个人都会捍卫自己的资源,导致项目启动难,称为“启动杂役”。这时,应充当改变的催化剂。同时,应当记住大图景,而不是自身的一点内容。
  8. 使软件质量成为一个需求问题,不应该永不止境的关注细节,因为会耗费大量精力。并且,代码不可能完美。
  9. 知识资产随着新技术、语言、环境的出现,知识可能会变得过时,应当经营自己的知识资产:
    1. 定期学习新知识
    2. 多元化:掌握的不同知识越多,就越有价值,同时可抗因为技术变化带来的过时风险
    3. 管理风险:不要只掌握一个技术
    4. 低买高卖:新技术可能会被低估,但是如果是流行技术的最先采用者,可能带来回报
    5. 重新评估和平衡:不断的更新学习计划,顺应技术变化
  10. 定期为自己的技术投资,保证持续学习:
    1. 学习一种新语言
    2. 阅读一本技术书籍
    3. 阅读非技术书籍
    4. 寻找有趣的课程并上课
    5. 参加技术会议
    6. 实验不同的软件环境
    7. 跟上技术潮流
    8. 通过网络学习
  11. 提问:
    1. 确切的知道自己想要问什么
    2. 小心的组织自己的问题,记住自己在求助,不是要求别人回答
    3. 组织好问题后,通过搜索进行问题答案寻找
    4. 决定在什么场合提问
    5. 耐心等待,并感恩。
  12. 交流
    1. 了解听众需要什么?
      1. 你想让他们学到什么?
      2. 对你讲的什么感兴趣?
      3. 他们有多富有经验?
      4. 他们想要多少细节?
      5. 你想要谁拥有这些信息?
      6. 如何促使他们听你说话?
    2. 方式:
      1. 选择交流时机
      2. 选择风格
      3. 让文档美观
      4. 让听众参与
      5. 做倾听者
    3. 回复他人

代码:

  1. DRY:不要重复自己,让复用变得容易
    1. 强加的重复:不能避免的重复
    2. 无意义重复:有的属性可以通过计算得到,不应重复,一定要重复
    3. 无耐心的重复:对代码进行拷贝修改式的复用
    4. 开发者间的重复:不同团队对一段代码的多次编写
  2. 正交性:两部分解耦,变化不应依赖于另一部分。可撤销性:不存在最终决策。思考代码里哪里会变更,写得低耦合,方便对底层组件进行更换。
    1. 引入工具和库时,思考会不会引起当前代码发生变动。
    2. 编码:
      1. 让你的代码保持解耦
      2. 避免使用全局数据
      3. 避免写相似的函数
  3. 可撤销性:不存在最终决策。思考代码里哪里会变更,写得低耦合,方便对底层组件进行更换
  4. 曳光弹:先用曳光弹找到目标。即编写代码,看代码是否能完成目标。曳光弹可以给客户展示沟通,同时搭建了一个可在里面工作的架构。原型是用过就扔的代码,曳光弹可成为代码的一部分。

团队:

原文地址:https://www.cnblogs.com/tomoka/p/12272019.html