读书笔记-->第一章和第二章-->《高效程序员的45个习惯》

第一章 敏捷--高效软件开发之道

不管路走了多远,错了就要重新返回

                                  ---土耳其言语

敏捷意味着可以快速地适应变化。

敏捷开发宣言

个体和交互胜过过程和工具

可工作的软件胜过面面俱到的文档

客户协作胜过合同谈判

响应变化胜过遵循计划


轻量型软件开发过程

只关注真正重要的事情,少关注那些占用大量时间而无甚裨益的不重要的事情

敏捷开发宣言:一种把以人为本、团队合作、快速响应变化和可工作的软件作为宗旨的开发方法


敏捷方法可以快速地响应变化,它强调团队合作,人们专注于具体可行的目标(实现真正可以工作的软件),这就是敏捷的精神。它打破了那种基于计划的瀑布式软件开发方法,将软件开发的实际重点转移到一种更自然和可持续的开发方式上。

它要求团队中的每个人(包括团队合作的人)都具备职业精神,并积极地期望项目能够获得成功。它并不要求所有人都是有经验的专业人员,但必须具有专业的工作态度--每个人都希望尽最大可能做好自己的工作。

开发需持续不断,切勿时续时断

continuous development,not episodic

持续前进的开发思想根植于敏捷方法中

inject energy

持续注入能量

防微杜渐,把问题解决在萌芽状态,要探索未知领域,在大量成本投入之前先确定其可行性

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

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


第二章

态度决定一切

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

                                                         --Harry Emerson Fosdick(美国基督教现代主义神学家)

敏捷方法只需要一个角色:软件开发者,任务就是和紧密客户协作,一起开发软件。敏捷依赖人,而不是依赖于项目的甘特图和里程表

集中精力,你是为做事而工作

在时间压力下,欲速则不达

对事不对人会让工作更加有效

反馈是敏捷的基础

1、做事

最高优先级是解决问题

指责不能修复bug

Blame doesn't fix bugs

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

切身感受

勇于承认自己不知道答案,这会让人感觉放心,一个重大的错误应该被当做是一次学习而不是指责他人的机会。团队成员们在一起工作,应互相帮助,而不是互相指责。

平衡的艺术

“这不是我的错”,这句话不对。“这都是你的错”,这句话更不对

如果你没有犯过任何错误,就说明你可能没有努力去工作

开发者和质量工程师(QA)争论某个问题是系统本身的缺陷还是系统增强功能导致的,通常没有多大意义。与其如此,不如赶紧去修复它

如果一个团队成员误解了一个需求,一个API调用,或者最近一次会议做的决策,那么,也许就意味着团队的其他成员也有相同的误解。要确保整个团队尽快消除误解。

如果一个团队成员的行为一再伤害了团队,则他表现得很不职业。那么,他就不是在帮助团队向解决问题的方向前几。这种情况下,我们必须要求他离开这个团队

如果大部分团队成员(特别是开发领导者)的行为都不职业,并且他们对团队目标都不感兴趣,你就应该主动从这个团队中离开,寻找更适合自己发展的团队(这是一个有远见的想法,没必要眼睁睁看着自己陷入一个“死亡之旅”的项目中)。

2、欲速则不达

防微杜渐

Beware of land mines

要理解开发过程

尽管我们在谈论理解代码,特别是在修改代码之前一定要很好地理解它,然而同样道理,你也需要了解团队的开发方法或者开发过程

你必须要理解团队采用的开发方法,你必须理解如何恰如其分地使用这种方法,为何它们是这样的,以及如何成为这样的。

只有理解了这些问题,你次啊能进行有效的改变

不要孤立地编码

Don't code in isolation

实行代码复审,不仅有助于代码更好理解,而且是发现bug最有效的方法之一

使用单元测试

use unit tests

不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。

平衡的艺术

你必须要理解一块代码是如何工作的,但是不一定需要成为一位专家。只要你能使用它进行有效的工作就足够了,不需要把它当做毕生事业

如果有一位团队成员宣布,有一块代码其他人都很难看懂,这就意味着任何人(包括原作者)都很难维护它。请让它变得简单些

不要急于修复一段没能真正理解的代码,这种+1/-1的病症始于无形,但是很快就会让代码一团糟。要解决真正的问题,不要治标不治本

所有的大型系统都非常复杂,因此没有一个人能完全明白所有的代码。除了深入了解你正在开发的那部分代码之外,你还需要从更高的层面来了解大部分代码的功能,这样就可以理解系统各个功能块之间时如何交互的.

3、对事不对人

     举例:当Lee先生在做一个新方案介绍的时候,下面有人会说:“那样很蠢!(这也就暗示着Lee先生也很蠢)”如果把这句话推敲一下,也许会好一点:“那样很蠢,你忘记考虑它要线程安全。”事实上最适合并且最有效的表达方式应该是:“谢谢,Lee先生。当我想知道,如果两个用户同时登陆会发生什么情况?

    看出其中不同了吧!

    否定个人能力

    指出明显的缺点,并否定其观点

    询问你的队友,并提出你的顾虑

    引导性的提出一个疑问,让他们自己意识到问题

    消极扼杀创新

    Negativity kills innovation

    你不需要很出色才能起步,但是你必须起步才能变得很出色---Les Brown(莱斯 布朗 全球领军励志演讲家和作家)

    如果你是一个有远见的人,就一定要特别尊重别人的意见。你是一个掌舵者,一定要把握方向,深思熟虑,吸取各方的意见。

    能容纳自己并不接受的想法,表明你的头脑足够有学识--亚里士多德

    下面是一些有效的特殊技术

    设定最终期限

    没有最好的答案,只有更适合的方案

    逆向思维

    意识到权衡的必要性

   一种客观对待问题的办法是:先积极地看到它的正面,然后再努力地从反面去认识它。目的是要找出优点最多缺点最少的那个方案,而这个好办法可以尽可能地发现其优缺点。这也有助于少带个人感情

    设立仲裁人

    支持已经做出的决定

    设计充满了妥协(生活本身也是如此),成功属于意识到这一点的团队

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

平衡的艺术

...

四、排除万难,奋勇前进

      谁去给猫系铃铛(who will bell the cat)

      当发现问题时,不要试图掩盖这些问题。而要有勇气站起来,说:“我现在知道了,我过去使用的方法不对。我想到了一些办法,可以解决这个问题--如果你有更好的想法,我也很乐意听一听--但可能会花多些时间”

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

平衡的艺术

     如果你在压力下要对代码质量做出妥协,你可以指出,作为一名开发者,你没有职权毁坏公司的资产(所有的代码)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值