《程序员修炼之道》70个有用的提示

转自:http://www.cnblogs.com/richardcuick/p/5627288.html

1. Care About Your Craft 关心你的技艺

2. Think!About Your Work 思考!你的工作

3. Provide Options, Don‘t Make Lame Excuses  提供各种选择,不要找蹩脚的借口

4. Don‘t Live with Broken Windows 不要容忍破窗户

5. Be a Catalyst for Change 做变化的催化剂

6. Remember the Big Picture 记住大图景

7. Make Quality a Requirement Issue 使质量成为需求问题。

8. Invest Regularly in Your Knowledge Portfolio 定期为你的知识资产投资

9. Critically Analyze What You Read and Hear 批判地分析你读到的和听到的。

10. It‘s Both What You Say and the Way You Say It 你说什么和你怎么做同等重要

11. DRY---Don‘t Repeat Yourself 不要重复你自己。

12. Make It Easy to Reuse 让复用变得容易。

13. Eliminate Effects Between Unrelated Things 消除无关事物之间的影响

14. There Are No Final Decisions 不存在最终的决定

15. Use Tracer Bullets to Find the Target 用曳光弹找到目标

16. Prototype to Learn 为了学习而制作原型

17. Program Close to the Problem Domain 靠近问题编程

18. Estimate to Avoid Surprises 估算,以避免发生意外

19. Iterate the Schedule with the Code 通过代码对进度进行迭代

20. Keep Knowledge in Plain Text 使用纯文本保存知识

21. Use the Power of Command Shells 利用命令shell的力量

22. Use a single Editor well 用好一种编辑器

23. Always Use Source Code Control 总是使用源码控制

24. Fix the Problem,Not the Blame 要修正问题,而不是发出指责

25. Don‘t Panic 不要惊慌

26. "Select"Isn‘t Broken “Select”没有问题

27. Don‘t Assume it - Prove it 不要假定,要证明。

28. Learn a Text Manipulation language 学习一种文本操纵语言

29. Write Code the Writes Code 编写能编写代码的代码。

30. You Can‘t Write Perfect Software 你不可能写出完美的软件

31. Design with Contracts 通过合约进行设计

32. Crash Early 早崩溃

33. If It Can‘t Happen, Use Assertions to Ensure That It won‘t 如果它不可能发生,用断言确保它不会发生

34. Use Exceptions for Exceptional Problems 将异常用于异常的问题

35. Finish What You Start 要有始有终

36. Minimize Coupling Between Modules 使模块之间的耦合减至最少

37. Configure, Don‘t Integrate 要配置,不要集成

38. Put Abstractions in Code ,Details in Metadata 将抽象放进代码,细节放进元数据

39. Analyze Workflow to Improve Concurrency 分析工作流,以改善并发性

40. Design Using Services 用服务进行设计

41. Always Design for Concurrency 总是为并发进行设计

42. Separate Views from Models 使视图与模型分离

43. Use BlackBoards to Coordinate Workflow用黑板协调工作流

44. Don‘t Program by Coincidence 不要靠巧合编程

45. Estimate the Order of Your Algorithms 估算你的算法的阶

46. Test Your Estimates 测试你的估算

47. Refactor Early,Refactor Often 早重构,常重构

48. Design to Test 为测试而设计

49. Test Your Software,ou Your Users Will 测试你的软件,否则你的用户就得测试

50. Don‘t Use Wizard Code You Don‘t Understand 不要使用你不理解的向导代码

51. Don‘t Gather Requirements - Dig for Them 不要搜集需求——挖掘它们

52. Work with a User to Think Like a User 与用户一同工作,以像用户一样思考

53. Abstractions Live Longer than Details 抽象比细节活得更长久

54. Use a Project Glossary 使用项目词汇表

55. Don‘t Think Outside the Box-Find the Box 不要在盒子外思考——要找到盒子

56. Listen to Nagging Doubts - Start What You‘re Ready 倾听反复出现的疑虑——等你准备好再开始

57. Same Things Are better Done than Described 对有些事情“做”胜于“描述”

58. Don‘t be Slave to Formal Methods 不要做形象方式的奴隶

59. Expensive Tools Do Not Produce Better Designs 昂贵的工具不一定能制作出更好的设计

60. Organize Around Functionality, Not Job Functions 围绕功能、而不是工作职务进行组织

61. Don‘t Use Manual Procedures 不要使用手工流程

62. Test Early.Test Often.Test Automatically. 早测试,常测试,自动测试。

63. Coding Ain‘t Done ‘Til All the Tests Run 要到通过全部测试,编码才算完成

64. Use Saboteurs to Test Your Testing 通过“蓄意破坏”测试你的测试

65. Test State Coverage,Not Code Coverage 测试状态覆盖,而不是代码覆盖

66. Find Bugs Once 一个bug只爪一次

67. Treat English as Just Another Programming language 把英语当成又一种编程语言

68. Build Documentation In ,Don‘t Bolt It On 把文档建在里面,不要栓在外面

69. Gently Exceed Your User‘s Expectations 温和地超出用户的期望

70. Sign Your Work 在你的作品上签名

时间: 2024-08-27 16:18:17

《程序员修炼之道》70个有用的提示的相关文章

程序员修炼之道读后感1

