您的位置:首页 > 百科 > 正文

代码重构

《代码重构(Visual Basic版)》来自是2009年清华大学出版社出版的图书。

  • 书名 代码重构(Visual Basic版)
  • 出版时间 2009年5月6日
  • 定价 68 元
  • 装帧 平装
  • ISBN 9787302200840

图书简介

  在这本独一无二的书中,本书作者向您介绍如何利用重构改进现有代码的设计,使之变得更有效和更具生产力。它提供了实用方法,所以您可以快速学会如何使用重构工具和功能来管理和修改代码。本差字与细书还介绍了如何进行单元测试丰师打应项才来型席、重构模式和重构升级原有的Visual B层注刘范血神双感落asic 代码。

  在学习本书的过程中,将从头开始构建原型应用程序。然后,利用重构技术将代码转换为正确设计的、企业级的应用程序。本书作者将手把手地教您每个过程,同时提供了专家级的编码技巧。秋钢铁顶被条质然后,可以将这些信息应用到由于公司扩张、策略改变或类似业务决策所引起的实际情形中。

来自

  第Ⅰ部分重构的介绍

  第1章重构的察某地完掉全面介绍 3

  1.1重构的快速浏览 3

  1.1.1重构过程 4

  1.1.2软件行业现状概述 5

  1.2重构过程的详细介绍 7

  1.2.1代码味道的使用 7

  1.2360百科.2代码的转换 7

  1.2据况免航低.3重构的优点 9

  1.2.4澄清一些常见的误解 11

  1.3VisualBasic和重构 13

  1.3.1V肥攻费史笑损花件图isualBasic的发展史

  和遗留问题 13

  1.3.2VisualBasic的演变 14

  1.3.3通过重构处理遗留的问题 15

  1.4小结 16

  第2章重构的初体验 17

  2.1CaloriesCa章随倒lculator样本

  应用程序 17

  2.1.1Calo跳角riesCalculator

