《高效程序员的45个习惯》读书摘抄笔记

推荐序二-李剑

厨房脏了就擦一下,总比满墙都是油烟以后再去清理的代价小得多。确实之前自己一个人租房住的时候,很懒,每次打扫厨房都是脏到不忍直视的地步,清理费事费力;有对象后,一块住,每次洗完碗后都会简单擦拭墙壁和台面,时间很短,举手之劳,再也没有单独拿出时间来对厨房进行打扫;
有价值的东西——比如回顾、测试、重构,一切有利于团队建设、提高生产力的实践都应该频繁且持续做,然后日积月累就养成了习惯;在项目开发中,就需要养成一个好的习惯,但是好的习惯养成很难,需要坚持下去;《把时间当做朋友》中提到:“所有学习上的成功,都只靠两件事:策略和坚持,而坚持本身就应该是最重要的策略之一”。
**那么,当我们决定做一件事情的时候,首先就要多问问自己:为什么要做这件事情?它所带来的好处是什么?如果不做它又会有哪些坏处?有了清晰的目的和思路后再去做事,遇到变化时就知道孰轻孰重,该怎么调整计划,同时也不至于被重复和乏味消磨了一时的意气。翻开本书之后,你同样也该对自己提问:“为什么要有自动验收测试,有了足够的单元测试是不是就能保证质量了?”“写自动验收测试有哪些成本,会带来哪些收益?”只有明白了“为什么做”,才能够解决“如何做”的问题。**在平时的工作和生活中,我们要多提问,多思考,多总结,这样才能会不断进步。在有益处的地方持续发力,在消极方面的事情减少付出和时间上的投入,一点一滴的持续汇聚为成功的源头;

译者序-安川

它注重于培养软件开发者的态度、原则、操守、价值观,即识、胆、气、劲、神是也;

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

**不管路走了多远,错了就要重新返回。**可以理解为在软件开发的过程中,如果发现误入了错误方向,就需要及时调整方向,并且能够把所有错误全部纠正回来。**但是很多时候,开发人员发现自己走错路后,却不愿意立即回头,而是抱着迟早会步入正轨的侥幸心理,继续错下去。人们会想,或许差不多少吧,或许错误不像想象的那么严重。**如果这种念头占据了一席之地,那么写出一个偏离预期目标,满是陷阱的软件,就不会太远了。
软件开发更像是在冲浪——一直处于动态、不断变化的环境中。
在冲浪现场,每次波浪都是独一无二的,冲浪的动作也会各不相同。
在软件开发领域里,在项目开发过程中出现的需求变化和挑战,就是你在冲浪时要应对的海浪——它们从不停止并且永远变化,像波浪。
软件项目的成败,依赖于整个项目团队中所有开发成员的技术水平,对他们的培训,以及他们各自的能力高低。就像成功的冲浪手一样,研发人员必须是技术扎实、懂得掌握平衡和能够敏捷行事的人。不管是预料之外的波浪冲击,还是预想不到的设计失败,在这两种情况下敏捷都意味着可以快速地适应变化;

敏捷的精神

**世上应该有一种更好的软件开发方法——只关注真正重要的事情,少关注哪些占用大量时间而不甚裨益的不重要的事情。**哪些事情是真正要聚焦处理的重要事情?哪些事情是占用了大量时间的不重要事情?比如占用大量时间的无效讨论会议时间?
敏捷开发宣言:**一种把以人为本、团队合作、快速响应变化和可工作的软件作为宗旨的开发方法。**可以快速的响应变化,强调团队合作,研发专注于具体可行的目标(实现真正可以工作的软件),这就是敏捷的精神,将软件开发的实际重点转移到一种更加自然和可持续的开发方式上。要求团队中的每个人(包括与团队合作的人)都具备职业精神,并积极期望项目能够获得成功,具有专业的工作态度(每个人都希望尽最大可能做好自己的工作)是关键。
**事实上,只要有人继续使用这个软件,开发就没有真正结束。我们进行的是持续开发、持续反馈。**研发阶段在整个软件周期中占用时间很短,对于各种软件来说,变化的用户需求和发展的技术,就需要时时改变代码功能;只要这个软件有一天在被客户使用,那么就会有问题的反馈,需求的提出,这些都是代码逻辑发生改变的源泉之一;
**越早发现问题,就越容易修改问题,所以应该就在此时此刻把问题修复;**项目代码的实现的过程其实是一个简单功能拼凑复杂功能,再从复杂功能整理抽象出不同层次结构的软件框架的过程;前期在做各种功能的预研和小例子的实现都很简单,中后期设计软件的框架就很复杂。有句名言“把事情变复杂很简单,把事情变简单很复杂”,在不断扩展,不断变化的程序开发、修改、维护的过程中,软件的代码结构就可能如同长时间没有清理的厨房一样,四处油烟,但是不同的是软件代码不是可视化的,不像厨房的现状可以直接呈现在研发的面前,对某些人来说能够维护好已经是捉襟见肘,谈何迭代更新,更别说人员的流失,业务的不熟悉人员紧急加入需求,想想就很头疼;
持续前进的开发思想根植于敏捷方法中。不但应用于软件开发的生命周期,还应用于技术技能的学习、需求采集、产品部署、用户培训等方面。包括了软件开发各个方面的所有活动;
软件开发是一项非常复杂的智力活动,你遗留下来的任何问题,要么侥幸不会发生意味,要么情况会变得更糟糕,慢慢恶化知道变得不可控制。当问题积累到一定程度的时候,事情就更难解决,最后无法扭转。面对这样的问题,唯一有效的解决办法就是持续地推进系统前进和完善;
  要防微杜渐,把问题解决在萌芽状态;
  要探索未知领域,在大量成本投入之前先确定其可行性;
  要知错能改,在事实面前主动承认自己的所有错误;
  要自我反省,经常编码实战,加强团队协作精神;

敏捷的修炼之道

敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善;
敏捷团队是一个小型团队,团队所有成员在一起工作,最好有独立的工作空间,一起共享代码和必要的开发任务,而且大部分时间都能在一起工作。同时和客户或者软件的用户紧密工作在一起,并且尽可能早且频繁地给他们演示最新的系统;要不断从自己写的代码中得到反馈,并且使用自动化工具不断地构建和测试系统。**研发中的重构:在功能不变的情况下,重新设计部分代码,改善代码的质量。**重构的意义是软件开发中不可或缺的一部分——编码永远没有真正意义上的“结束”。
要以迭代的方式进行工作:确定一小块时间(一周左右)的计划,然后按时完成它们。给客户演示每个迭代的工作成果,及时得到他们的反馈(这样可以保证方向正确),并且根据实际情况尽可能频繁地发布系统版本让用户使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑山老妖的笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值