程序员修炼之道从小工到专家 到今天为止读完了该书的前两章,有了一些启发和体会,感觉有必要下下来做一些总结. 这本书用了许多列子关于软件的或不关于软件,都给了我很多感受,因为它们都是前辈们珍贵的经验,对我们以后的工作和生活将产生重要影响. 程序员应该注重实效,这是一种解决问题的风格,程序员应把问题放到更大的环境中去解决,总是设法注意更大的图景. 在所有的弱点中,最大的弱点就是害怕暴露弱点.我们程序员应该勇于承认自己的不足,这样才能更大的提高自己的能力,满足客户的要求,实现双赢.这就要求程序员必须有

Java程序员修炼之道 之 Logging(2/3) - 怎么写Log

1. 一个最基本的例子 使用Logging框架写Log基本上就三个步骤 引入loggerg类和logger工厂类 声明logger 记录日志 下面看一个例子 //1. 引入slf4j接口的Logger和LoggerFactory import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserService { //2. 声明一个Logger,这个是static的方式,我比较习惯这么写. private fina

专访《Java程序员修炼之道》作者Ben Evans

转帖这篇文章,很大成分就是认同"保守的设计思想是Java的最大优势"这句话 ------------------------------------------------------------------ [编者按]Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,它几乎是每个程序员的入门语言,而<Java程序员修炼之道>更是深受程序员欢迎的学习书籍.该书作者之一Ben Evans最近参加了上海QCon大会,图灵社区采访了这位大牛级人物. Ben Evans

《程序员修炼之道》读书笔记②

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. <程序员修炼之道>读书笔记① 弯曲,或折断 解耦与得墨忒耳法则 1.函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:它自身:传入该方法的任何参数:它创建的任何对象:任何直接持有的组件对象. 2.委托服从得墨忒耳法则,从而减少了耦合. 元程序设计 1.元数据是关于数据的数据:要用元

《程序员修炼之道》读书笔记①

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. 注重实效的哲学 我的源码让猫给吃了 1.为你的行为负责是注重实效的哲学的一块基石. 2.除了尽你所能之外,你必须分析风险是否超出了你的控制.对于不可能做到的事情或是风险太大的事情,你有权不去为之负责. 3.要提供各种选择,而不是找借口:不要说事情做不到,要说明能够做什么来挽回局面. 软件的熵 1.熵指的是某

《程序员修炼之道:从小工到专家》读书笔记

<程序员修炼之道>读书笔记 之所以选择这本书作为第一本书,是因为这本书描述了一些程序员编写大型项目时所应该遵循的最基本的原则和可以使用的最基本的工具.它没有描述某一种特定的语言.特定的算法,也没有推荐一种编程方法作为万灵药,而是介绍了实用主义的思想,并介绍了一整套方法论帮助程序员与团体避免错误.避免浪费无谓的时间,更有效地开发程序. 在此前的学习中,我所学习的知识往往是一个个点状的知识.学校安排了c语言.数据结构等课程,我自学过一点点cpp.python,甚至了解过一些web架构,但从来没有一

《程序员修炼之道》读书笔记(下)

程序员修炼之道(下) Friday, March 30, 2018 15:17 就如同我在上篇读书笔记中说的那样,这本书中的一些方法和思想,需要我们在之后的编程学习过程中一点一点的参悟和领会. 曳光弹 比如说从我的第一次个人作业中,我对书中提到的曳光弹代码就有了很深的感触:根据书中给出的例子,我对"曳光弹"的理解是MVP,最小可用产品.甚至是比MVP更简单,进一步最小化的,一段核心算法,一个可操作的简单界面...等等.避免从复杂繁重的文档和大而全的设计开始,直击要害(或者说是你认为的&

《程序员修炼之道---从小工到专家》第一章读后感

<程序员修炼之道---从小工到专家>一书由美国Andrew Hunt和David Thomas所著,主要讲述了一位程序员应当如何从个人责任,职业发展,到基本工具,实际的编程项目中发展自己.本书第一章的标题为:注重实效的哲学. 第一章整体主要从程序员个人对待团队,同事,领导,以及自己的前途发展,学习时应当持有的态度出发入手,讲述了程序员在公司中应有的职业操守和准则.作者在开篇时向我们讲述了应当如何成为一位高效的程序员,而后则是分别从各各的方面论述这一观点.首先 第一点是:要对事负责.在工作中如果

程序员修炼之道读后感

初入软件工程专业的我,在读了部分程序员修炼之道之后感觉这本书十分的有用,目前我读到的对我最有价值的就是正交行,就是在编译工程项目时一定要注意各个部分之间尽量的少牵扯联系,做到这些在我们改动某个部分的文件的内容时就就不会“打扰”到隔壁的文件夹,对后期的维护和更新有着很大的帮助,还有就是在编写代码时一定要注意代码的可撤销性因为我们的策划不是一成不变的,他很有可能在某一天就会有着会影响到之前写完的工程的某个部分,可撤销性就是在不适用这段代码时,在删除他的情况下不影响其他代码,这里面讲到了“曳光弹”,这

读书笔记-程序员修炼之道-序

前言 我们应该成为什么样的程序员 注重实效的程序员具备的特征 注重实效的个体大型的团队 它是一个持续的过程 前言 程序员修炼之道这本书已经通读了一遍,获益良多,但还是不甚理解,所以在重读一遍,顺便做一下笔记.由于自己水平有限,只能摘抄一下重要的词句了. 我们应该成为什么样的程序员 我们的知识背景源自于对计算机科学基本原理的理解,而我们的经验来自广泛的实践项目.理论与实践相结合使我们强大起来. 我们不应该局限于任何特定的方案,而是应该拥有足够广博知识背景和经验基础,这能够让我们在特定的情况下选择更