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

《重构》学习笔记一

阅读更多


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

 

第一章:

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

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

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

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

 

 

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

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

相关推荐

    重构 学习笔记 refactoring martin fowler

    重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,...

    .NET 快速重构 - 学习笔记

    .NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...

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

    笔记的第1-7天可能侧重于介绍重构的基本理论,包括重构的意义、何时进行重构以及如何衡量重构的效果。作者可能会讲解软件设计原则,如开闭原则、单一职责原则等,这些都是重构时需要遵循的重要指导方针。 8-14天...

    31天重构学习笔记.docx

    1. **安全**:通过限制外部对集合的直接访问,可以防止意外修改,从而确保数据的完整性和安全性。 2. **控制**:封装允许开发者精确地控制集合的访问和修改行为,例如,在添加或移除元素时可以添加额外的业务逻辑。 ...

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

    《重构》是一本深入探讨软件开发过程中的代码优化与改进的经典著作。重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋...

    Eclipse开发学习笔记.pdf

    ### Eclipse开发学习笔记知识点解析 #### 一、Eclipse工作台(Workbench) Eclipse工作台是Eclipse提供的集成开发环境的核心部分,旨在为开发者创建一个无缝集成的工具集,以便于管理和导航工作空间资源。它是开发...

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

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

    Eclipse 开发学习笔记.pdf

    **Eclipse 开发学习笔记** Eclipse是一款强大的集成开发环境(IDE),主要用于Java应用程序的开发,但通过插件也可以支持其他编程语言,如C++, Python等。这份《Eclipse开发学习笔记》是针对想要深入理解和掌握...

    java JDK 8学习笔记

    本学习笔记旨在深入解析JDK 8的关键特性,帮助初学者快速掌握这一版本的核心知识。 1. **lambda表达式**:JDK 8引入了lambda表达式,简化了函数式编程。它允许将匿名函数作为方法参数,或者用作方法返回值。Lambda...

    Android Studio 学习笔记-新手入门-(1)第一个案例

    这篇学习笔记将引导新手入门,通过创建第一个简单的案例来了解Android Studio的基本操作。 首先,让我们了解一下Android Studio的核心功能。它基于IntelliJ IDEA,具备代码自动补全、重构、调试等强大的开发特性。...

    重构笔记

    《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和可读性的重要手段。重构是指在不改变代码外在行为的前提下,对代码进行修改,以改善其内部结构。这一过程可以是局部的...

    代码重构总结实例

    - "31天重构学习笔记"可能提供了每日重构技巧和案例,帮助深入理解重构过程。 - "Java重构示例"系列文档可能展示了Java代码重构的具体步骤和实践。 - "SVN搭建和使用手册"及"SVN中文教程"提供了关于SVN的详细指南...

    超详细的springboot学习笔记

    ### Spring Boot 学习笔记概览 #### 一、Spring 的发展历程 1. **Spring 1.x 时代:** - 在Spring框架发展的初期(即Spring 1.x时代),主要采用XML作为配置文件来管理Bean的声明周期。这种方式在项目规模较小的...

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

    《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,主要关注的是如何通过一系列微小的改变来逐步改进现有代码的质量,提升软件设计的可读性、可维护性和可扩展性。...

    active mq 学习笔记

    ### ActiveMQ学习笔记知识点梳理 #### 一、ActiveMQ简介 **定义:** - **ActiveMQ**是由Apache出品的一款功能强大的开源消息中间件。作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间...

    前端Bootstrap+Es6+vue学习笔记

    前端Bootstrap+Es6+vue学习笔记 Bootstrap 框架是一种基于 HTML/CSS/JS 的开源框架,由 Twitter 公司的两名技术工程师研发。其主要特点包括: 1. 跨设备跨浏览器:Bootstrap 支持多种设备和浏览器,可以在不同的...

    C#学习笔记

    ### C#学习笔记知识点解析 #### 面向对象编程的理解 标题中提到的“面向对象是本本主义、洁癖的体现”这句话反映了一种对面向对象编程(Object-Oriented Programming, OOP)的看法。面向对象编程是一种程序设计范式...

Global site tag (gtag.js) - Google Analytics