代码
调试技术
数据库
- 《Getting started with impala》
- 《mysql 必知必会》
- 《mysql 性能调优与架构实践》
- 《Mysql 技术内幕 InnoDB 存储引擎》
- 《Redis 实战》
- 《Redis 深度历险核心原理和应用实践》
- 《redis设计与实现》
- 《七周七数据库》
- 《深入浅出mysql》
- 《高性能mysql第三版》
- 《MySQL是怎样运行的》
前端
GOLANG
- 《1 The Go Programming Language》
- 《2 The Go Programming Language》
- 《3 The Go Programming Language》
- 《Build Web Application With Golang》
- 《Go101》
- 《Network Programming with go》
- 《Building Microservices With Go》
- 《Building Restful Web Services with Go》
- 《Concurrency In Go》
- 《Go In Action(Go 实战)》
- 《Go学习笔记语言详解》
- 《Go学习笔记源码剖析》
- 《Go语言编程》
JAVA
网络
心理学
PYTHON
创业
UNIX/LINUX
分布式
系统设计
搜索引擎
开发工具
- 《Practical Vim》
- 《Vim8文本处理实战》
- 《Learn vim scrpt the hard way》
- 《Pro Git》
- 《Mastering Vim》
- 《Mastering Vim Quickly》
思维
源码
网站架构微服务
- 《微服务架构设计模式》
- 《从0开始学架构》
- 《web scalavility for startup engineers》
- 《designdatainstensive_application》
- 《designdatainstensive_application2》
- 《clean_architecture》
- 《微服务实战》
- 《微服务设计》
软件工程/项目管理
运维
金融理财
写作
互联网
区块链
技术演讲网课
- 《哔哩哔哩的go微服务实战》
- 《go业务基础库之Error&Context》
- 《Go同步和并发设计模式》
- 《300分钟吃透分布式缓存》
- 《DDD实战课》
- 《分布式技术原理与实战45讲》
- 《架构设计面试精讲》
- 《高并发系统设计40问》
- 《java并发编程78讲》
- 《中间件核心技术与实战讲》
职场
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
《高效程序员的45个习惯》
1. 敏捷-高效软件开发之道
个体和交互胜过过程和工具 可工作的软件胜过面面俱到的文档 客户协作胜过合同谈判 响应变化胜过遵循计划 虽然右项也有价值,但我们认为左项具有更大的价值。 敏捷宣言作者,2001年版权所有。
敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。
2. 态度决定一切
- 1.做事:指责不会修复 bug
- 2.欲速则不达:拙劣的代码工人会这样不假思索地改完代码,然后快速转向下一个问题。不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。
- 3.对事不对人:引导性地提出一个疑问,让他们自己意识到问题。你不需要很出色才能起步,但是你必须起步才能变得很出色。 - 设定最后期限;设立仲裁人;支持已经做出的决定
- 4.排除万难,奋勇前进:
3. 学无止境
- 5.跟踪变化
- 6.对团队投资:一个学习型的团队才是好的团队
- 7.懂得丢弃:学习新东西,抛弃旧的东西
- 8.打破沙锅问到底:多问为什么
- 9.把握开发节奏:许多的敏捷技巧来源于时间盒——设定一个短时的期限,为任务设定不能延长的最终期限。
4.交付用户想要的软件
- 10.让客户做决定:开发者(及项目经理)能做的一个最重要的决定就是:判断哪些是自己决定不了的,应该让企业主做决定
- 11.让设计指导而不是操纵开发。设计满足需求即可。CRC(类—职责—协作)卡片:类名;职责(它应该做什么);协作者(要完成工作与其他什么对象一起工作)
- 12:根据需要选择技术
- 13.保持可以发布:已提交的代码应该随时可以行动
- 14.提早集成,频繁集成
- 15.提早实现自动化部署
- 16.使用演示获得频繁反馈
- 17.使用短迭代,增量发布
- 18.固定的价格就意味着背叛承诺
5.敏捷反馈
- 19.守护天使:编写能产生反馈的代码:测试是可重复的;测试边界条件;不要放过失败的测试用例
- 20.先用它再实现它:TDD
- 21.不同环境就有不同问题
- 22.自动验收测试
- 23.度量真实的进度:待办
- 24.倾听用户声音
6.敏捷编码
- 25.代码要清晰地表达意图。清晰度应该排在效率之前
- 26.用代码沟通
- 27.动态评估取舍
- 28.增量式编程
- 29.保持简单。开发可以工作的、最简单的解决方案
- 30.编写内聚的代码:内聚性用来评估一个组件(包、模块或配件)中成员的功能相关性。内聚程度高,表明各个成员共同完成了一个功能特性或是一组功能特性。内聚程度低的话,表明各个成员提供的功能是互不相干的。
- 31.告知,不要询问:面向过程的代码取得信息,然后做出决策。面向对象的代码让别的对象去做事情。命令与查询相分离模式
- 32.根据契约进行替换: is-a has-a
7.敏捷调试
- 33 记录问题解决日志
- 34 警告就是错误
- 35 对问题各个击破
- 36 报告所有的异常:处理或是向上传播所有的异常
- 37 提供有用的错误信息
8.敏捷写作
- 38 定期安排会面时间:站立会议
- 39 架构师必须写代码
- 40 实行代码集体所有制
- 41 成为指导者
- 42 允许大家自己想办法
- 43 准备好后再共享代码
- 44 做代码复查
- 45 及时通报进展与问题。发布进展状况、新的想法和目前正在关注的主题。不要等着别人来问项目状态如何。
9.尾声:走向敏捷
- 9.1 只要一个新的习惯
- 9.2 拯救濒临失败的项目
- 9.3 引入敏捷:管理者指南:从立会开始(见第148页习惯38)。这可以让团队有机会进行彼此讨论,并对一些重大问题达成共识。把之前相对孤立的架构师带到团队中,并让他们参与到日常开发工作(见第152页习惯39)。开展非正式的代码复查(见第165页习惯44),并做出计划,让客户与用户也参与到项目中来(见第45页习惯10)。
- 9.4 引入敏捷:程序员指南举例来说,从单元测试开始是一个不错的选择。可以先针对自己的代码开始使用。在短时间之内(几周甚至更少),就可以看到代码质量提升了——减少了错误的数目,提高了质量,健壮性也有所提升。你下午5点就可以下班回家,而且所有的任务都可以顺利完成——不必担心半夜被电话叫醒,去修复bug。旁边的开发人员想知道你是如何做到的,而且消息也渐渐传开了。整个团队现在都想尝试这些新奇的习惯,而不需要你努力去说服他们。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论