您的位置:首页 > 职场人生

高效程序员100条建议总结

2014-10-24 19:14 381 查看
1 不管路走多远,错了就要重新返回。

2 开发要持续不断,切勿时断时续。

3 持续注入能量。

4 敏捷开发就是一个高度协作的环境中,不断地使用反馈进行自我调整和完善。

5 先难后易。

我们首先要解决困难的问题,把简单的问题留到最后。

6 选定了要走的路,就是选定了它通往的目的地。

7 指责不能修复bug。

把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。

8 防微杜渐。

9 不要孤立地编码。

10 使用单元测试。

单元测试帮助你很自然地把代码分层,分成很多可管理的小块,这样就会得到设计更好、更清晰的代码。

11 不要坠入快速的简单修复之中。

要投入时间和精力保持代码的整洁、敞亮。

12 消极扼杀创新。

负面的评论和态度扼杀了创新。

13 有效的特殊技术:

设定最终期限。

逆向思维。

设立仲裁人。

支持已经做出的决定。

14 对事不对人。

让我们骄傲的应该是解决了问题,而不是比较出谁的主意更好。

15 做正确的事。

要诚实,要有勇气去说出实情。有时,这样做很困难,所以我们要有足够的勇气。

16 即使你已经在正确的轨道上,但如果只是停止不前,也仍然会被淘汰出局。

17 如何才能跟上技术的步伐呢?

迭代和增量式的学习。

了解最新行情。

参加本地的用户组活动。

参加研讨会议。

如饥似渴地阅读。

跟踪技术变化。

18 提供你和团队学习的更好平台。

通过午餐会议可以增进每个人的知识和技能,并帮助大家聚集一起进行沟通交流。

19 根深蒂固的习惯不可能轻易地就丢弃掉。

20 学习新的东西,丢弃旧的东西。

在学习一门新技术的时候,要丢弃会阻止你前进的旧习惯。毕竟,汽车要比马车车厢强得多。

21 不停地问为什么。

不能只满足于别人告诉你的表面现象。要不停地提问直到你明白问题的根源。

22 解决任务,在事情变得一团糟之前。

保持事件之间稳定重复的间隔,更容易解决常见的重复任务。

23 没有任何计划在遇敌后还能继续执行。

固守昨天的计划而无视环境的变化会带来灾难。

24 决定什么不该决定。

25 让你的客户做决定。

开发者、经理或者业务分析师不应该做业务方面的决定。用业务负责人能够理解的语言,向他们详细解释遇到的问题,并让他们做决定。

26 设计满足实现即可,不必过于详细。

27 如果你自己都不清楚所谈论的东西,就根本不可能精确地描述它。

28 战略设计与战术设计。

29 好设计是一张地图,它也会进化。好的设计应该是正确的,而不是精确的。

30 盲目地为项目选择技术框架,就好比是为了少交税而生孩子。

31 不要开发你能下载到的东西。

你的代码写的越少,需要维护的东西就越少。

32 新技术就应该像新的工具,可以帮助你更好地工作,它自己不应该成为你的工作。

33 已提交的代码应该随时可以行动。

任何时候只要你没有准备好,那就是敌人进攻你的最佳时机。

34 保持你的项目时刻可以发布。

保证你的系统随时可以编译、运行、测试并立即部署。

35 千万不能让系统既不可以发布,又不可以撤销。

36 绝不要做大爆炸式的集成。

37 提早集成,频繁集成。

代码集成是主要的风险来源。要想避免这个风险,只有提早集成,持续而又规律地进行集成。

38 质量保证人员应该测试部署过程。

39 一开始就实现自动化部署应用。

使用部署系统安装你的应用,在不同的机器上用不同的配置文件测试依赖的问题。质量保证人员要像测试应用一样测试部署。

40 需求就像是流动着的油墨。

41 给客户演示所完成功能的时间与得到客户需求的时间间隔越长,那么你就会离最初需求越来越远。

42 清晰可见的开发。在开发的时候,要保持应用可见。

每隔一周或者两周,邀请所有客户,给他们演示最新完成的功能,积极获得他们的反馈。

43 演示是用来让客户提出反馈的,有助于驾驭项目的方向。

如果缺少功能或者稳定性的时候,不应该拿来演示,那只能让人生气。

44 给我一份详细的长期计划,我就会给你一个注定完蛋的项目。

45 增量开发。

发布带有最小却可用功能块的产品。每个增量开发中,使用1~4周左右迭代周期。短迭代让人感觉非常专注且具效率。



46 固定的价格就是保证要背叛承诺。

软件项目天生就是变化无常的,不可重复。如果要提前给出一个固定的价格,就几乎肯定不能遵守开发上的承诺。

47 基于真实工作的评估。

让团队和客户一起,真正地在当前项目中工作,做具体实际的评估。由客户控制他们要的功能和预算。

48 一步行动,胜过千万专家的意见。

49 编写能产生反馈的代码。

50 单元测试的理由:

单元测试能及时提供反馈。

单元测试让你的代码更加强壮。

单元测试是有用的测试工具。

单元测试是让你自信的后台。

单元测试是解决问题时的探测器。