乙觉下态回  应用程序 18

  2.1.2需求的增长:计

  理想的体重 20

  2.1.3需求的增长:保存病人

  的数据 22

  2.2运用中的重构 23

  2.2.1将BtnCalculate_Click

  方法分解 24

  2.2.2发现新的类 27

  2.2.3限制Patient类的接口 30

  2.2.输富4将条件逻辑放到

  Pati改扩ent类中 32

  2.2.5创建Patient类的层次结构 35

  2.3保存功能的实现 41

  2.3.1保存数据 41

  2.3.2实现显示病人历史

  信息的功能 49

  2.4CaloriesCa副卷以环印输下互杨lculator

  重构势却征过的版本 53

  2.5小结 55

  第3章组建重构的工具箱 57

  3.1使用自动化的重蛋印望顶川晚去周变构工具 58

  3.1.1JetBrains提供的ReSharper 58

  3.1.2WholeTomato提供的

  VisualAssistX 59

  3.1.3D到移缺盾超娘乱另升建eveloperExpress

  提供的Refactor!Pro 59

  3.1.4从Refactor!开始入手 59

  3.1.5进一步探讨VB用户

  界面的Refactor! 61

  实利执委展3.1.6快速浏览:可供

  使用的重构 65

  3.2单元测试的基本内容:

  测试的护具 66

  3.2.1单元测试架构的出现 67

  3.2.2NUnit的初体验 69

  3.2.3NUnit的安装 69

  3.2.4第一个测试的实现 71

  3.2.5测试驱动的方法 78

  3.2.6需要考虑的其他测试工具 79

  3.3关于版本控制的一些问题 81

  3.4小结 81

  第4章Rent-a-Wheels应用

  程序的原型 83

  4.1会见客户 84

  4.1.1会见经理 84

  4.1.2会见前台接待员 85

  4.1.3会见停车场的服务人员 85

  4.1.4会见维护人员 86

  4.2采取Rent-a-Wheels项目

  中最初的步骤 86

  4.2.1参与者和用例 86

  4.2.2汽车的状态 88

  4.2.3首次拟定主要的应用

  程序窗口 90

  4.2.4Rent-a-Wheels开发

  团队的会议 90

  4.3让原型运转 91

  4.3.1检查数据库模型 91

  4.3.2检查VisualBasic的代码 93

  4.4快速而高效的VB编程方法 96

  4.4.1数据库驱动的设计 97

  4.4.2基于GUI的应用程序 97

  4.4.3事件驱动的编程 97

  4.4.4快速应用程序开发(RAD) 98

  4.4.5复制/粘贴作为代码

  重用的机制 98

  4.5通过重构过程从原型

  进入到交付 99

  4.6小结 99

  第Ⅱ部分VB重构的初步知识

  第5章Chameleon语言:从静态

  弱类型化到动态强类型化 103

  5.1OptionExplicit和

  OptionStrict的.NET影响 104

  5.2在不严格的代码中设置

  OptionExplicitOn 105

  5.2.1理解SetOption

  ExplicitOn重构 105

  5.2.2将Rent-a-Wheels代码

  重构成显式的形式 108

  5.3在不严格的代码中设置

  OptionStrictOn 109

  5.3.1一个有点人为的随意的

  VB代码示例 109

  5.3.2通过新变量的定义来

  解决变量的复杂用法 112

  5.3.3推断变量的类型 115

  5.3.4通过类型转换函数将

  所有内容整合在一起 118

  5.3.5方法、字段、属性和

  其他成员的处理 120

  5.3.6将SetOptionStrictOn

  重构运用到Rent-a-Wheels

  应用程序中 125

  5.4静态类型化对动态类型化

  及其与VisualBasic的关系 127

  5.4.1VisualBasic6及其之前

  版本中的后期绑定 128

  5.4.2鸭子类型化 129

  5.4.3在文件层次上重设动态

  行为或静态行为 130

  5.4.4为动态代码提供一个

  静态类型化的封装器 131

  5.5激活显式而严格的

  编译器选项 133

  5.5.1在ProjectProperties

  窗口中设置选项 134

  5.5.2更改VisualBasic编译器

  的默认行为 135

  5.5.3在源文件中设置选项 135

  5.5.4使用项模板来设置选项 136

  5.6小结 137

  第6章错误处理:以一些简单的

  步骤从传统风格步入到

  结构化风格 139

  6.1传统的错误处理和结构化

  的错误处理 140

  6.1.1传统的(非结构化的)

  错误处理 140

  6.1.2结构化的错误处理 142

  6.2结构化错误处理的好处 145

  6.2.1结构化的代码和

  非结构化的代码 145

  6.2.2作为类型而不是数字

  出现的异常 145

  6.2.3错误过滤 146

  6.2.4Finally代码块 146

  6.2.5.NET的互操作性 147

  6.3用Try-Catch-Finally取代

  OnError构造 147

  6.3.1理解关键字When 149

  6.3.2用Try-Catch-Finally替换

  OnError的重构步骤 150

  6.3.3用Try-Catch-Finally构造

  替换OnErrorGoto标签 151

  6.3.4用Try-Catch-Finally构造替

  换OnErrorResumeNext 154

  6.4用异常类型替换错误代码 155

  6.4.1用异常类型替换系统

  错误代码 158

  6.4.2用异常类型来替换

  自定义的错误代码 159

  6.5Rent-a-Wheels应用程序

  中的错误处理 160

  6.6小结 162

  第7章基本的代码卫生:消除无

  用代码、降低作用域、使

  用显式导入以及删除不用

  的引用 165

  7.1删除无用代码 166

  7.1.1无用代码的类型 167

  7.1.2无用代码常见的来源 168

  7.2降低过度曝光的元素的

  作用域和访问级别 171

  7.2.1作用域和访问级别 173

  7.2.2过度曝光常见的来源 174

  7.2.3处理过度曝光的问题 178

  7.3使用显式导入 179

  7.4删除未使用的程序集引用 183

  7.5Rent-a-Wheels应用程序

  中的基本卫生 184

  7.6小结 185

  第Ⅲ部分标准重构转换的

  初步介绍

  第8章从问题域到代码:消除差距 189

  8.1理解问题域 190

  8.1.1第1步:收集信息 190

  8.1.2第2步:就词汇表达成

  一致意见 191

  8.1.3第3步:描述交互作用 192

  8.1.4第4步:建立原型 193

  8.2命名的指导原则 193

  8.2.1大写风格 194

  8.2.2简单的命名指导原则 195

  8.2.3顺畅地传递信息:选择

  正确的单词 196

  8.2.4Rename重构 197

  8.3发布接口和公有接口 200

  8.3.1自包含的应用程序与

  可重用的模块 200

  8.3.2修改公有接口 203

  8.3.3Refactor!中的SafeRename

  重构 206

  8.4Rent-a-Wheels应用程序中

  的Rename和SafeRename

  重构 208

  8.5小结 209

  第9章对重复代码进行方法提取 211

  9.1保持封装代码和隐藏

  细节的原因 211

  9.2信息和实现的隐藏 212

  9.3分解方法 214

  9.3.1周长计算--长方法的

  一个示例 215

  9.3.2提取周长计算的代码 217

  9.3.3提取计算半径的代码 220

  9.3.4提取WaitforUsertoClose

  代码 220

  9.3.5提取读取坐标的代码 220

  9.3.6Refactor!中的Extract

  Method重构 223

  9.4重复代码的味道 225

  9.4.1重复代码的来源 226

  9.4.2复制/粘贴编程 227

  9.5幻数 228

  9.6Rent-a-Wheels应用程序中的

  ExtractMethod和

  ReplaceMagicLiteral重构 230

  9.7小结 231

  第10章方法合并与方法

  提取的技术 233

  10.1临时变量的处理 233

  10.1.1MoveDeclarationNear

  Reference重构 234

  10.1.2MoveInitializationto

  Declaration重构 237

  10.1.3SplitTemporaryVariable

  重构 238

  10.1.4InlineTemp重构 242

  10.1.5ReplaceTempwithQuery

  重构 244

  10.2方法重组的试探 247

  10.3方法重组与Rent-a-Wheels 247

  10.3.1删除Rent-a-Wheels

  中的重复 249

  10.3.2Rent-a-Wheels中的幻数、

  注释以及事件处理盲区 251

  10.4小结 255

  第Ⅳ部分高级重构

  第11章发现对象 259

  11.1面向对象编程的快速回顾 259

  11.1.1到底什么是对象 260

  11.1.2封装与对象 260

  11.1.3Refactor!中的

  EncapsulateField重构 261

  11.1.4对象状态的保持 263

  11.1.5类 264

  11.1.6对象标识 265

  11.1.7作为基本构建块的对象 266

  11.1.8根对象 266

  11.1.9对象的生存期和

  垃圾回收 267

  11.1.10消息 268

  11.2类的设计 268

  11.2.1类是名词,操作是动词 271

  11.2.2类、责任和协作者 275

  11.2.3实体和关系 283

  11.3发现隐藏的类 284

  11.3.1处理数据库驱动的设计 285

  11.3.2从过程化设计到面向

  对象设计的转移 288

  11.3.3保持域、表示和

  持久化分离 294

  11.3.4发现对象和Rent-a-Wheels

  应用程序 300

  11.4小结 306

  第12章面向对象的高级概念和

  相关的重构 309

  12.1继承、多态性和泛型 309

  12.1.1继承 310

  12.1.2多态性 315

  12.1.3泛型 318

  12.2继承的误用以及重构

  解决方案 319

  12.2.1误用继承的组合和

  其他误用情形 322

  12.2.2继承的重构--

  打印系统的举例 327

  12.3泛型的使用 345

  12.4Rent-a-Wheels应用程序中

  的继承和泛型 348

  12.4.1提取超类 348

  12.4.2运用泛型 349

  12.4.3提取数据对象

  提供者的类 349

  12.5小结 354

  第13章大规模的代码组织 355

  13.1命名空间 355

  13.1.1命名指导原则与

  命名空间的组织 355

  13.1.2嵌套的命名空间 356

  13.1.3修改根命名空间的名称 356

  13.1.4使用导入语句 357

  13.2程序集 358

  13.2.1二进制重用 358

  13.2.2命名空间组织的

  指导原则 360

  13.2.3依赖性方面的考虑 364

  13.3VisualBasic项目文件的

  结构组织 370

  13.3.1Refactor!中的

  MoveTypetoFile重构 371

  13.3.2部分类 373

  13.3.3继承窗体 373

  13.3.4抽象窗体的继承 374

  13.3.5将抽象窗体的工作

  委托给窗体辅助类 375

  13.4Rent-a-Wheels中命名空间

  的组织与Windows

  窗体继承 377

  13.4.1通过抽象窗体辅助

  模式的应用程序来提

  取父管理窗体 377

  13.4.2命名空间和

  程序集的重组 384

  13.5小结 386

  第Ⅴ部分重构的运用

  第14章重构成模式 389

  14.1到底什么是设计模式 389

  14.1.1设计模式的定义 390

  14.1.2模式的分类 391

  14.1.3模式的元素 391

  14.1.4权衡设计模式的利弊 392

  14.1.5模式的使用 392

  14.2设计模式的示例:

  AbstractFactory 392

  14.2.1名称 393

  14.2.2问题 393

  14.2.3解决方案 402

  14.2.4后果 405

  14.3DependencyInjection模式 407

  14.3.1问题 407

  14.3.2解决方案 410

  14.3.3基于构造函数注入与

  基于属性注入 410

  14.3.4应该注入什么服务实现 411

  14.3.5后果 412

  14.3.6重构成DI 415

  14.4重构成模式以及

  Rent-a-Wheels应用程序 415

  14.4.1消除.NET架构中所

  提供的重复功能的代码 415

  14.4.2通过依赖注入向

  GUI类中注入Data类 416

  14.4.3CRUD持久化模式 418

  14.5小结 418

  第15章LINQ和VB2008的

  其他增强功能 421

  15.1局部变量的类型推断 421

  15.2XML生产能力的增强 422

  15.2.1XML字面量 422

  15.2.2通过XML轴属性

  导航XML 426

  15.2.3将XML字面量

  提取到Refactor!中

  的资源中 426

  15.3通过LINQ查询对象 427

  15.3.1旧示例换"新颜" 430

  15.3.2LINQtoSQL的对象/

  关系映射 433

  15.3.3LINQ和Rent-a-Wheels

  应用程序 436

  15.4小结 445

  第16章VB遗留代码的未来 447

  16.1是否需要迁移 448

  16.1.1迁移不可能是百分

  之百自动进行的 448

  16.1.2VB6和VB.NET

  代码可以互操作 449

  16.1.3迁移工具和库 450

  16.2初步的VB6重构 451

  16.2.1打破整体化 452

  16.2.2条件编译的处理 453

  16.3将被迁移的代码放到测试

  护具中 453

  16.3.1引入功能测试护具 454

  16.3.2实现功能测试护具 454

  16.4遗留代码的升级 457

  16.4.1静态严格类型化 458

  16.4.2将设计从过程式设计

  移到面向对象设计

  的范例中 458

  16.4.3引入继承 459

  16.4.4利用参数化的构造函数 460

  16.4.5将泛型容器用于额外

  的类型安全 460

  16.4.6异常处理的升级 462

  16.4.7XML注释的实现 462

  16.4.8释放.NET中的资源 462

  16.5小结 463

  附录ARefactor!揭密 465

  附录BRent-a-Wheels原型的内部机理和相互联系 467

发表评论

评论列表