重构——Martin Fowler 阅读笔记
重构的第一步:
为即将修改的代码建立一组可靠的测试环境。
和任何重构手法一样,当提炼一个函数时,我们必须知道可能出什么错。
安全步骤:
首先在一个函数内找到局部变量和参数。任何不会被修改的变量都可以被当成参数传入新的函数,至于会被修改的变量就需要格外小心。
重构代码原则:每次的改动幅度不要太大,这样才能保证
任何一个傻瓜都能写出计算机可以理解的代码,惟有写出人类容易理解的代码,才是优秀的程序员。
是不过三,三则重构。
重构——Martin Fowler 阅读笔记的更多相关文章
- (转载)持续集成(第二版)[来自:Martin Fowler]
		
转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以 ...
 - MARTIN FOWLER谈敏捷开发
		
转自:http://www.scrumcn.com/agile/scrum-knowledge-library/agile-development.html#tab-id-9 每个人都在谈论敏捷开发( ...
 - 微服务(Microservices)—Martin Fowler【翻译】
		
本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html -------------------------------------------- ...
 - Mongodb Manual阅读笔记:CH3 数据模型(Data Models)
		
3数据模型(Data Models) Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mon ...
 - QCon 2015 阅读笔记 - 移动开发最佳实践
		
所有ppt下载地址:http://pan.baidu.com/s/1mg9o4TM 下面是移动开发实践部分的阅读笔记. 移动开发网络性能优化实践 - 陈浩然 (携程) 携程是非常标准的移动App架构, ...
 - Code Complete阅读笔记(二)
		
2015-03-06 328 Unusual Data Types ——You can carry this technique to extremes,putting all the ...
 - 《Thinking In Java》阅读笔记
		
<Thinking In Java>阅读笔记 前四章:对象导论. 一切都是对象. 操作符. 控制执行流程 public在一个文件中只能有一个,可以是一个类class或者一个接口interf ...
 - <转载> 22种代码味道(Martin Fowler与Kent Beck) http://blog.csdn.net/lovelion/article/details/9301691
		
Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:<重构——改善既有代码的设计>)一书中与Kent ...
 - 福勒(Martin Fowler)
		
福勒(Martin Fowler),在面向对象分析设计.UML.模式.软件开发方法学.XP.重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家.Thought Works是 ...
 
随机推荐
- bash之数组
			
Bash 提供索引和联想的一维数组变量.可用作任何变量 索引的数组 :内置的声明将显式声明数组.有没有最大限制 一个数组,也没有要求成员将索引或连续分配的大小.索引的数组 引用使用 (包括算术表达式) ...
 - JavaSE-19 IO
			
学习要点 File类操作文件和目录的属性 字节流读写文件 字符流读写文件 字节流读写二进制文件 文件操作 1 文件的定义 文件可认为是相关记录或放在一起的数据的集合.文件一般保存在硬盘.U盘.光盘. ...
 - 如何把datetime类型字段修改为int类型
			
如何把datetime类型字段修改为int类型 我有一个表为:table1 其中有一个datetime类型的字段 a 现在我想我想把字段a的类型改为int类型 当我执行以下命令时报如下的错误a ...
 - php实现短信验证
			
PHP实现短信验证的整体思路: 一.申请短信api ->申请网址https://s1.chanyoo.cn/login?url=%2f 二.编写核心代码(thinkPHP5) 示例: <? ...
 - 两种js下载文件的方法(转)
			
function DownURL(strRemoteURL, strLocalURL){ try{ var xmlHTTP = new ActiveXObject("Microsoft.XM ...
 - [Python3网络爬虫开发实战] 1.4.3-Redis的安装
			
Redis是一个基于内存的高效的非关系型数据库,本节中我们来了解一下它在各个平台的安装过程. 1. 相关链接 官方网站:https://redis.io 官方文档:https://redis.io/d ...
 - laravel学习笔记2--表单
			
一.Controller 1.Request 1.1.取值:input // 1.取值 echo $request->input('name'); // 2.取不到值时打印默认值 echo $r ...
 - buf.keys()
			
buf.keys() 返回:{Iterator} 创建并返回一个包含 Buffer 键名(索引)的迭代器. const buf = Buffer.from('buffer'); for (var ke ...
 - LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Php篇
			
文章来源:http://www.cnblogs.com/hello-tl/p/7569071.html 更新时间:2017-09-21 16:03 简介 LAMP+R指Linux+Apache+Mys ...
 - Variational Auto-Encoders原理
			
目录 AE v.s. VAE Generative model VAE v.s. GAN AE v.s. VAE Generative model VAE v.s. GAN