匠艺整洁之道:程序员的职业修养读书笔记

 

第一部分  纪律

航空业发展时间线, 最终第一架巨型喷气宽体客机波音747出现,航空旅行成为安全和高效的旅行方式。

波音737 Max不安全。MU5735也是B737-800NG客机。所以我们国家不买波音的飞机了吧。

1970-2000年,硬件30个数量级的增长。

匠艺是指懂得如何做好某件事,源于良好的指导和大量经验。软件产业大量缺少这两样事务。

极限编程

1970年,提出瀑布开发过程。2000年,才纠正了这个错误。

1999年,出版《解析极限编程-拥抱变化》,推动敏捷革命。

极限编程实践手段四个要素:测试驱动开发、重构、简单设计和结对。

测试驱动开发

TDD纪律。小周期、先测试。测试先于一切。先写测试。先清理测试。测试先于一切其他操作。

所以操作切分为最小周期。周期以秒计。

TDD的目标是创建你完全依赖的测试集。TDD是一种精巧复杂的技术,难以习得

 

重构

将结构糟糕的代码改写为结构更好的代码,且不会影响代码行为。

只要保证代码行为不受影响,对结构的改进就是安全的。

没有TDD,重构无法实现。不做重构,也没法做TDD。

简单设计

地球生命可以分层描述。

类比编程。TDD是编程中的量子力学,那么重构就是化学,而简单设计是微生物学。SOLID原则、OO (Object-Oriented)和函数式编程是生理学。架构是生态学。

简单设计只包括四条极简规则。

《修改代码的艺术》设计感境界。

协同编程

结对编程、代码审查、头脑风暴。

第二章 测试驱动开发

1772年,工业革命势头迅猛,企业家为满足巨大的市场需求,差点破产。采用复式记账法,能看清金钱是如何在生意中流入流出的。现金流被调整后,破产没有发生。

复式记账法是最优秀发明之一,每位谨慎的家主都该用它来管经济。

能够通观整体、不至于迷失的细节里面。

TDD就是一种复试记账法

TDD三法则

第十章 质量

持续改进

每次程序员签入时,代码都比签出时整洁。在修正缺陷时,将代码改的更好。在增加功能时,将代码改的更好。对代码的每一次操作都能带来更好的代码,更好的设计和更好的架构。

免于恐惧

系统内部结构退化,系统复杂性会难以处理。开发人员越来越害怕做出改变。害怕改动,程序员只做出他们认为“最安全”的改动。

解决办法是消除恐惧。创建程序员死心塌地信任的测试集来消除恐惧。

QA的工作是用测试指定系统行为,给出最够细化的测试,这些测试由程序员来执行。

测试自动化

手动测试是对金钱的时间的巨大浪费。几乎可以自动化的测试都应该被自动化,包括单元测试、验收测试、集成测试和系统测试。人工测试成本高昂。

绝大多数测试是简单的安排、行动、断言结构,可以通过提供预设输入和检查预期输出来执行。

设计系统时,抽象出缓慢或需要配置得操作。如果使用关系型数据库,创建封装业务规则的抽象层,用自动测试输入数据取代 DB。增加测试速度。

较慢的和不方便的外围设备、接口和框架也应该被抽象化。这样单个测试可以在几微秒运行。

自动化测试与用户界面

自动化测试不应该通过用户界面来测试业务规则。用户界面极其容易改变,与业务规则无关。

应该测试业务API。

 

书籍推荐:程序员修炼之道 通向务实的最高境界。

第13章  集成

时间管理

番茄工作法---有效的使用每一点时间和精力   Francesco Cirillo   

定时25分钟

计时器想起、休息5分钟

重新开始

第14章 团队合作

《敏捷整洁之道》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值