《重构-改善既有代码的设计》学习笔记----Extract Method(提炼函数)
看见一个过长的函数或者需要一段注释才能让人理解的代码,可以考虑将这段代码放进一个独立函数中。
创造一个新的函数,根据这个函数的意图来对它命名(以它“做什么”来命名,而不是以它“怎么做”命名)。
需要重构的代码如下(代码并不复杂,只是为了说明方法):
function print () {var num = 1;console.log('*****************');console.log('******Hello******');console.log('*****************');while(num < 10){num += 2;}console.log('num:', num); }
示例:
1、无局部变量
可以轻松提炼打印“Hello World”的代码。只需要剪切、粘贴、再插入一个函数调用的动作即可。
function print () {var num = 1;printHello();while(num < 10){num += 2;}console.log('num:', num); }function printHello () {console.log('*****************');console.log('******Hello******');console.log('*****************'); }
2、有局部变量
- 只读取,并不修改局部变量。此时可以简单地将局部变量作为参数传给目标函数。
function print () {var num = 1;printHello();while(num < 10){num += 2;}printNum (num); }function printHello () {console.log('*****************');console.log('******Hello******');console.log('*****************'); }function printNum (num) {console.log('num:', num); }
- 对局部变量赋值
1) 只在被提炼的代码中使用,可以将这个临时变量声明移到被提炼代码中,然后一起提炼出去。(这个很容易理解)
2) 被提炼代码之后的代码还使用了这个变量,需要在提炼的代码中返回改变后的值。
function print () {printHello();var result = getNum();printNum (result); }function printHello () {console.log('*****************');console.log('******Hello******');console.log('*****************'); }function getNum () {var num = 1;while(num < 10){num += 2;}return num; }function printNum (result) {console.log('num:', result); }
不断学习,不断进步~~~
转载于:https://www.cnblogs.com/happypayne/p/8379638.html
《重构-改善既有代码的设计》学习笔记----Extract Method(提炼函数)相关推荐
- 重构-改善既有代码的设计读书笔记
1.基本重构 1.1 提炼函数(Extract Function) 将意图和实现分开,如果需要花时间浏览一段代码才能弄清它到底在干什么,那么就应该将其提炼到一个函数中,并根据它所做的事为其命名. 1. ...
- 重构-改善既有代码的设计 读书笔记
这本书真的很赞,有种醍醐灌顶的感觉,一如既往,我还是大致分析一下这本书的思想,而不是单纯的文字摘录. 首先,无论是类还是方法本身,都可以视作对象.重构则是研究怎么降低耦合度的一种技术,同时我还是很支持 ...
- 【《重构 改善既有代码的设计》学习笔记2】重构原则
[<重构 改善既有代码的设计>学习笔记2]重构原则 本篇文章的内容来自<重构 改善既有代码的设计>一书学习笔记整理并且加上自己的浅显的思考总结! 上一篇通过一个简单的例子体验了 ...
- 【《重构 改善既有代码的设计》学习笔记1】重构:第一个案例
[<重构 改善既有代码的设计>学习笔记]重构:第一个案例 本篇文章的内容来自<重构 改善既有代码的设计>一书学习笔记整理并且加上自己的浅显的思考总结! 一.简单的例子 一个影片 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(2)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 上接 重构-改善既有代码的设计-第1例:租赁影片(1) 2 运用多态取代与价格相关的条件逻辑 2 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(1)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 买了<重构 - 改善既有代码的设计 >一书,一直没有好好看,大致过了下也觉得只是有点点印 ...
- 实践提高《重构改善既有代码的设计第2版》PDF中文+PDF英文+对比分析
重构是编程的基础,是在不改变外部行为的前提下,有条不紊地改善代码.编程爱好者都知道,Martin Fowler 的<重构:改善既有代码的设计>已经成为全球有经验的程序员手中的利器,既可用来 ...
- 不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这《重构:改善既有代码的设计》就向你介绍了这方面的技巧,说得非常详细。...
"不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这<重构:改善既有代码的设计>就向你介绍了这方面的技巧,说得非常详细." "程序几 ...
- 重构—改善既有代码的设计
概述 1.1 参考资料 <重构-改善既有代码的设计>读后总结 <重构改善既有代码的设计> 22种代码的坏味道,一句话概括 1.2 何谓重构 首先要说明的是:视上下文不同,重构的 ...
- PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类 ...
最新文章
- 一文全览,AAAI 2020上的知识图谱
- Web常见约定规范(精选)
- Kaggle债务违约预测冠军经验分享
- kafka副本注意点
- oracle index contention,Index Contention等待
- WIN10 下 PHP7 中文乱码的解决办法
- 蓝桥杯试题 算法提高 数组求和
- java过时_Java 语言的几个缺陷之四: 过时的 JavaBean
- 时尚达人必备的潮流壁纸桌面!
- 「倾心整理~」数据库系统概论—第5章(数据库完整性)
- 苹果Mac 3D 数字绘画工具:Substance 3D Painter
- Java 正则表达式的用法和实例
- netty4.1 “File does not contain valid private key” 解决方法
- 什么是ANC降噪技术?耳机工厂来告诉你
- CorelDRAW2022(CDR2022-64位),Win7 、Win10通用\免激活注册中文版安装图文教程
- 一周搜索热点20170528
- 社区说|Flutter 主流状态管理框架 provider get 分析
- Ubuntu 18.04 WPS导出pdf部分线条变粗(okular的小问题)
- Java--实现简单的音频(mp3格式)播放
- RabbitMQ高级特性-惰性队列
热门文章
- ASP.NET MVC:WebViewPage.cs
- eclipse tomcat maven热部署
- 使用 IntraWeb (21) - 基本控件之 TIWTabControl
- 再说一次,别去外包!
- 分布式服务的幂等性设计,值得学习!
- 太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己...
- 来自微信官方:微信支付跨平台软件架构首次曝光
- Android Studio Tips -- 提取方法
- linux+shell+整数计算,Shell expr命令进行整数计算的实现
- pycharm pip安装_Python从入门到大师教程 | 一、搭建Python环境和安装Pycharm