读《高效程序员的45个习惯——敏捷开发修炼之道》

本书主要用平易的语言讲述了45个有助于提高程序员自身敏捷的习惯,个人感觉这种老外写的书翻译成中文就少了很多意思。

主要的45个习惯是:

  1. 做事
  2. 欲速则不达
  3. 对事不对人
  4. 排除万难
  5. 跟踪变化
  6. 对团队投资
  7. 懂得丢弃
  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. 及时通报进展与问题

有很多习惯还是很具有指导意义的,洒家确实有很多习惯正是本书中的反面典型,具体的内容在这里还是不提了,有什么问题大家可以留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java线程CAS原子操作

这次分享一些关于原子操作(CAS)的东西. 定义 CAS(Compare And Swap)是CPU的一个指令级别的操作,叫原子操作,原子操作是不可分割的,跟事务差不多,要么全部执行完成,要么不执行; 像这种操作有点类似阻塞锁…

python 导航栏_解析导航栏的url--selnium,beautifulsoup实战

前段时间做ui自动化测试的时候,导航栏菜单始终有点问题,最后只好直接获取到url,然后直接使用driver.get(url)进入页面;包括做压测的时候,比如我要找出所有报表菜单的url,这样不可能手动去一个一个找出来&am…

PNG图片详解

1、PNG图片类型 PNG格式有8位、24位、32位三种,下面是一些术语: 索引透明:类似于GIF,某一像素只有全透和全不透明两种效果Alpha透明:半透明PNG8 8位的PNG最多支持256(2的8次方)种颜色&#xff0…

Java并发编程之显式锁(Lock)使用

又是一个基于AQS好用的类,看来下次有必要看看AQS了,正好又是放假。 既然叫显式锁,必然也有隐式锁,也就是所谓的synchronzied关键字,它们两者的区别呢在于使用范围,synchronzied关键字的使用范围比Lock要小…

python pychart三维_详解python模块pychartdir安装及导入问题

在迁移别人写好的脚本时,发现pychartdir没有导入,脚本执行报错。以下是报错内容:[modpsLGJF-ZYC5-MMSC-WEB02 ~]$ python /opt/aspire/product/modps/mopps/shell/dayreport_linux.py/etc/host.conf: line 1: bad command nospoof on"Tr…

vim 中Ctags的安装和使用

Ctags是一个用来为源文件中的标识符(如变量、函数、类成员、宏定义等)创建索引文件的程序。这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。 Tags文件中…

Java并发编程之AbstractQueuedSynchronizer(AQS)源码解析

自己一个人随便看看源码学习的心得,分享一下啦,不过我觉得还是建议去买本Java并发编程的书来看会比较好点,毕竟个人的理解有限嘛。 独占锁和共享锁 首先先引入这两个锁的概念:独占锁即同一时刻只有一个线程才能获取到锁&#xf…

采集用python还是火车头_我才知道爬虫也可以酱紫--火车采集器

我才知道爬虫还可以这样—火车采集器的使用说在前面额。。。好吧,我这一个三毛钱的屌丝也开始步入实习阶段了,在北京其实也挺好的,虽说压力大,但是今后就业机会也相对而言大一些。好了,说回今天的主题,之前…

mvn 使用中的错误

出现这种错误的时候:mvn Error building POM may not be this projects POM,报的是那个jar 包,就删除那个jar 包,重新mvn clean install .ok

Java并发编程之FutureTask源码解析

上次总结一下AQS的一些相关知识,这次总结了一下FutureTask的东西,相对于AQS来说简单好多呀 之前提到过一个LockSupport的工具类,也了解一下这个工具类的用法,这里也巩固一下吧 /*** Makes available the permit for the given th…

java 删除二维数组中的null_避免在Java中检查Null语句

1.概述通常,在Java代码中处理null变量、引用和集合很棘手。它们不仅难以识别,而且处理起来也很复杂。事实上,在编译时无法识别处理null的任何错误,会导致运行时NullPointerException。在本教程中,我们将了解在Java中检…

Java并发编程之并发容器ConcurrentHashMap(JDK1.7)解析

最近看了一下ConcurrentHashMap的相关代码,感觉JDK1.7和JDK1.8差别挺大的,这次先看下JDK1.7是怎么实现的吧 哈希(hash) 先了解一下啥是哈希(网上有很多介绍),是一种散列函数,简单来…

带控制端的逻辑运算电路_分别完成正整数的平方、立方和阶乘的运算verilog语言...

练习:设计一个带控制端的逻辑运算电路,分别完成正整数的平方、立方和阶乘的运算。 //--------------myfunction---------- modulemyfunction(clk,n,result,reset,sl); output[6:0]result; input[2:0] n; input reset,clk; input [1:0] sl; reg[6:0]resul…

Java并发编程之并发容器ConcurrentHashMap(JDK1.8)解析

这个版本ConcurrentHashMap难度提升了很多,就简单的谈一下常用的方法就好了,可能有些讲的不太清楚,麻烦发现的大佬指正一下 主要数据结构 1.8将Segment取消了,保留了table数组的形式,但是不在以HashEntry纯链表的形式…

simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?

作者 | 安布奇责编 | 胡雪蕊出品 | CSDN(ID: CSDNnews)本文为一篇技术干货,主要讲述在Simulink如何使用PID Tuner进行PID调参。PID调参器( PIDTuner)概述1.1 简介使用PID Tuner可以对Simulink模型中的PID控制器,离散PID控制器,两自由度PID控制…

Java并发编程之堵塞队列介绍以及SkipList(跳表)

堵塞队列 先了解一下生产者消费者模式: 生产者就是生产数据的一方,消费者就是消费数据的另一方。在多线程开发中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继…

python生成list的时候 可以用lamda也可以不用_python 可迭代对象,迭代器和生成器,lambda表达式...

分页查找#5.随意写一个20行以上的文件(divmod)# 运行程序,先将内容读到内存中,用列表存储。# l []# 提示:一共有多少页# 接收用户输入页码,每页5条,仅输出当页的内容def read_page(bk_list,n,endlineNone):startline …

数据挖掘技术简介[转]

关键词: 关键词:数据挖掘 数据集合 1. 引言  数据挖掘(Data Mining)是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。随…

树莓派安装smbus_树莓派使用smbus不兼容问题(no module named 'smbus')

树莓派使用smbus不兼容问题(no module named ‘smbus’)python3.5–3.6可以使用smbus2代替smbus1. 先参考以下方法:github讨论树莓派社区2.Pypi上可以下载smbus2smbus2PyPi介绍:当前支持的功能有:获取i2c功能(I2C_FUNCS)read_bytewrite_byter…

Java并发编程之线程池ThreadPoolExecutor解析

线程池存在的意义 平常使用线程即new Thread()然后调用start()方法去启动这个线程,但是在频繁的业务情况下如果在生产环境大量的创建Thread对象是则会浪费资源,不仅增加GC回收压力,并且还浪费了时间,创建线程是需要花时间的&…