单元测试是可信的文档。

单元测试是学习工具。

51 使用自动化的单元测试。

好的单元测试能够为你的代码问题提供及时的警报。如果没有到位的单元测试,不要进行任何设计和代码修改。

52 编码之前,先写测试。

53 好的设计并不意味着需要更多的类。

54 先用它再实现它。

将TDD作为设计工具,它会为你带来更简单更有效的设计。

55 使用自动化会节省时间。

56 不同环境,就有不同问题。

使用持续集成工具,在每一种支持的平台和环境中运行单元测试。要积极地寻找问题,而不是等问题来找你。

57 为核心的业务逻辑创建测试。

让你的客户单独验证这些测试,要让它们像一般的测试一样可以自动运行。

58 专注于你的方向。

59 度量剩下的工作量。

不要用不恰当的度量来欺骗自己或者团队。要评估那些需要完成的待办事项。

60 每一个抱怨的背后都隐藏了一个事实。

找出真相,修复真正的问题。

61 没有愚蠢的用户。

只有愚蠢、自大的开发人员。

62 如果代码问题解决不了,也许可以考虑通过修改文档或者培训来弥补。

63 任何一个笨蛋都能够让事情变得越来越笨重、越来越复杂、越来越极端。

需要天才的指点以及许多的勇气,才能让事情向相反的方向发展。

64 设计软件有两种方式。

一种是设计得尽量简单,并且明显没有缺陷。另一种方式是设计得尽量复杂,并且没有明显的缺陷。

65 PIE原则:

代码必须明确说出你的意图,并且必须富有表达力。这样可以让代码更易于被别人阅读和理解。代码不让人迷惑,也就减少了发生潜在错误的可能。一言以蔽之,代码应意图清晰,表达明确。

66 要编写清晰的而不是讨巧的代码。

向代码阅读着明确表明你的意图。可读性差的代码一点都不聪明。

67 不要明日复明日。

如果现在不做的话,以后你也不会做的。

68 有意图的编程并不是意味着创建更多的类或者类型。这不是进行过分抽象的理由。

69 不要用注释包裹你的代码。

70 良好的命名可以向读者传递大量的正确信息。

要尽量避免使用神秘的变量名。

71 用注释沟通。

使用细心选择的、有意义的命名。用注释描述代码意图和约束。注释不能替代优秀的代码。

72 没有最佳的解决方案。

73 动态评估权衡。

考虑性能、便利性、生产力、成本和上市时间。

74 过早的优化是万恶之源。

75 要休息的话,就好好的休息。休息时请远离键盘。

76 简单不是简陋。

直觉不是魔术,它是经验和技能的厚积薄发之产物。

77 开发可以工作的、最简单的解决方案。

除非有不可辨驳的原因,否则不要使用模式、原则和高难度技术之类的东西。

78 简单、可读性高的代码。

79 让类的功能尽量集中,让组件尽量小。

要避免创建很大的类或组件,也不要创建无所不包的大杂烩类。

80 当你需要一只袜子的时候,一盒棉线不能带给你任何帮助。

81 将命令与查询分离开来。

82 告知,不要询问。

不要抢别的对象或是组件的工作。告诉它做什么,然后盯着你自己的职责就好了。

83 针对is-a关系使用集成;针对has-a或uses-a关系使用委托。

84 相对继承来说,委托更加灵活,适应力更强。

85 通过替换代码来扩展系统。

通过替换遵循接口契约的类,来添加并改进功能特性。要多使用委托而不是继承。

86 你也许会对木匠那毫无差错的工作印象深刻。

但我向你保证,事实不是这样的。真正的高手只是知道如何亡羊补牢。

87 不要在同一处跌倒两次。

88 维护一个问题及其解决方案的日志。

保留解决方案是修复问题过程的一部分,以后发生相同或类似的问题时,就可以很快找到并使用了。

89 警告就是错误。

将警告视为错误。签入带有警告的代码,就跟签入有错误或者没有通过测试的代码一样,都是极差的做法。签入构建工具中的代码不应该产生任何警告信息。

90 用原型进行分离。

91 对问题各个击破。

在解决问题时,要将问题域与其周边隔离开,特别是在大型应用中。

92 处理或是向上传播所有的异常。

不要将它们压制不管,就算是临时这样做也不行。在写代码时要估计到会发生的问题。

93 展示有用的错误信息。

提供更易于查找错误细节的方式。发生问题时,要展示出尽量多的支持细节,不过别让用户陷入其中。

94 使用立会。立会可以让团队达成共识。保证会议短小精悍不跑题。

95 不可能在PowerPoint幻灯片中进行编程。

96 教学相长。

成为指导者。分享自己的知识很有趣—付出的同时便有收获。还可以激励别人获得更好的成果,而且提升了整个团队的实力。

97 准备好后再共享代码。

绝不要提交尚未完成的代码。故意签入编译未通过或是没有通过单元测试的代码,对项目来说,应被视作玩忽职守的犯罪行为。

98 做代码复查。复查所有代码。

99 及时通报进展与问题。

100 一灯能除千年暗,一智能灭万年愚。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: