• --在所有的弱点中,最大的弱点就是害怕暴露弱点。
  • --责任是你主动担负的东西。你承诺确保某件事情正确完成,但你不一定能直接控制事情的每一个方面。除了尽你所能以外,你必须分析风险是否超出了你的控制。对于不可能做到的事情或是风险太大的事情,你有权不去为之负责。
  • --Provide Options, Don't Make Lame Excuse.
  • --要提供各种选择,而不是找借口。不要说事情做不到;要说明能够做什么来挽回局面。
  • --破窗户理论。一扇破窗户,只要有那么一段时间不修理,就会渐渐的给建筑的居民带来一种废弃感- -种职权部门不关心这座建筑的感觉。于是又一扇窗户破了。人们开始乱扔垃圾。出现了乱涂乱画。严重的结构损坏开始了。在相对较短的一段时间里,建筑的损毁得超出了业主愿意修理的程度,而废弃感变成了现实。
  • --项目慢慢地、不可改变地完全失去控制。大多数软件灾难都是从微不足道的小事情开始的,大多数项目的拖延都是一天一天发生的。系统一个特性一个特性地偏离其规范,一个又一个的补丁被打到某段代码上,直到最初的代码一点没有留下。常常是小事情的累积破坏了士气和团队。
  • --温水煮青蛙。留心大图景。要持续不断地观察周围发生的事情,而不只是你自己在做的事情。
  • --Make Quality a Requirements Issue.你所制作的系统的范围和质量应该作为系统需求的一部分规定下来。如果你给用户某样东西,让他们及早地实用,他们的反馈常常会把你引向更好的最终解决方案。
  • --但艺术家会告诉你,如果你不懂得应何时止步,所有的辛苦劳作就会遭到破坏。如果你一层又一层、细节复细节帝叠加,绘画就会迷失在绘制之中。不要因为过度修饰和过于求精而损毁完好的程序。继续前进,让你的代码凭着自己的质量站立一会儿。它也许不完美,但不用担心,它不可能完美。
  • --定期为你的知识资产投资。每年至少学习一种新语言;每季度阅读一本技术书籍;也要阅读飞技术书籍;上课;参加本地用户组织;试验不同的环境;跟上潮流;上网...
  • --当我们进行维护时,我们必须找到并改变事物的表示——那些嵌在应用中的知识胶囊。系统中的每一项知识都必须具有单一、无歧义、权威的表示。
  • --在以后的开发过程中,你可以因为性能原因而选择违反DRY原则。这经常发生在你需要缓存数据,以避免重复昂贵的操作时。其诀窍是使影响局部化。对DRY原则的违反没有暴露给外界,只有类中的方法需要注意“保持行为良好”。
  • --无耐性的重复是一种容易检测盒处理的重复形式,但那需要你接受训练,并愿意为避免以后的痛苦而预先花一些时间。
  • --在计算技术中,正交性术语用于表示不相依赖性或是解耦性,如果两个或更多事物中的一个发生变化,不会影响到其他事物,这些事物就是正交的。在设计良好的系统中,数据库代码与用户界面是正交的:你可以改动界面,而不影响数据库;更换数据库,而不用改动界面。
  • --养成不断地批判对待自己的代码的习惯。寻找任何重新进行租住、以改善其结构和正交性的机会。这个过程叫做重构,它非常重要。
  • --原型制作生成用过就扔的代码。曳光代码虽然简约,但却是完整的,并且构成了最终系统的骨架的一部分。你可以把原型制作视为在第一发曳光弹发射之前进行的侦查和情报收集工作。
  • --所以我们被教导说,要防卫性地编码。如果有任何疑问,我们就会验证给予我们的所哟信息。我们使用断言检测坏数据。我们检查一致性,在数据库的列上施加约束,而且通常对自己感到相当满意。“断言式编程”描述了一种沿途进行检查的轻松方法——编写主动校验你的假定的代码。

--未完待续

The Pragmatic Programmer 读书笔记的更多相关文章

  1. The Pragmatic Programmer 读书笔记之中的一个 DRY-Don’t Repeat Youself

     The Pragmatic Programmer读书笔记之中的一个 DRY-Don't Repeat Youself 尽管自己买了非常多软件project方面的书,可是由于时间的问题.一直没有静 ...

  2. 读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit

    读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit Author: Andrew Hunt ,David Thomas with Matt ...

  3. 《如何在大学里脱颖而出(How to Win at College)》读书笔记

    <如何在大学里脱颖而出(How to Win at College)>读书笔记 图书简介 中文版: 英文版: 作者卡尔·纽波特(Cal Newport)于 2004 年6月以优等生荣誉学会 ...

  4. 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)

    笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...

  5. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

    读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...

  6. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  7. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  8. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  9. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

随机推荐

  1. C++中的二级指针和指针引用函数传参

    在函数的使用过程中,我们都明白传值和传引用会使实参的值发生改变.那么能够通过传指针改变指针所指向的地址吗? 在解决这个问题之前,也许我们应该先了解指针非常容易混淆的三个属性: ①.指针变量地址(&am ...

  2. C++传递二维数字给一个自定义函数

    如果参数是多维数组,那么参数必须指明第一维意外得所有未得长度:比如你的 void tt(char a[][20])或者 void tt(char (*a)[20]) 另外这样也是可以的char *a[ ...

  3. python概念-常用模块之究竟你是什么鬼

    模块: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 说白了,就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文件所调用 ...

  4. Memcached与KVDB的区别

    Memcached将数据存储在内存中,数据易丢失,不适合对数据进行长期存储. KVDB则是将数据存储在磁盘中,数据安全性级别高,不易丢失.

  5. Ubuntu 增加全新硬盘 分区及开机自动挂载

    安装新的硬盘后.可以安装Gparted, 或者从live cd启动,然后用Gparted工具对硬盘进行分区.然后进入系统,启动Disks, 找到对应硬盘, 选择Edit Mount Options, ...

  6. Windows无法访问局域网内共享文件夹[0x800704cf,0x80070035]解决方案

    Windows7系统突然无法访问访问其他windows机器的共享文件夹,出现0x800704cf或者0x80070035错误: 解决方案如下两张图,配置与下面两张图为准,即可解决: 1:window+ ...

  7. 2016.07.13-map的使用(以leetcode1-Two Sum为例)

    map的使用 1.unordered_map和map的区别 2.如何用 3.for (int a : nums1) 4.to_string() 5.map的应用 1.unordered_map和map ...

  8. linux 配置免密码登陆

    在使用scp命令传输的时候需要密码 配置免密码登陆 ssh-keygen -t rsa (四个回车) 执行命令完成后,会生成两个文件id_rsa(私钥).id-rsa.pub(公钥) 将公钥拷贝到要免 ...

  9. discuz过滤词语无效

    1.是由于一些特殊的字导致serialize序列化错误.过滤词语在表 common_word中,序列化房子common_syscache的censor中,看看是否有特殊符号.

  10. Flip Bits

    Determine the number of bits required to flip if you want to convert integer n to integer m. Notice ...