`
iamxi
  • 浏览: 188973 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《重构》学习笔记一

阅读更多


 码农真得很辛苦,每天除了要下地编码之外,还需要挑灯夜战,学习专业知识,唉。不抱怨了,抱怨都是那些自暴自弃的人愤世嫉俗的。最近看《重构》一书,话说是一本很多人推荐看的好书,封面上还写着“从初级程序员到编程高手的秘籍”。好吧,我承认是初级程序员。所以我看了。

 

第一章:

与其他书不同,第一章是一个例子。很多书,包括大学教材啊,技术教材都是以要讲的内容的定义和一些学习的重要意义之类的做第一章,而此书却给了一个系统的小部分代码来做重构的小例子。这样写的原因作者说了,不过对于我们这种应试教育下出生的人来说有点小小的不习惯。

例子很简单,一个电影光碟出租店的简单系统,这里的部分是打印租碟的用户的费用和积分。书内的这个小例子真的很小很简单,简直就是一个 java 初学者写的课后实践题。如果换成我(好歹有工作经验)去写,估计也还是写成这个样子:按现实中的几个主体建立几个类——电影碟、顾客、租赁,然后在其中一个类里面写一个打印出某一次租赁的费用和积分的方法,这个方法没什么层次什么的,就一个完整的面向过程的代码。不光我,估计还多有一定经验的都会这么写,因为这个实在太简单,简单到都懒得过多思考。作者也怎么认为,不过他要读者把这样的代码放到更高的高度去看,放到一个庞大系统中去看。的确,不易于理解(逻辑判断多,循环内的逻辑太长),不符合面向对象精神(一个过程,全部塞一个方法里面,也不深究到底哪些实现该属于那个类)。

之后作者就开始慢慢的,一步一步的重构这段代码。不多说了,那些都是看一眼就能懂的,这些重构的方法大部分为我们开发中常用的。不过神奇的事发生了——至少我是这么认为的,一段简陋的代码在作者折腾下,开始慢慢变得有模有样,层次清楚,功能分明,最后还给程序加上了一个状态模式,竟然和高深的设计模式搭上边了。

这个小小的例子,把读者悄悄的领入了重构的世界,用简单的例子,把重构的神秘面纱给剥去(至少不会让人望而生畏)。

 

 

我的学习,我的笔记,虽然看上去不想学习笔记,唉,没办法,上学时候都没有习惯记笔记。

  • 大小: 64.3 KB
  • 大小: 82.8 KB
分享到:
评论

相关推荐

    31天重构学习笔记中文版

    31天重构学习笔记中文汉化版,非常好的编程规范书籍

    重构 学习笔记 refactoring martin fowler

    “每当我要进行重构的时候, 第一个步骤永远相同: 我得为即将修改的代码建立一组可靠的测试环境. 这些测试是必要的, 因为尽管遵循重构准则可以使我避免绝大多数的臭虫引入机会, 但我毕竟是人, 毕竟有可能犯错误. ...

    31天重构学习笔记.docx

    比如最经典的属性对字段的封装就是一个很好的例子,那么下面我们将看到对集合的封装,如下代码所示,调用端只需要一个集合的信息,而我们则提供了一个IList的集合,大家都知道IList具有对集合的所有操作,所以这会...

    [免费高清PDF]31天重构系列笔记.rar

    [免费高清PDF]31天重构系列笔记.rar [免费高清PDF]31天重构系列笔记.rar

    .NET 快速重构 - 学习笔记

    重构是持续改进代码的基础。抵制重构将带来技术麻烦:忘记代码片段的功能、创建无法测试的代码等等。 而有了重构,使用单元测试、共享代码以及更可靠的无 bug 的代码这些最佳实践就显得简单多了。

    《重构》----学习笔记

    重构不是一项靠着天分挥洒的艺术,而是一项工程。重构是一种有纪律的,经过训练的,有条不紊的程序整理方案,可以将整理过程中不小心引入错误的机率降到最低

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,...《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构。

    重构:改善既有代码的设计(第2版)学习笔记

    重构:改善既有代码的设计(第2版)学习笔记

    C#学习笔记

    我个人觉得面向对象是本本主义、洁癖的体现、是重构后的最后归属、它可能会矫情、在市场变化老板着急产品狭隘的情况下 快速制作快速上线才是王道,面向对象的基础是对事物的详尽认知,短时间内能做到吗 不好做到,...

    重构知识总结篇

    有关系统重构知识总结,网上浏览学习笔记。

    refactoring-to-patterns-notes:重构-向范式前进(重构为模式)的学习笔记

    重构为模式注释重构-向范式前进(重构为模式)的学习笔记。本站网址: : 本书已绝版,请参考。欢迎到讨论或指正错误。

    W3学习笔记--文献检索与有效阅读1

    标题摘要介绍难度2 详读并 记笔记可转述正标出不理解的名间 提问批判性思考改进重构作者的作到新 不是③献综述 学术观点 t 理论法1批判性归纳与评论堆砌只研究意

    docker 学习笔记.docx

    最近老项目重构,打算使用Docker虚拟化技术,踩着坑整理的。希望帮助能够帮助的人。

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    appfuse 学习笔记

    Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。 Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、...AppFuse2.0重构了AppFuse1.0,转到Maven2和Jdk1.5。

    angular 学习笔记

    前提 Angular1.5 到 Angular4.0是重写的语言,Angular1简称...在Angular知识学习(一)中有讲述到表单的知识,不过那是最基础的演示,在之后的学习中又了解到模板驱动表单,所以考虑对之前的表单案例进行重构,完善表单

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    Golang学习笔记(一):缘起及一个不一样的HelloWorld

    Golang学习笔记(一):缘起及一个不一样的HelloWorld1 缘起2 安装go3 Hello World也是可以好好说道说道滴 :)3.1 编写hollo.go源代码3.2 hello.go代码说明3.3 执行程序3.4 编译程序4 结语 1 缘起 本人公司的项目后端...

    《xUnitTestPatterns》学习笔记系列

    学习笔记1-TestSmell这本书找来很久了,一直没读。关于软件测试的好书相当少,对于测试代码的重构及模式的书就更加难得了。虽然我才读了前几章,给我的感受是,这本书确实讲的很全面,并且给很多测试中的东西给出了...

Global site tag (gtag.js) - Google Analytics