
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>coca_reporter/bs.json-系统重构与迁移指南</title>
<meta content='coca_reporter/bs.json,系统重构与迁移指南' name='keywords'>
<meta content='coca_reporter/bs.json,系统重构与迁移指南' name='description'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
<meta name="applicable-device" content="pc,mobile">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<meta name="renderer" content="webkit">
<link rel="stylesheet" href="/static/components/uikit-2.27.5/css/uikit.custom.css">
<link rel="stylesheet" href="/static/components/social-share/social-share.min.css">
<link rel="stylesheet" href="/static/components/highlight/styles/custom.css">
<link rel="stylesheet" href="/static/components/css/base.css">
<link rel="stylesheet" href="/static/components/css/reader.css">
<link rel="stylesheet" href="/static/components/css/markdown.css">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5313208362165053" crossorigin="anonymous"></script>
</head>
<body>
<div class=" book-main-wrap uk-container uk-container-center uk-margin-top ">
<div class="uk-grid">
<div class="uk-width-1-1 reader-wrap ">
<div class=" bottom-nav uk-clearfix ">
<div class="uk-align-left ">
<a href="/book/204/README.md#%E5%9C%A8%E6%95%B4%E4%B8%AA%E6%B5%81%E7%A8%8B%E4%B8%AD%E5%B0%86%E4%BB%B7%E5%80%BC%E5%88%9B%E9%80%A0%E6%9C%80%E5%A4%A7%E5%8C%96">
<i class="nav-icon-left uk-icon-small  uk-icon-caret-left"></i>
<span class="">在整个流程中将价值创造..</span>
</a>
</div>
</div>
<div class="uk-text-center">
<h2 class="book-page-title uk-container-center">
<a href="/book/204/index.html">系统重构与迁移指南</a>
<a target="_blank" rel="nofollow" href="https://github.com/phodal/migration" class="uk-icon-button uk-icon-github" title="github项目地址"></a>
</h2>
</div>
<script type="text/javascript" src="/static/components/js/app_intro.js"></script>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-5313208362165053" data-ad-slot="1328047120"></ins>
<script>(adsbygoogle =window.adsbygoogle ||[]).push({});</script>
<hr class="uk-article-divider">
<div class="book-content-section  md-content-section  uk-margin-bottom">
<p>[ { "EntityName": "mall-admin/src/main/java/com/macro/mall/bo/WebLog.java", "BS": "dataClass", "Size": 22 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/component/WebLogAspect.java", "Line": "56", "BS": "longMethod", "Description": "method length: 35", "Size": 35 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/config/MyBatisConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/MinioUploadDto.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsMoneyInfoParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderDeliveryParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderDetail.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderQueryParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderReturnApplyResult.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsReceiverInfoParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsReturnApplyQueryParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OmsUpdateStatusParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OssCallbackParam.java", "BS": "dataClass", "Size": 6 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OssCallbackResult.java", "BS": "dataClass", "Size": 10 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/OssPolicyResult.java", "BS": "dataClass", "Size": 12 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsBrandParam.java", "BS": "dataClass", "Size": 16 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductAttributeCategoryItem.java", "BS": "dataClass", "Size": 2 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductAttributeParam.java", "BS": "dataClass", "Size": 22 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductCategoryParam.java", "BS": "dataClass", "Size": 20 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductCategoryWithChildrenItem.java", "BS": "dataClass", "Size": 2 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductParam.java", "BS": "dataClass", "Size": 14 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductQueryParam.java", "BS": "dataClass", "Size": 12 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductResult.java", "BS": "dataClass", "Size": 2 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/ProductAttrInfo.java", "BS": "dataClass", "Size": 4 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/SmsCouponParam.java", "BS": "dataClass", "Size": 4 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/SmsFlashPromotionProduct.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/SmsFlashPromotionSessionDetail.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/UmsAdminLoginParam.java", "BS": "dataClass", "Size": 4 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/UmsAdminParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/UmsPermissionNode.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/dto/UpdateAdminPasswordParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/service/impl/OssServiceImpl.java", "Line": "50", "BS": "longMethod", "Description": "method length: 37", "Size": 37 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductServiceImpl.java", "Line": "120", "BS": "longMethod", "Description": "method length: 44", "Size": 44 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductServiceImpl.java", "Line": "266", "BS": "longMethod", "Description": "method length: 59", "Size": 59 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeAdvertiseServiceImpl.java", "Line": "60", "BS": "longMethod", "Description": "method length: 32", "Size": 32 }, { "EntityName": "mall-admin/src/main/java/com/macro/mall/validator/FlagValidator.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-demo/src/main/java/com/macro/mall/demo/config/MyBatisConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-demo/src/main/java/com/macro/mall/demo/dto/PmsBrandDto.java", "BS": "dataClass", "Size": 16 }, { "EntityName": "mall-demo/src/main/java/com/macro/mall/demo/validator/FlagValidator.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/CommentGenerator.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpCategoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpCategoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 90", "Size": 90 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 102", "Size": 102 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsMemberReportExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsMemberReportExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 116", "Size": 116 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 78", "Size": 78 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaProductRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaProductRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCategoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCategoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 90", "Size": 90 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCommentExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCommentExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 104", "Size": 104 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 204", "Size": 204 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectProductRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectProductRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCategoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCategoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 90", "Size": 90 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCommentExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCommentExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 104", "Size": 104 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 152", "Size": 152 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsCartItemExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsCartItemExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 288", "Size": 288 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsCompanyAddressExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsCompanyAddressExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 148", "Size": 148 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrder.java", "Line": "494", "BS": "longMethod", "Description": "method length: 52", "Size": 52 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 576", "Size": 576 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java", "Line": "265", "BS": "longMethod", "Description": "method length: 32", "Size": 32 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItemExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItemExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 324", "Size": 324 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderOperateHistoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderOperateHistoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 90", "Size": 90 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnApply.java", "Line": "308", "BS": "longMethod", "Description": "method length: 35", "Size": 35 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnApplyExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnApplyExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 368", "Size": 368 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnReasonExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnReasonExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderSettingExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderSettingExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 86", "Size": 86 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 92", "Size": 92 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumPicExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumPicExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 52", "Size": 52 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsBrandExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsBrandExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 142", "Size": 142 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 194", "Size": 194 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentReplayExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentReplayExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 104", "Size": 104 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsFeightTemplateExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsFeightTemplateExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 114", "Size": 114 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsMemberPriceExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsMemberPriceExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProduct.java", "Line": "462", "BS": "longMethod", "Description": "method length: 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeCategoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeCategoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 64", "Size": 64 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 162", "Size": 162 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeValueExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeValueExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 64", "Size": 64 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryAttributeRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryAttributeRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 154", "Size": 154 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 494", "Size": 494 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductFullReductionExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductFullReductionExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 62", "Size": 62 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductLadderExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductLadderExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 74", "Size": 74 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductOperateLogExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductOperateLogExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 160", "Size": 160 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductVertifyRecordExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductVertifyRecordExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 90", "Size": 90 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsSkuStockExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/PmsSkuStockExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 180", "Size": 180 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 236", "Size": 236 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponHistoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponHistoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 152", "Size": 152 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductCategoryRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductCategoryRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 78", "Size": 78 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 78", "Size": 78 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 91", "Size": 91 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionLogExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionLogExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 102", "Size": 102 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionProductRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionProductRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 110", "Size": 110 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionSessionExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionSessionExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 91", "Size": 91 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeAdvertiseExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeAdvertiseExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 166", "Size": 166 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeBrandExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeBrandExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeNewProductExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeNewProductExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendProductExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendProductExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendSubjectExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendSubjectExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 146", "Size": 146 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminLoginLogExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminLoginLogExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 92", "Size": 92 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminPermissionRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminPermissionRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 62", "Size": 62 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminRoleRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminRoleRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsGrowthChangeHistoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsGrowthChangeHistoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 114", "Size": 114 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationChangeHistoryExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationChangeHistoryExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 114", "Size": 114 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationConsumeSettingExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationConsumeSettingExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 74", "Size": 74 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 261", "Size": 261 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLevelExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLevelExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 174", "Size": 174 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLoginLogExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLoginLogExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 104", "Size": 104 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberMemberTagRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberMemberTagRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberProductCategoryRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberProductCategoryRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberReceiveAddressExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberReceiveAddressExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 148", "Size": 148 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberRuleSettingExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberRuleSettingExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 98", "Size": 98 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberStatisticsInfoExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberStatisticsInfoExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 206", "Size": 206 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTagExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTagExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 64", "Size": 64 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTaskExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTaskExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 76", "Size": 76 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsPermissionExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsPermissionExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 142", "Size": 142 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 102", "Size": 102 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsRolePermissionRelationExample.java", "BS": "refusedBequest", "Size": 0 }, { "EntityName": "mall-mbg/src/main/java/com/macro/mall/model/UmsRolePermissionRelationExample.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 50", "Size": 50 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/config/MyBatisConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/config/SpringTaskConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/CartProduct.java", "BS": "dataClass", "Size": 4 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/CartPromotionItem.java", "BS": "dataClass", "Size": 10 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/ConfirmOrderResult.java", "BS": "dataClass", "Size": 20 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/FlashPromotionProduct.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/HomeContentResult.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/HomeFlashPromotion.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberBrandAttention.java", "BS": "dataClass", "Size": 20 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberProductCollection.java", "BS": "dataClass", "Size": 20 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberReadHistory.java", "BS": "dataClass", "Size": 20 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/OmsOrderDetail.java", "BS": "dataClass", "Size": 2 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/OmsOrderReturnApplyParam.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/OrderParam.java", "BS": "dataClass", "Size": 8 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/PromotionProduct.java", "BS": "dataClass", "Size": 6 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/QueueEnum.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/domain/SmsCouponHistoryDetail.java", "BS": "dataClass", "Size": 6 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java", "Line": "86", "BS": "longMethod", "Description": "method length: 144", "Size": 144 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java", "BS": "largeClass", "Description": "methods number (without getter/setter): 22", "Size": 22 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPromotionServiceImpl.java", "Line": "30", "BS": "longMethod", "Description": "method length: 79", "Size": 79 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCouponServiceImpl.java", "Line": "33", "BS": "longMethod", "Description": "method length: 38", "Size": 38 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCouponServiceImpl.java", "Line": "106", "BS": "longMethod", "Description": "method length: 55", "Size": 55 }, { "EntityName": "mall-portal/src/main/java/com/macro/mall/portal/util/DateUtil.java", "BS": "dataClass", "Size": 2 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/config/MyBatisConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/controller/EsProductController.java", "Line": "80", "BS": "longParameterList", "Description": "[{"Name":"String","Type":"keyword"},{"Name":"Long","Type":"brandId"},{"Name":"Long","Type":"productCategoryId"},{"Name":"Integer","Type":"pageNum"},{"Name":"Integer","Type":"pageSize"},{"Name":"Integer","Type":"sort"}]", "Size": 6 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/domain/EsProduct.java", "BS": "dataClass", "Size": 36 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/domain/EsProductAttributeValue.java", "BS": "dataClass", "Size": 10 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/domain/EsProductRelatedInfo.java", "BS": "dataClass", "Size": 12 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/service/EsProductService.java", "Line": "42", "BS": "longParameterList", "Description": "[{"Name":"String","Type":"keyword"},{"Name":"Long","Type":"brandId"},{"Name":"Long","Type":"productCategoryId"},{"Name":"Integer","Type":"pageNum"},{"Name":"Integer","Type":"pageSize"},{"Name":"Integer","Type":"sort"}]", "Size": 6 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java", "Line": "106", "BS": "longMethod", "Description": "method length: 55", "Size": 55 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java", "Line": "106", "BS": "longParameterList", "Description": "[{"Name":"String","Type":"keyword"},{"Name":"Long","Type":"brandId"},{"Name":"Long","Type":"productCategoryId"},{"Name":"Integer","Type":"pageNum"},{"Name":"Integer","Type":"pageSize"},{"Name":"Integer","Type":"sort"}]", "Size": 6 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java", "Line": "164", "BS": "longMethod", "Description": "method length: 33", "Size": 33 }, { "EntityName": "mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java", "Line": "232", "BS": "longMethod", "Description": "method length: 39", "Size": 39 }, { "EntityName": "mall-security/src/main/java/com/macro/mall/security/config/IgnoreUrlsConfig.java", "BS": "lazyElement", "Size": 0 }, { "EntityName": "mall-security/src/main/java/com/macro/mall/security/config/SecurityConfig.java", "BS": "refusedBequest", "Size": 0 } ]</p>
</div>
<hr class="uk-article-divider">
<div class="uk-block uk-block-muted uk-padding-top-remove uk-padding-bottom-remove uk-margin-large-top  book-recommend-wrap">
<div class="uk-margin-top uk-margin-bottom uk-margin-left uk-margin-right">
<div class="uk-margin uk-text-muted "><i class="uk-icon-outdent uk-icon-justify uk-margin-small-right"></i>书籍推荐</div>
<div class="books">
<ul class="uk-book-list">
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/117/index.html">
<img class="uk-book-cover" src="/static/icons/48/code_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/117/index.html">成为专业程序员路上用到的各种优秀资料、神器及框架</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/62.html">tzivanmoe</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title=""></span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title=""></span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="code">code</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">26页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2018年7月1日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 0个">0</span>
</div>
</div>
</div>
</li>
<hr>
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/152/index.html">
<img class="uk-book-cover" src="/static/icons/48/code_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/152/index.html">简明Excel VBA</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/84.html">Youchien</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="code">code</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="visualstudio">visualstudio</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">53页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2019年3月24日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 10个">10</span>
</div>
</div>
</div>
</li>
<hr>
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/205/index.html">
<img class="uk-book-cover" src="/static/icons/48/code_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/205/index.html">从0到1实战微服务架构</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/115.html">skyline75489</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="code">code</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="java">java</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="mysql">mysql</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="netty">netty</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="nginx">nginx</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">62页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2021年10月24日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 1个">1</span>
</div>
</div>
</div>
</li>
<hr>
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/10/index.html">
<img class="uk-book-cover" src="/static/icons/48/java_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/10/index.html">Java 编码规范</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/6.html">waylau</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="java">java</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">12页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2018年5月3日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 127个">127</span>
</div>
</div>
</div>
</li>
<hr>
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/155/index.html">
<img class="uk-book-cover" src="/static/icons/48/code_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/155/index.html">CHNote，Apple设备、Git、Shell等使用教程</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/87.html">wanggw911</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="code">code</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">21页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2019年5月12日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 0个">0</span>
</div>
</div>
</div>
</li>
<hr>
<li>
<div class="uk-book-item">
<div class="uk-book-header uk-clearfix">
<a href="/book/100/index.html">
<img class="uk-book-cover" src="/static/icons/48/lua_48.png" height="48px" alt="">
</a>
<h4 class="uk-book-title uk-margin-small-bottom"><a href="/book/100/index.html">Lua编程入门</a></h4>
<div class="uk-book-meta  uk-text-middle uk-float-left">
<a class="uk-margin-small-right  uk-text-middle user-name " href="/user/61.html">andycai</a>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-badge uk-badge-notification  book-subject" title="lua">lua</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">14页</span>
<span class="uk-margin-small-right  uk-text-middle">•</span>
<span class="uk-margin-small-right  uk-text-middle">2018年6月29日</span>
</div>
<div class="uk-book-tip uk-float-right  uk-text-middle">
<span class="uk-badge uk-badge-notification" title="github star 192个">192</span>
</div>
</div>
</div>
</li>
<hr>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<nav class="tm-navbar uk-navbar uk-navbar-attached reader-nav">
<div class="uk-float-left uk-margin-small-top">
<a href="javascript:;" title="目录菜单" class="show-menu  uk-icon-hover  uk-icon-align-justify uk-margin-right"></a>
<div data-uk-dropdown="{mode:'click',pos:'bottom-left'}" class="font-setting-wrap">
<a class="uk-icon-hover uk-icon-font uk-margin-right" aria-label="字体设置" href="javascript:;"></a>
<div class="uk-dropdown dropdown-menu">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons uk-clearfix">
<button class="uk-button-link button size-2 font-reduce">小字</button>
<button class="uk-button-link button size-2 font-enlarge">大字</button>
</div>
<hr>
<div class="buttons uk-clearfix">
<button class="uk-button-link button size-2 font-1 ">宋体</button>
<button class="uk-button-link button size-2 font-2 ">黑体</button>
</div>
<hr>
<div class="buttons uk-clearfix">
<button class="uk-button-link button size-3 color-theme-sun "><i class="uk-icon-sun-o"></i>白天</button>
<button class="uk-button-link button size-3 color-theme-eye "><i class="uk-icon-eye"></i>护眼</button>
<button class="uk-button-link button size-3 color-theme-moon "><i class="uk-icon-moon-o"></i>夜晚</button></div>
</div>
</div>
<a class="logo uk-margin-right" href="/" title="返回首页"><img class="" src="/static/components/images/icon_32.png" /></a>
</div>
<div class="uk-navbar-flip  uk-hidden-small">
<div id="share-box"></div>
</div>
</nav>
<div id="menu-id" class="uk-offcanvas reader-offcanvas">
<div class="uk-offcanvas-bar">
<ul class="book-menu-bar uk-nav uk-nav-offcanvas" data-uk-nav>
<li>
<a href="/book/204/index.html" data-book-page-rel-url="index.html" data-book-page-id="0" title="封面">封面</a>
</li>
<li>
<a class="pjax" href="/book/204/readme.html" data-book-page-rel-url="readme.html" data-book-page-id="0" title="简介">简介</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%86%8D%E8%AF%B4%E9%81%97%E7%95%99%E7%B3%BB%E7%BB%9F%E9%87%8D%E6%9E%84" title="再说遗留系统重构" data-book-page-rel-url="README.md#%E5%86%8D%E8%AF%B4%E9%81%97%E7%95%99%E7%B3%BB%E7%BB%9F%E9%87%8D%E6%9E%84" data-book-page-id="13541">再说遗留系统重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%87%8D%E6%9E%84%EF%BC%9F" title="为什么重构？" data-book-page-rel-url="README.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%87%8D%E6%9E%84%EF%BC%9F" data-book-page-id="13542">为什么重构？</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E7%9A%84%E5%8A%A8%E6%9C%BA" title="重构的动机" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E7%9A%84%E5%8A%A8%E6%9C%BA" data-book-page-id="13543">重构的动机</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E4%B8%8D%E4%B8%80%E5%AE%9A%E8%83%BD%E5%B8%A6%E6%9D%A5%E4%BB%80%E4%B9%88%EF%BC%9F" title="重构不一定能带来什么？" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E4%B8%8D%E4%B8%80%E5%AE%9A%E8%83%BD%E5%B8%A6%E6%9D%A5%E4%BB%80%E4%B9%88%EF%BC%9F" data-book-page-id="13544">重构不一定能带来什么？</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E6%98%AF%E4%B8%80%E7%A7%8D%E6%96%87%E5%8C%96" title="重构是一种文化" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E6%98%AF%E4%B8%80%E7%A7%8D%E6%96%87%E5%8C%96" data-book-page-id="13545">重构是一种文化</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%A4%A7%E8%A7%84%E6%A8%A1%E9%87%8D%E6%9E%84%E7%9A%84%E6%97%B6%E6%9C%BA" title="大规模重构的时机" data-book-page-rel-url="README.md#%E5%A4%A7%E8%A7%84%E6%A8%A1%E9%87%8D%E6%9E%84%E7%9A%84%E6%97%B6%E6%9C%BA" data-book-page-id="13546">大规模重构的时机</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AF%B4%E6%B8%85%E9%87%8D%E6%9E%84%E7%9A%84%E4%BB%B7%E5%80%BC" title="说清重构的价值" data-book-page-rel-url="README.md#%E8%AF%B4%E6%B8%85%E9%87%8D%E6%9E%84%E7%9A%84%E4%BB%B7%E5%80%BC" data-book-page-id="13547">说清重构的价值</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%B3%BB%E7%BB%9F%E9%87%8D%E6%9E%84%E6%A8%A1%E5%BC%8F%E4%B8%8E%E5%8E%9F%E5%88%99" title="系统重构模式与原则" data-book-page-rel-url="README.md#%E7%B3%BB%E7%BB%9F%E9%87%8D%E6%9E%84%E6%A8%A1%E5%BC%8F%E4%B8%8E%E5%8E%9F%E5%88%99" data-book-page-id="13548">系统重构模式与原则</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E6%A8%A1%E5%BC%8F%EF%BC%9Aipdca" title="重构模式：EPDCA" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E6%A8%A1%E5%BC%8F%EF%BC%9Aipdca" data-book-page-id="13549">重构模式：EPDCA</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9B%9B%E7%BA%A7%E9%87%8D%E6%9E%84" title="四级重构" data-book-page-rel-url="README.md#%E5%9B%9B%E7%BA%A7%E9%87%8D%E6%9E%84" data-book-page-id="13550">四级重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B0%8F%E6%AD%A5%E5%89%8D%E8%BF%9B" title="小步前进" data-book-page-rel-url="README.md#%E5%B0%8F%E6%AD%A5%E5%89%8D%E8%BF%9B" data-book-page-id="13551">小步前进</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#git--%E5%B7%A5%E4%BD%9C%E6%B5%81" title="Git 工作流" data-book-page-rel-url="README.md#git--%E5%B7%A5%E4%BD%9C%E6%B5%81" data-book-page-id="13552">Git 工作流</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#master-%E6%9C%BA%E5%88%B6" title="Master 机制" data-book-page-rel-url="README.md#master-%E6%9C%BA%E5%88%B6" data-book-page-id="13553">Master 机制</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#pr-%E6%9C%BA%E5%88%B6" title="PR 机制" data-book-page-rel-url="README.md#pr-%E6%9C%BA%E5%88%B6" data-book-page-id="13554">PR 机制</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%BB%BA%E7%AB%8B%E8%BF%9C%E6%99%AF%E4%B8%8E%E6%96%B9%E5%90%91" title="建立远景与方向" data-book-page-rel-url="README.md#%E5%BB%BA%E7%AB%8B%E8%BF%9C%E6%99%AF%E4%B8%8E%E6%96%B9%E5%90%91" data-book-page-id="13555">建立远景与方向</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8B%89%E9%80%9A%EF%BC%9A%E5%AF%B9%E9%BD%90%E7%9B%AE%E6%A0%87" title="拉通：对齐目标" data-book-page-rel-url="README.md#%E6%8B%89%E9%80%9A%EF%BC%9A%E5%AF%B9%E9%BD%90%E7%9B%AE%E6%A0%87" data-book-page-id="13556">拉通：对齐目标</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%98%8E%E7%A1%AE%E6%BD%9C%E5%9C%A8%E9%A3%8E%E9%99%A9" title="明确潜在风险" data-book-page-rel-url="README.md#%E6%98%8E%E7%A1%AE%E6%BD%9C%E5%9C%A8%E9%A3%8E%E9%99%A9" data-book-page-id="13557">明确潜在风险</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BA%BA%E8%AF%84%E4%BC%B0" title="人评估" data-book-page-rel-url="README.md#%E4%BA%BA%E8%AF%84%E4%BC%B0" data-book-page-id="13558">人评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E8%8C%83%E5%9B%B4" title="重构范围" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E8%8C%83%E5%9B%B4" data-book-page-id="13559">重构范围</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BA%A7%E5%87%BA%E7%89%A9" title="产出物" data-book-page-rel-url="README.md#%E4%BA%A7%E5%87%BA%E7%89%A9" data-book-page-id="13560">产出物</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#kpi-%E5%BA%A6%E9%87%8F" title="KPI 度量" data-book-page-rel-url="README.md#kpi-%E5%BA%A6%E9%87%8F" data-book-page-id="13561">KPI 度量</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E5%BB%BA%E8%A7%84%E8%8C%83" title="重建规范" data-book-page-rel-url="README.md#%E9%87%8D%E5%BB%BA%E8%A7%84%E8%8C%83" data-book-page-id="13562">重建规范</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9B%A2%E9%98%9F%E8%B5%8B%E8%83%BD" title="团队赋能" data-book-page-rel-url="README.md#%E5%9B%A2%E9%98%9F%E8%B5%8B%E8%83%BD" data-book-page-id="13563">团队赋能</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%8E%9F%E5%88%99%E4%B8%8E%E6%A8%A1%E5%BC%8F" title="原则与模式" data-book-page-rel-url="README.md#%E5%8E%9F%E5%88%99%E4%B8%8E%E6%A8%A1%E5%BC%8F" data-book-page-id="13564">原则与模式</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E8%AF%84%E4%BC%B0%E4%B8%8E%E5%BA%A6%E9%87%8F" title="重构评估与度量" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E8%AF%84%E4%BC%B0%E4%B8%8E%E5%BA%A6%E9%87%8F" data-book-page-id="13565">重构评估与度量</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF%E5%80%BA%E5%8A%A1" title="识别技术债务" data-book-page-rel-url="README.md#%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF%E5%80%BA%E5%8A%A1" data-book-page-id="13566">识别技术债务</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8A%80%E6%9C%AF%E5%80%BA%E9%A3%8E%E6%9A%B4" title="技术债风暴" data-book-page-rel-url="README.md#%E6%8A%80%E6%9C%AF%E5%80%BA%E9%A3%8E%E6%9A%B4" data-book-page-id="13567">技术债风暴</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0%EF%BC%9A%E6%8A%80%E6%9C%AF%E9%A9%B1%E5%8A%A8-vs-%E4%B8%9A%E5%8A%A1%E9%A9%B1%E5%8A%A8" title="架构评估：技术驱动 vs 业务驱动" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0%EF%BC%9A%E6%8A%80%E6%9C%AF%E9%A9%B1%E5%8A%A8-vs-%E4%B8%9A%E5%8A%A1%E9%A9%B1%E5%8A%A8" data-book-page-id="13568">架构评估：技术驱动 vs 业务驱动</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E8%AF%84%E4%BC%B0%EF%BC%9A%E6%94%B6%E9%9B%86-bad-smell" title="代码评估：收集 bad smell" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E8%AF%84%E4%BC%B0%EF%BC%9A%E6%94%B6%E9%9B%86-bad-smell" data-book-page-id="13569">代码评估：收集 bad smell</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%94%B6%E9%9B%86-todo" title="收集 Todo" data-book-page-rel-url="README.md#%E6%94%B6%E9%9B%86-todo" data-book-page-id="13570">收集 Todo</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B5%8B%E8%AF%95%E5%92%8C%E6%96%87%E6%A1%A3%E8%AF%84%E4%BC%B0" title="测试和文档评估" data-book-page-rel-url="README.md#%E6%B5%8B%E8%AF%95%E5%92%8C%E6%96%87%E6%A1%A3%E8%AF%84%E4%BC%B0" data-book-page-id="13571">测试和文档评估</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%A1%B9%E7%9B%AE%E8%AF%84%E4%BC%B0" title="项目评估" data-book-page-rel-url="README.md#%E9%A1%B9%E7%9B%AE%E8%AF%84%E4%BC%B0" data-book-page-id="13572">项目评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%BC%96%E5%86%99%E5%B7%A5%E5%85%B7%E8%AF%84%E4%BC%B0" title="编写工具评估" data-book-page-rel-url="README.md#%E7%BC%96%E5%86%99%E5%B7%A5%E5%85%B7%E8%AF%84%E4%BC%B0" data-book-page-id="13573">编写工具评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E8%AF%84%E4%BC%B0%E5%B7%A5%E5%85%B7" title="代码评估工具" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E8%AF%84%E4%BC%B0%E5%B7%A5%E5%85%B7" data-book-page-id="13574">代码评估工具</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%9C%9F%E5%AE%9E%E7%9A%84%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87" title="真实的测试覆盖率" data-book-page-rel-url="README.md#%E7%9C%9F%E5%AE%9E%E7%9A%84%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87" data-book-page-id="13575">真实的测试覆盖率</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%8F%AF%E6%B5%8B%E8%AF%95%E6%80%A7%E8%AF%84%E4%BC%B0" title="可测试性评估" data-book-page-rel-url="README.md#%E5%8F%AF%E6%B5%8B%E8%AF%95%E6%80%A7%E8%AF%84%E4%BC%B0" data-book-page-id="13576">可测试性评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%BA%A6%E9%87%8F" title="度量" data-book-page-rel-url="README.md#%E5%BA%A6%E9%87%8F" data-book-page-id="13577">度量</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AF%BB%E6%89%BE%E4%B8%93%E4%B8%9A%E4%BA%BA%E5%A3%AB" title="寻找专业人士" data-book-page-rel-url="README.md#%E5%AF%BB%E6%89%BE%E4%B8%93%E4%B8%9A%E4%BA%BA%E5%A3%AB" data-book-page-id="13578">寻找专业人士</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E5%87%86%E5%85%A5%E6%9D%A1%E4%BB%B6" title="重构准入条件" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E5%87%86%E5%85%A5%E6%9D%A1%E4%BB%B6" data-book-page-id="13579">重构准入条件</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B7%A5%E5%85%B7%E5%87%86%E5%A4%87" title="工具准备" data-book-page-rel-url="README.md#%E5%B7%A5%E5%85%B7%E5%87%86%E5%A4%87" data-book-page-id="13580">工具准备</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E7%9C%8B%E6%9D%BF" title="重构看板" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E7%9C%8B%E6%9D%BF" data-book-page-id="13581">重构看板</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6" title="版本控制" data-book-page-rel-url="README.md#%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6" data-book-page-id="13582">版本控制</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%87%AA%E5%8A%A8%E5%8C%96%E9%87%8D%E6%9E%84%E5%B7%A5%E5%85%B7" title="自动化重构工具" data-book-page-rel-url="README.md#%E8%87%AA%E5%8A%A8%E5%8C%96%E9%87%8D%E6%9E%84%E5%B7%A5%E5%85%B7" data-book-page-id="13583">自动化重构工具</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83" title="持续集成环境" data-book-page-rel-url="README.md#%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83" data-book-page-id="13584">持续集成环境</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AE%B0%E5%BD%95" title="记录" data-book-page-rel-url="README.md#%E8%AE%B0%E5%BD%95" data-book-page-id="13585">记录</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8E%A2%E7%B4%A2%E6%80%A7%E9%87%8D%E6%9E%84%EF%BC%9A%E5%8F%AF%E8%A1%8C%E6%96%B9%E6%A1%88" title="探索性重构：可行方案" data-book-page-rel-url="README.md#%E6%8E%A2%E7%B4%A2%E6%80%A7%E9%87%8D%E6%9E%84%EF%BC%9A%E5%8F%AF%E8%A1%8C%E6%96%B9%E6%A1%88" data-book-page-id="13586">探索性重构：可行方案</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%87%86%E5%A4%87%E7%9F%A5%E8%AF%86%EF%BC%9A%E5%9D%8F%E5%91%B3%E9%81%93%E7%9A%84%E6%A8%A1%E5%BC%8F" title="准备知识：坏味道的模式" data-book-page-rel-url="README.md#%E5%87%86%E5%A4%87%E7%9F%A5%E8%AF%86%EF%BC%9A%E5%9D%8F%E5%91%B3%E9%81%93%E7%9A%84%E6%A8%A1%E5%BC%8F" data-book-page-id="13587">准备知识：坏味道的模式</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#c4-%E6%A8%A1%E5%9E%8B" title="C4 模型" data-book-page-rel-url="README.md#c4-%E6%A8%A1%E5%9E%8B" data-book-page-id="13588">C4 模型</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8E%A2%E7%B4%A2%E6%A8%A1%E5%BC%8F" title="探索模式" data-book-page-rel-url="README.md#%E6%8E%A2%E7%B4%A2%E6%A8%A1%E5%BC%8F" data-book-page-id="13589">探索模式</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#1-%E4%BB%8E%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84%E5%88%B0%E5%85%B7%E4%BD%93%E4%BB%A3%E7%A0%81" title="1. 从分层架构到具体代码" data-book-page-rel-url="README.md#1-%E4%BB%8E%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84%E5%88%B0%E5%85%B7%E4%BD%93%E4%BB%A3%E7%A0%81" data-book-page-id="13590">1. 从分层架构到具体代码</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#2-%E4%BB%8E%E5%A4%96%E9%83%A8%E9%80%82%E9%85%8D%E5%99%A8%E5%88%B0%E5%86%85%E9%83%A8%E9%80%82%E9%85%8D%E5%99%A8" title="2. 从外部适配器到内部适配器" data-book-page-rel-url="README.md#2-%E4%BB%8E%E5%A4%96%E9%83%A8%E9%80%82%E9%85%8D%E5%99%A8%E5%88%B0%E5%86%85%E9%83%A8%E9%80%82%E9%85%8D%E5%99%A8" data-book-page-id="13591">2. 从外部适配器到内部适配器</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#3-%E6%9F%A5%E7%9C%8B%E6%B5%8B%E8%AF%95%E6%83%85%E5%86%B5" title="3. 查看测试情况" data-book-page-rel-url="README.md#3-%E6%9F%A5%E7%9C%8B%E6%B5%8B%E8%AF%95%E6%83%85%E5%86%B5" data-book-page-id="13592">3. 查看测试情况</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#4-%E9%92%88%E5%AF%B9%E4%BA%8E%E6%9C%80%E5%A4%8D%E6%9D%82%E7%9A%84%E6%83%85%E5%BD%A2%E5%92%8C%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E6%83%85%E5%BD%A2" title="4. 针对于最复杂的情形和最简单的情形" data-book-page-rel-url="README.md#4-%E9%92%88%E5%AF%B9%E4%BA%8E%E6%9C%80%E5%A4%8D%E6%9D%82%E7%9A%84%E6%83%85%E5%BD%A2%E5%92%8C%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E6%83%85%E5%BD%A2" data-book-page-id="13593">4. 针对于最复杂的情形和最简单的情形</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B7%A5%E5%85%B7%EF%BC%9Aapi-%E5%88%97%E8%A1%A8%E5%92%8C%E8%B0%83%E7%94%A8%E5%85%B3%E7%B3%BB" title="工具：API 列表和调用关系" data-book-page-rel-url="README.md#%E5%B7%A5%E5%85%B7%EF%BC%9Aapi-%E5%88%97%E8%A1%A8%E5%92%8C%E8%B0%83%E7%94%A8%E5%85%B3%E7%B3%BB" data-book-page-id="13594">工具：API 列表和调用关系</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%84%E5%BB%BA%E9%A2%86%E5%9F%9F%E7%9F%A5%E8%AF%86" title="构建领域知识" data-book-page-rel-url="README.md#%E6%9E%84%E5%BB%BA%E9%A2%86%E5%9F%9F%E7%9F%A5%E8%AF%86" data-book-page-id="13595">构建领域知识</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BA%86%E8%A7%A3%E4%B8%9A%E5%8A%A1%E6%9E%B6%E6%9E%84" title="了解业务架构" data-book-page-rel-url="README.md#%E4%BA%86%E8%A7%A3%E4%B8%9A%E5%8A%A1%E6%9E%B6%E6%9E%84" data-book-page-id="13596">了解业务架构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E5%85%A8%E6%99%AF" title="架构全景" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E5%85%A8%E6%99%AF" data-book-page-id="13597">架构全景</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%A2%86%E5%9F%9F%E5%90%8D%E8%AF%8D%E8%A1%A8" title="领域名词表" data-book-page-rel-url="README.md#%E9%A2%86%E5%9F%9F%E5%90%8D%E8%AF%8D%E8%A1%A8" data-book-page-id="13598">领域名词表</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AF%BB%E6%89%BE%E9%AB%98%E5%BC%95%E7%94%A8--%E9%AB%98%E4%BF%AE%E6%94%B9" title="寻找高引用 + 高修改" data-book-page-rel-url="README.md#%E5%AF%BB%E6%89%BE%E9%AB%98%E5%BC%95%E7%94%A8--%E9%AB%98%E4%BF%AE%E6%94%B9" data-book-page-id="13599">寻找高引用 + 高修改</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%AC%AC%E4%B8%80%E6%AD%A5%EF%BC%9A%E9%98%B2%E6%8A%A4%E7%BD%91" title="第一步：防护网" data-book-page-rel-url="README.md#%E7%AC%AC%E4%B8%80%E6%AD%A5%EF%BC%9A%E9%98%B2%E6%8A%A4%E7%BD%91" data-book-page-id="13600">第一步：防护网</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%98%B2%E6%8A%A4%E7%BD%91%E7%AD%96%E7%95%A5" title="防护网策略" data-book-page-rel-url="README.md#%E9%98%B2%E6%8A%A4%E7%BD%91%E7%AD%96%E7%95%A5" data-book-page-id="13601">防护网策略</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%B5%8B%E8%AF%95" title="第一个测试" data-book-page-rel-url="README.md#%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%B5%8B%E8%AF%95" data-book-page-id="13602">第一个测试</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E9%87%8D%E6%9E%84" title="持续集成重构" data-book-page-rel-url="README.md#%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E9%87%8D%E6%9E%84" data-book-page-id="13603">持续集成重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A3%80%E8%A7%86%E6%B5%8B%E8%AF%95" title="检视测试" data-book-page-rel-url="README.md#%E6%A3%80%E8%A7%86%E6%B5%8B%E8%AF%95" data-book-page-id="13604">检视测试</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" title="系统架构重构" data-book-page-rel-url="README.md#%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" data-book-page-id="13605">系统架构重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%AB%98%E8%B4%A8%E9%87%8F%E7%BA%A7-ddd-%E9%87%8D%E6%9E%84%EF%BC%9A%E6%BC%94%E8%BF%9B%E9%A9%B1%E5%8A%A8%E7%9A%84%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4" title="高质量级 DDD 重构：演进驱动的事件风暴" data-book-page-rel-url="README.md#%E9%AB%98%E8%B4%A8%E9%87%8F%E7%BA%A7-ddd-%E9%87%8D%E6%9E%84%EF%BC%9A%E6%BC%94%E8%BF%9B%E9%A9%B1%E5%8A%A8%E7%9A%84%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4" data-book-page-id="13606">高质量级 DDD 重构：演进驱动的事件风暴</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%BD%BB%E9%87%8F%E7%BA%A7-ddd-%E9%87%8D%E6%9E%84%EF%BC%9A%E7%8E%B0%E7%8A%B6%E9%A9%B1%E5%8A%A8%E7%9A%84%E9%A2%86%E5%9F%9F%E6%96%B9%E6%A1%88" title="轻量级 DDD 重构：现状驱动的领域方案" data-book-page-rel-url="README.md#%E8%BD%BB%E9%87%8F%E7%BA%A7-ddd-%E9%87%8D%E6%9E%84%EF%BC%9A%E7%8E%B0%E7%8A%B6%E9%A9%B1%E5%8A%A8%E7%9A%84%E9%A2%86%E5%9F%9F%E6%96%B9%E6%A1%88" data-book-page-id="13607">轻量级 DDD 重构：现状驱动的领域方案</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%99%90%E7%95%8C%E4%B8%8A%E4%B8%8B%E6%96%87%E8%A6%81%E7%B4%A0" title="限界上下文要素" data-book-page-rel-url="README.md#%E9%99%90%E7%95%8C%E4%B8%8A%E4%B8%8B%E6%96%87%E8%A6%81%E7%B4%A0" data-book-page-id="13608">限界上下文要素</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%87%8D%E6%9E%84" title="微服务重构" data-book-page-rel-url="README.md#%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%87%8D%E6%9E%84" data-book-page-id="13609">微服务重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E2%80%A6%E2%80%A6" title="……" data-book-page-rel-url="README.md#%E2%80%A6%E2%80%A6" data-book-page-id="13610">……</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" title="服务架构重构" data-book-page-rel-url="README.md#%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" data-book-page-id="13611">服务架构重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%95%B4%E6%B4%81%E6%9E%B6%E6%9E%84" title="整洁架构" data-book-page-rel-url="README.md#%E6%95%B4%E6%B4%81%E6%9E%B6%E6%9E%84" data-book-page-id="13612">整洁架构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AE%BE%E8%AE%A1%E6%96%B0%E6%9E%B6%E6%9E%84" title="设计新架构" data-book-page-rel-url="README.md#%E8%AE%BE%E8%AE%A1%E6%96%B0%E6%9E%B6%E6%9E%84" data-book-page-id="13613">设计新架构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AE%9E%E6%96%BD%E6%96%B0%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84" title="实施新分层架构" data-book-page-rel-url="README.md#%E5%AE%9E%E6%96%BD%E6%96%B0%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84" data-book-page-id="13614">实施新分层架构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%88%92%E5%88%86%E7%B1%BB%EF%BC%8C%E7%A7%BB%E5%8A%A8%E4%BB%A3%E7%A0%81" title="划分类，移动代码" data-book-page-rel-url="README.md#%E5%88%92%E5%88%86%E7%B1%BB%EF%BC%8C%E7%A7%BB%E5%8A%A8%E4%BB%A3%E7%A0%81" data-book-page-id="13615">划分类，移动代码</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8A%80%E6%9C%AF%E6%A8%A1%E5%9D%97%E5%8C%96--%E9%87%8D%E6%90%AD" title="技术模块化 => 重搭" data-book-page-rel-url="README.md#%E6%8A%80%E6%9C%AF%E6%A8%A1%E5%9D%97%E5%8C%96--%E9%87%8D%E6%90%AD" data-book-page-id="13616">技术模块化 => 重搭</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%B8%AD%E9%97%B4%E6%80%81%E5%88%86%E5%B1%82" title="中间态分层" data-book-page-rel-url="README.md#%E4%B8%AD%E9%97%B4%E6%80%81%E5%88%86%E5%B1%82" data-book-page-id="13617">中间态分层</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%AA%8C%E6%94%B6%E6%9D%A1%E4%BB%B6%EF%BC%9A%E6%9E%84%E5%BB%BA" title="验收条件：构建" data-book-page-rel-url="README.md#%E9%AA%8C%E6%94%B6%E6%9D%A1%E4%BB%B6%EF%BC%9A%E6%9E%84%E5%BB%BA" data-book-page-id="13618">验收条件：构建</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%BD%9C%E5%9C%A8%E9%97%AE%E9%A2%98" title="潜在问题" data-book-page-rel-url="README.md#%E6%BD%9C%E5%9C%A8%E9%97%AE%E9%A2%98" data-book-page-id="13619">潜在问题</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#bean-%E6%B3%A8%E5%85%A5" title="bean 注入" data-book-page-rel-url="README.md#bean-%E6%B3%A8%E5%85%A5" data-book-page-id="13620">bean 注入</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81" title="解决冲突" data-book-page-rel-url="README.md#%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81" data-book-page-id="13621">解决冲突</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%90%8C%E6%AD%A5-api-%E4%BF%AE%E6%94%B9" title="同步 API 修改" data-book-page-rel-url="README.md#%E5%90%8C%E6%AD%A5-api-%E4%BF%AE%E6%94%B9" data-book-page-id="13622">同步 API 修改</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AF%B9%E9%BD%90%E6%96%B0%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84" title="对齐新分层架构" data-book-page-rel-url="README.md#%E5%AF%B9%E9%BD%90%E6%96%B0%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84" data-book-page-id="13623">对齐新分层架构</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%85%AC%E5%85%B1%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84" title="公共代码重构" data-book-page-rel-url="README.md#%E5%85%AC%E5%85%B1%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84" data-book-page-id="13624">公共代码重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AE%83%E7%9C%9F%E6%98%AF%E4%B8%AA-util-%E5%90%97%EF%BC%9F" title="它真是个 util 吗？" data-book-page-rel-url="README.md#%E5%AE%83%E7%9C%9F%E6%98%AF%E4%B8%AA-util-%E5%90%97%EF%BC%9F" data-book-page-id="13625">它真是个 util 吗？</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%BF%87%E5%BA%A6%E8%AE%BE%E8%AE%A1" title="过度设计" data-book-page-rel-url="README.md#%E8%BF%87%E5%BA%A6%E8%AE%BE%E8%AE%A1" data-book-page-id="13626">过度设计</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%EF%BC%9A%E6%B6%88%E9%99%A4%E4%BA%8C%E4%B9%89%E6%80%A7" title="重新定义：消除二义性" data-book-page-rel-url="README.md#%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%EF%BC%9A%E6%B6%88%E9%99%A4%E4%BA%8C%E4%B9%89%E6%80%A7" data-book-page-id="13627">重新定义：消除二义性</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%B1%BB%E8%BF%9B%E8%A1%8C%E5%86%85%E8%81%9A" title="类进行内聚" data-book-page-rel-url="README.md#%E7%B1%BB%E8%BF%9B%E8%A1%8C%E5%86%85%E8%81%9A" data-book-page-id="13628">类进行内聚</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%88%92%E5%88%86%E6%8A%80%E6%9C%AF%E9%83%A8%E5%88%86" title="划分技术部分" data-book-page-rel-url="README.md#%E5%88%92%E5%88%86%E6%8A%80%E6%9C%AF%E9%83%A8%E5%88%86" data-book-page-id="13629">划分技术部分</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%88%92%E5%88%86%E4%B8%9A%E5%8A%A1%E9%83%A8%E5%88%86" title="划分业务部分" data-book-page-rel-url="README.md#%E5%88%92%E5%88%86%E4%B8%9A%E5%8A%A1%E9%83%A8%E5%88%86" data-book-page-id="13630">划分业务部分</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E8%81%8C%E8%B4%A3%E5%B0%91--%E5%B9%B3%E7%BA%A7" title="职责少 => 平级" data-book-page-rel-url="README.md#%E8%81%8C%E8%B4%A3%E5%B0%91--%E5%B9%B3%E7%BA%A7" data-book-page-id="13631">职责少 => 平级</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%B8%9A%E5%8A%A1%E4%BB%A3%E7%A0%81%E5%A4%9A--%E5%86%8D%E6%8C%89%E4%B8%9A%E5%8A%A1%E6%8B%86%E5%88%86" title="业务代码多 => 再按业务拆分" data-book-page-rel-url="README.md#%E4%B8%9A%E5%8A%A1%E4%BB%A3%E7%A0%81%E5%A4%9A--%E5%86%8D%E6%8C%89%E4%B8%9A%E5%8A%A1%E6%8B%86%E5%88%86" data-book-page-id="13632">业务代码多 => 再按业务拆分</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A8%A1%E5%9D%97%E9%87%8D%E6%9E%84" title="模块重构" data-book-page-rel-url="README.md#%E6%A8%A1%E5%9D%97%E9%87%8D%E6%9E%84" data-book-page-id="13633">模块重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%BB%84%E4%BB%B6%E8%81%9A%E5%90%88%E4%B8%89%E5%8E%9F%E5%88%99" title="组件聚合三原则" data-book-page-rel-url="README.md#%E7%BB%84%E4%BB%B6%E8%81%9A%E5%90%88%E4%B8%89%E5%8E%9F%E5%88%99" data-book-page-id="13634">组件聚合三原则</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%89%93%E7%A0%B4%E5%8C%85%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB" title="打破包之间的依赖关系" data-book-page-rel-url="README.md#%E6%89%93%E7%A0%B4%E5%8C%85%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB" data-book-page-id="13635">打破包之间的依赖关系</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE" title="依赖倒置" data-book-page-rel-url="README.md#%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE" data-book-page-id="13636">依赖倒置</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9B%B4%E5%A5%BD%E7%9A%84%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1" title="更好的面向对象" data-book-page-rel-url="README.md#%E6%9B%B4%E5%A5%BD%E7%9A%84%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1" data-book-page-id="13637">更好的面向对象</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B8%85%E7%90%86%E5%9E%83%E5%9C%BE%E4%BB%A3%E7%A0%81" title="清理垃圾代码" data-book-page-rel-url="README.md#%E6%B8%85%E7%90%86%E5%9E%83%E5%9C%BE%E4%BB%A3%E7%A0%81" data-book-page-id="13638">清理垃圾代码</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A8%A1%E5%9E%8B%E9%87%8D%E6%9E%84" title="模型重构" data-book-page-rel-url="README.md#%E6%A8%A1%E5%9E%8B%E9%87%8D%E6%9E%84" data-book-page-id="13639">模型重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E8%81%9A%E5%90%88%E8%A1%8C%E4%B8%BA" title="聚合行为" data-book-page-rel-url="README.md#%E8%81%9A%E5%90%88%E8%A1%8C%E4%B8%BA" data-book-page-id="13640">聚合行为</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%94%B1%E5%86%85%E5%88%B0%E5%A4%96%E5%89%A5%E7%A6%BB%EF%BC%8C%E7%94%B1%E5%A4%96%E5%88%B0%E5%86%85%E8%81%9A%E5%90%88" title="由内到外剥离，由外到内聚合" data-book-page-rel-url="README.md#%E7%94%B1%E5%86%85%E5%88%B0%E5%A4%96%E5%89%A5%E7%A6%BB%EF%BC%8C%E7%94%B1%E5%A4%96%E5%88%B0%E5%86%85%E8%81%9A%E5%90%88" data-book-page-id="13641">由内到外剥离，由外到内聚合</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AF%86%E5%88%AB%E6%A8%A1%E5%BC%8F-1%EF%BC%9A%E8%BE%93%E5%85%A5%E5%8F%82%E6%95%B0" title="识别模式 1：输入参数" data-book-page-rel-url="README.md#%E8%AF%86%E5%88%AB%E6%A8%A1%E5%BC%8F-1%EF%BC%9A%E8%BE%93%E5%85%A5%E5%8F%82%E6%95%B0" data-book-page-id="13642">识别模式 1：输入参数</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AF%86%E5%88%AB%E6%A8%A1%E5%BC%8F-2%EF%BC%9A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0" title="识别模式 2：返回参数" data-book-page-rel-url="README.md#%E8%AF%86%E5%88%AB%E6%A8%A1%E5%BC%8F-2%EF%BC%9A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0" data-book-page-id="13643">识别模式 2：返回参数</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BC%98%E5%8C%96%E5%88%9B%E5%BB%BA" title="优化创建" data-book-page-rel-url="README.md#%E4%BC%98%E5%8C%96%E5%88%9B%E5%BB%BA" data-book-page-id="13644">优化创建</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E5%91%BD%E5%90%8D%EF%BC%9A%E7%BB%9F%E4%B8%80%E8%AF%AD%E8%A8%80" title="重命名：统一语言" data-book-page-rel-url="README.md#%E9%87%8D%E5%91%BD%E5%90%8D%EF%BC%9A%E7%BB%9F%E4%B8%80%E8%AF%AD%E8%A8%80" data-book-page-id="13645">重命名：统一语言</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%B1%BB" title="类" data-book-page-rel-url="README.md#%E7%B1%BB" data-book-page-id="13646">类</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%8A%B6%E6%80%81" title="状态" data-book-page-rel-url="README.md#%E7%8A%B6%E6%80%81" data-book-page-id="13647">状态</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%96%B9%E6%B3%95" title="方法" data-book-page-rel-url="README.md#%E6%96%B9%E6%B3%95" data-book-page-id="13648">方法</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AE%B9%E5%99%A8" title="容器" data-book-page-rel-url="README.md#%E5%AE%B9%E5%99%A8" data-book-page-id="13649">容器</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%A6%BB%E5%BF%83%E5%88%86%E7%A6%BB%E6%A8%A1%E5%9E%8B%EF%BC%9A%E6%B6%88%E9%99%A4%E4%BA%8C%E4%B9%89%E6%80%A7" title="离心分离模型：消除二义性" data-book-page-rel-url="README.md#%E7%A6%BB%E5%BF%83%E5%88%86%E7%A6%BB%E6%A8%A1%E5%9E%8B%EF%BC%9A%E6%B6%88%E9%99%A4%E4%BA%8C%E4%B9%89%E6%80%A7" data-book-page-id="13650">离心分离模型：消除二义性</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8F%90%E5%8F%96%E5%8F%82%E6%95%B0%E5%AF%B9%E8%B1%A1" title="提取参数对象" data-book-page-rel-url="README.md#%E6%8F%90%E5%8F%96%E5%8F%82%E6%95%B0%E5%AF%B9%E8%B1%A1" data-book-page-id="13651">提取参数对象</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%A4%84%E7%90%86%E8%BF%87%E7%A8%8B%E9%80%BB%E8%BE%91" title="处理过程逻辑" data-book-page-rel-url="README.md#%E5%A4%84%E7%90%86%E8%BF%87%E7%A8%8B%E9%80%BB%E8%BE%91" data-book-page-id="13652">处理过程逻辑</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%A2%86%E5%9F%9F%E7%89%B9%E5%AE%9A%E8%AF%AD%E8%A8%80" title="领域特定语言" data-book-page-rel-url="README.md#%E9%A2%86%E5%9F%9F%E7%89%B9%E5%AE%9A%E8%AF%AD%E8%A8%80" data-book-page-id="13653">领域特定语言</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A8%A1%E5%BC%8F%E9%87%8D%E6%9E%84" title="模式重构" data-book-page-rel-url="README.md#%E6%A8%A1%E5%BC%8F%E9%87%8D%E6%9E%84" data-book-page-id="13654">模式重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%BB%88%E6%AD%A2-singleton" title="终止 Singleton" data-book-page-rel-url="README.md#%E7%BB%88%E6%AD%A2-singleton" data-book-page-id="13655">终止 Singleton</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B7%A5%E5%8E%82%E5%B0%81%E8%A3%85%E5%A4%8D%E6%9D%82%E6%9E%84%E5%BB%BA" title="工厂封装复杂构建" data-book-page-rel-url="README.md#%E5%B7%A5%E5%8E%82%E5%B0%81%E8%A3%85%E5%A4%8D%E6%9D%82%E6%9E%84%E5%BB%BA" data-book-page-id="13656">工厂封装复杂构建</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E6%89%8B%E6%B3%95" title="重构手法" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E6%89%8B%E6%B3%95" data-book-page-id="13657">重构手法</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F%E6%8F%90%E4%BE%9B%E6%98%93%E5%8F%98%E8%A7%84%E5%88%99" title="策略模式提供易变规则" data-book-page-rel-url="README.md#%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F%E6%8F%90%E4%BE%9B%E6%98%93%E5%8F%98%E8%A7%84%E5%88%99" data-book-page-id="13658">策略模式提供易变规则</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F%E6%8B%86%E8%A7%A3%E5%A4%8D%E6%9D%82%E5%AF%B9%E8%B1%A1" title="建造者模式拆解复杂对象" data-book-page-rel-url="README.md#%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F%E6%8B%86%E8%A7%A3%E5%A4%8D%E6%9D%82%E5%AF%B9%E8%B1%A1" data-book-page-id="13659">建造者模式拆解复杂对象</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B7%A5%E5%85%B7%EF%BC%9A%E8%87%AA%E5%8A%A8%E5%8C%96%E8%AF%86%E5%88%AB" title="工具：自动化识别" data-book-page-rel-url="README.md#%E5%B7%A5%E5%85%B7%EF%BC%9A%E8%87%AA%E5%8A%A8%E5%8C%96%E8%AF%86%E5%88%AB" data-book-page-id="13660">工具：自动化识别</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84" title="代码重构" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84" data-book-page-id="13661">代码重构</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E9%99%8D%E4%BD%8E%E5%9C%88%E5%A4%8D%E6%9D%82%E5%BA%A6" title="降低圈复杂度" data-book-page-rel-url="README.md#%E9%99%8D%E4%BD%8E%E5%9C%88%E5%A4%8D%E6%9D%82%E5%BA%A6" data-book-page-id="13662">降低圈复杂度</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E6%8F%90%E5%8F%96" title="手法：提取" data-book-page-rel-url="README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E6%8F%90%E5%8F%96" data-book-page-id="13663">手法：提取</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E5%86%85%E8%81%94" title="手法：内联" data-book-page-rel-url="README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E5%86%85%E8%81%94" data-book-page-id="13664">手法：内联</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E7%A7%BB%E5%8A%A8" title="手法：移动" data-book-page-rel-url="README.md#%E6%89%8B%E6%B3%95%EF%BC%9A%E7%A7%BB%E5%8A%A8" data-book-page-id="13665">手法：移动</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%96%B9%E6%B3%95%E7%A7%BB%E8%87%B3%E5%85%B6%E5%AE%83%E7%B1%BB%E4%B8%AD" title="方法移至其它类中" data-book-page-rel-url="README.md#%E6%96%B9%E6%B3%95%E7%A7%BB%E8%87%B3%E5%85%B6%E5%AE%83%E7%B1%BB%E4%B8%AD" data-book-page-id="13666">方法移至其它类中</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A0%87%E5%87%86%EF%BC%9A4-%E8%A1%8C%E7%9A%84%E6%96%B9%E6%B3%95" title="标准：4 行的方法" data-book-page-rel-url="README.md#%E6%A0%87%E5%87%86%EF%BC%9A4-%E8%A1%8C%E7%9A%84%E6%96%B9%E6%B3%95" data-book-page-id="13667">标准：4 行的方法</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E7%A4%BA%E4%BE%8B" title="重构示例" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E7%A4%BA%E4%BE%8B" data-book-page-id="13668">重构示例</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E8%AF%84%E4%BC%B0" title="评估" data-book-page-rel-url="README.md#%E8%AF%84%E4%BC%B0" data-book-page-id="13669">评估</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#c4-%E6%A8%A1%E5%9E%8B%E5%B1%95%E5%BC%80" title="C4 模型展开" data-book-page-rel-url="README.md#c4-%E6%A8%A1%E5%9E%8B%E5%B1%95%E5%BC%80" data-book-page-id="13670">C4 模型展开</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%B7%A5%E5%85%B7%E8%AF%84%E4%BC%B0" title="工具评估" data-book-page-rel-url="README.md#%E5%B7%A5%E5%85%B7%E8%AF%84%E4%BC%B0" data-book-page-id="13671">工具评估</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E7%BB%9F%E8%AE%A1" title="代码统计" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E7%BB%9F%E8%AE%A1" data-book-page-id="13672">代码统计</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9F%BA%E6%9C%AC%E6%83%85%E5%86%B5%E8%AF%84%E4%BC%B0" title="基本情况评估" data-book-page-rel-url="README.md#%E5%9F%BA%E6%9C%AC%E6%83%85%E5%86%B5%E8%AF%84%E4%BC%B0" data-book-page-id="13673">基本情况评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E5%9D%8F%E5%91%B3%E9%81%93%E8%AF%84%E4%BC%B0" title="代码坏味道评估" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E5%9D%8F%E5%91%B3%E9%81%93%E8%AF%84%E4%BC%B0" data-book-page-id="13674">代码坏味道评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0" title="架构评估" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E8%AF%84%E4%BC%B0" data-book-page-id="13675">架构评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#api-%E8%AF%84%E4%BC%B0" title="API 评估" data-book-page-rel-url="README.md#api-%E8%AF%84%E4%BC%B0" data-book-page-id="13676">API 评估</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#api-%E6%9E%B6%E6%9E%84%E5%9B%BE" title="API 架构图" data-book-page-rel-url="README.md#api-%E6%9E%B6%E6%9E%84%E5%9B%BE" data-book-page-id="13677">API 架构图</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%AB%98%E5%BC%95%E7%94%A8--%E9%AB%98%E4%BF%AE%E6%94%B9%E5%88%86%E6%9E%90" title="高引用 + 高修改分析" data-book-page-rel-url="README.md#%E9%AB%98%E5%BC%95%E7%94%A8--%E9%AB%98%E4%BF%AE%E6%94%B9%E5%88%86%E6%9E%90" data-book-page-id="13678">高引用 + 高修改分析</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B5%8B%E8%AF%95" title="测试" data-book-page-rel-url="README.md#%E6%B5%8B%E8%AF%95" data-book-page-id="13679">测试</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E7%AD%96%E7%95%A5" title="重构策略" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E7%AD%96%E7%95%A5" data-book-page-id="13680">重构策略</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" title="架构重构" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E9%87%8D%E6%9E%84" data-book-page-id="13681">架构重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%88%86%E5%B1%82%E9%87%8D%E6%9E%84" title="分层重构" data-book-page-rel-url="README.md#%E5%88%86%E5%B1%82%E9%87%8D%E6%9E%84" data-book-page-id="13682">分层重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%A8%A1%E5%9E%8B%E9%87%8D%E6%9E%84-1" title="模型重构" data-book-page-rel-url="README.md#%E6%A8%A1%E5%9E%8B%E9%87%8D%E6%9E%84-1" data-book-page-id="13683">模型重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84-1" title="代码重构" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84-1" data-book-page-id="13684">代码重构</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%87%AA%E5%8A%A8%E5%8C%96%E9%87%8D%E6%9E%84" title="自动化重构" data-book-page-rel-url="README.md#%E8%87%AA%E5%8A%A8%E5%8C%96%E9%87%8D%E6%9E%84" data-book-page-id="13685">自动化重构</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8D%E6%9E%84%EF%BC%88tbc%EF%BC%89" title="数据库重构（TBC）" data-book-page-rel-url="README.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8D%E6%9E%84%EF%BC%88tbc%EF%BC%89" data-book-page-id="13686">数据库重构（TBC）</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%9E%E5%BD%92%E6%B5%8B%E8%AF%95%EF%BC%9A%E6%95%B0%E6%8D%AE%E4%B8%8D%E5%8F%98%E6%80%A7" title="数据库回归测试：数据不变性" data-book-page-rel-url="README.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%9E%E5%BD%92%E6%B5%8B%E8%AF%95%EF%BC%9A%E6%95%B0%E6%8D%AE%E4%B8%8D%E5%8F%98%E6%80%A7" data-book-page-id="13687">数据库回归测试：数据不变性</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%89%8D%E6%B5%8B%E8%AF%95" title="前测试" data-book-page-rel-url="README.md#%E5%89%8D%E6%B5%8B%E8%AF%95" data-book-page-id="13688">前测试</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%90%8E%E6%B5%8B%E8%AF%95" title="后测试" data-book-page-rel-url="README.md#%E5%90%8E%E6%B5%8B%E8%AF%95" data-book-page-id="13689">后测试</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%BC%95%E5%85%A5%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7" title="引入数据库迁移工具" data-book-page-rel-url="README.md#%E5%BC%95%E5%85%A5%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7" data-book-page-id="13690">引入数据库迁移工具</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%BF%81%E7%A7%BB%E6%BA%90%E6%95%B0%E6%8D%AE" title="迁移源数据" data-book-page-rel-url="README.md#%E8%BF%81%E7%A7%BB%E6%BA%90%E6%95%B0%E6%8D%AE" data-book-page-id="13691">迁移源数据</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B1%B2%E5%8F%96%E5%BC%8F%E9%87%8D%E6%9E%84%EF%BC%9A%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E8%BD%AC%E6%8D%A2" title="汲取式重构：存储过程转换" data-book-page-rel-url="README.md#%E6%B1%B2%E5%8F%96%E5%BC%8F%E9%87%8D%E6%9E%84%EF%BC%9A%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E8%BD%AC%E6%8D%A2" data-book-page-id="13692">汲取式重构：存储过程转换</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E5%B7%A5%E5%85%B7%E7%9A%84%E9%97%AE%E9%A2%98" title="重构之后：工具的问题" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E5%B7%A5%E5%85%B7%E7%9A%84%E9%97%AE%E9%A2%98" data-book-page-id="13693">重构之后：工具的问题</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E5%AE%88%E6%8A%A4" title="架构守护" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E5%AE%88%E6%8A%A4" data-book-page-id="13694">架构守护</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9E%B6%E6%9E%84%E5%AE%88%E6%8A%A4%E6%B5%8B%E8%AF%95" title="架构守护测试" data-book-page-rel-url="README.md#%E6%9E%B6%E6%9E%84%E5%AE%88%E6%8A%A4%E6%B5%8B%E8%AF%95" data-book-page-id="13695">架构守护测试</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9D%8F%E5%91%B3%E9%81%93%E5%AE%88%E6%8A%A4" title="坏味道守护" data-book-page-rel-url="README.md#%E5%9D%8F%E5%91%B3%E9%81%93%E5%AE%88%E6%8A%A4" data-book-page-id="13696">坏味道守护</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91" title="测试驱动开发" data-book-page-rel-url="README.md#%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91" data-book-page-id="13697">测试驱动开发</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AE%8C%E5%96%84%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD" title="完善基础设施" data-book-page-rel-url="README.md#%E5%AE%8C%E5%96%84%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD" data-book-page-id="13698">完善基础设施</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E8%A7%A3%E5%86%B3%E4%BA%BA%E7%9A%84%E9%97%AE%E9%A2%98" title="重构之后：解决人的问题" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E8%A7%A3%E5%86%B3%E4%BA%BA%E7%9A%84%E9%97%AE%E9%A2%98" data-book-page-id="13699">重构之后：解决人的问题</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BB%A3%E7%A0%81%E5%86%99%E5%BE%97%E7%83%82" title="代码写得烂" data-book-page-rel-url="README.md#%E4%BB%A3%E7%A0%81%E5%86%99%E5%BE%97%E7%83%82" data-book-page-id="13700">代码写得烂</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%85%BB%E6%88%90%E4%BC%98%E7%A7%80%E7%9A%84%E5%BC%80%E5%8F%91%E4%B9%A0%E6%83%AF" title="养成优秀的开发习惯" data-book-page-rel-url="README.md#%E5%85%BB%E6%88%90%E4%BC%98%E7%A7%80%E7%9A%84%E5%BC%80%E5%8F%91%E4%B9%A0%E6%83%AF" data-book-page-id="13701">养成优秀的开发习惯</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E4%BA%BA%E5%91%98%E8%83%BD%E5%8A%9B%E6%8F%90%E5%8D%87" title="人员能力提升" data-book-page-rel-url="README.md#%E4%BA%BA%E5%91%98%E8%83%BD%E5%8A%9B%E6%8F%90%E5%8D%87" data-book-page-id="13702">人员能力提升</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%BB%83%E4%B9%A0%E9%A1%B9%E7%9B%AE" title="练习项目" data-book-page-rel-url="README.md#%E7%BB%83%E4%B9%A0%E9%A1%B9%E7%9B%AE" data-book-page-id="13703">练习项目</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9F%B9%E8%AE%AD%E6%95%99%E7%A8%8B" title="培训教程" data-book-page-rel-url="README.md#%E5%9F%B9%E8%AE%AD%E6%95%99%E7%A8%8B" data-book-page-id="13704">培训教程</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%85%B8%E5%9E%8B%E9%97%AE%E9%A2%98" title="典型问题" data-book-page-rel-url="README.md#%E5%85%B8%E5%9E%8B%E9%97%AE%E9%A2%98" data-book-page-id="13705">典型问题</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E6%B5%81%E7%A8%8B%E7%9A%84%E9%97%AE%E9%A2%98" title="重构之后：流程的问题" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E6%B5%81%E7%A8%8B%E7%9A%84%E9%97%AE%E9%A2%98" data-book-page-id="13706">重构之后：流程的问题</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E6%B5%81%E7%A8%8B%E4%BC%98%E5%8C%96" title="流程优化" data-book-page-rel-url="README.md#%E6%B5%81%E7%A8%8B%E4%BC%98%E5%8C%96" data-book-page-id="13707">流程优化</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%9C%80%E6%B1%82%E8%A7%84%E8%8C%83%E5%8C%96" title="需求规范化" data-book-page-rel-url="README.md#%E9%9C%80%E6%B1%82%E8%A7%84%E8%8C%83%E5%8C%96" data-book-page-id="13708">需求规范化</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E5%AE%9E%E4%BE%8B%E5%8C%96%E9%9C%80%E6%B1%82" title="实例化需求" data-book-page-rel-url="README.md#%E5%AE%9E%E4%BE%8B%E5%8C%96%E9%9C%80%E6%B1%82" data-book-page-id="13709">实例化需求</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E8%A1%8C%E4%B8%BA%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%EF%BC%88bdd%EF%BC%89" title="行为驱动开发（BDD）" data-book-page-rel-url="README.md#%E8%A1%8C%E4%B8%BA%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%EF%BC%88bdd%EF%BC%89" data-book-page-id="13710">行为驱动开发（BDD）</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E6%8F%90%E7%82%BC%E7%9F%A5%E8%AF%86" title="重构之后：提炼知识" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E4%B9%8B%E5%90%8E%EF%BC%9A%E6%8F%90%E7%82%BC%E7%9F%A5%E8%AF%86" data-book-page-id="13711">重构之后：提炼知识</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E7%9F%A5%E8%AF%86%E4%BB%93%E5%BA%93" title="知识仓库" data-book-page-rel-url="README.md#%E7%9F%A5%E8%AF%86%E4%BB%93%E5%BA%93" data-book-page-id="13712">知识仓库</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E5%BB%BA%E7%9F%A5%E8%AF%86%E4%BB%93%E5%BA%93" title="重建知识仓库" data-book-page-rel-url="README.md#%E9%87%8D%E5%BB%BA%E7%9F%A5%E8%AF%86%E4%BB%93%E5%BA%93" data-book-page-id="13713">重建知识仓库</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%97%AE%E9%A2%98%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F" title="问题是什么？" data-book-page-rel-url="README.md#%E9%97%AE%E9%A2%98%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F" data-book-page-id="13714">问题是什么？</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E9%87%8D%E6%9E%84%EF%BC%9F" title="为什么我们需要重构？" data-book-page-rel-url="README.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E9%87%8D%E6%9E%84%EF%BC%9F" data-book-page-id="13715">为什么我们需要重构？</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E9%87%8D%E6%9E%84%E5%88%B0%E5%BE%AE%E6%9C%8D%E5%8A%A1" title="重构到微服务" data-book-page-rel-url="README.md#%E9%87%8D%E6%9E%84%E5%88%B0%E5%BE%AE%E6%9C%8D%E5%8A%A1" data-book-page-id="13716">重构到微服务</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%9C%AA%E6%9D%A5" title="未来" data-book-page-rel-url="README.md#%E6%9C%AA%E6%9D%A5" data-book-page-id="13717">未来</a>
<ul>
<li>
<a class="pjax" href="/book/204/README.md#%E8%BF%BD%E6%B1%82%E6%8A%80%E6%9C%AF%E5%8D%93%E8%B6%8A%E3%80%82" title="追求技术卓越。" data-book-page-rel-url="README.md#%E8%BF%BD%E6%B1%82%E6%8A%80%E6%9C%AF%E5%8D%93%E8%B6%8A%E3%80%82" data-book-page-id="13718">追求技术卓越。</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%8E%A8%E5%8A%A8%E4%B8%AA%E4%BA%BA%E5%8F%98%E9%9D%A9%EF%BC%8C%E8%BF%9B%E8%80%8C%E5%BC%95%E9%A2%86%E7%BB%84%E7%BB%87%E5%8F%98%E9%9D%A9" title="推动个人变革，进而引领组织变革" data-book-page-rel-url="README.md#%E6%8E%A8%E5%8A%A8%E4%B8%AA%E4%BA%BA%E5%8F%98%E9%9D%A9%EF%BC%8C%E8%BF%9B%E8%80%8C%E5%BC%95%E9%A2%86%E7%BB%84%E7%BB%87%E5%8F%98%E9%9D%A9" data-book-page-id="13719">推动个人变革，进而引领组织变革</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E6%95%B4%E7%90%86%E7%9F%A5%E8%AF%86%EF%BC%8C%E5%8A%A0%E5%BC%BA%E6%95%99%E8%82%B2" title="整理知识，加强教育" data-book-page-rel-url="README.md#%E6%95%B4%E7%90%86%E7%9F%A5%E8%AF%86%EF%BC%8C%E5%8A%A0%E5%BC%BA%E6%95%99%E8%82%B2" data-book-page-id="13720">整理知识，加强教育</a>
</li>
<li>
<a class="pjax" href="/book/204/README.md#%E5%9C%A8%E6%95%B4%E4%B8%AA%E6%B5%81%E7%A8%8B%E4%B8%AD%E5%B0%86%E4%BB%B7%E5%80%BC%E5%88%9B%E9%80%A0%E6%9C%80%E5%A4%A7%E5%8C%96" title="在整个流程中将价值创造最大化" data-book-page-rel-url="README.md#%E5%9C%A8%E6%95%B4%E4%B8%AA%E6%B5%81%E7%A8%8B%E4%B8%AD%E5%B0%86%E4%BB%B7%E5%80%BC%E5%88%9B%E9%80%A0%E6%9C%80%E5%A4%A7%E5%8C%96" data-book-page-id="13721">在整个流程中将价值创造最大化</a>
</li>
</ul>
</li>
<li>
<a class="pjax" href="/book/204/coca_reporter/bs.json" title="coca_reporter/bs.json" data-book-page-rel-url="coca_reporter/bs.json" data-book-page-id="13722">coca_reporter/bs.json</a>
</li>
</ul>
</div>
</div>
<script src="https://cdn.staticfile.net/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="/static/components/uikit-2.27.5/js/uikit.reader.js"></script>
<script type="text/javascript" src="/static/components/social-share/social-share.min.js"></script>
<script>(function(){var bp =document.createElement('script');var curProtocol =window.location.protocol.split(':')[0];if (curProtocol ==='https') {bp.src ='https://zz.bdstatic.com/linksubmit/push.js';}
else {bp.src ='http://push.zhanzhang.baidu.com/push.js';}
var s =document.getElementsByTagName("script")[0];s.parentNode.insertBefore(bp,s);})();</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-38429407-1"></script>
<script>window.dataLayer =window.dataLayer ||[];function gtag(){dataLayer.push(arguments);}
gtag('js',new Date());gtag('config','UA-38429407-1');</script>
<script>var _hmt =_hmt ||[];(function() {var hm =document.createElement("script");hm.src ="https://hm.baidu.com/hm.js?f28e71bd2b5dee3439448dca9f534107";var s =document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
<script src="https://cdn.staticfile.net/highlight.js/9.12.0/highlight.min.js"></script>
<script src="https://cdn.staticfile.net/jquery.pjax/2.0.1/jquery.pjax.min.js"></script>
<script src="https://cdn.staticfile.net/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script src="https://cdn.staticfile.net/uikit/2.27.5/js/components/lightbox.min.js"></script>
<link rel="dns-prefetch" href="//cdn.mathjax.org" />
<script type="text/x-mathjax-config">
 function initMathJax() {
    var mathId = $("book-content-section")[0];
    MathJax.Hub.Config({
        tex2jax: {skipTags: ['script', 'noscript', 'style', 'textarea', 'pre','code','a']},
        showProcessingMessages: false,
        messageStyle: "none"
    });
    MathJax.Hub.Queue(["Typeset",MathJax.Hub,mathId]);
 };
initMathJax();
</script>
<script src='https://cdn.staticfile.net/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML' async></script>
<style>
	.MathJax_Display{display:inline!important;}
</style>
<script type="text/javascript" src="/static/components/js/reader.js"></script>
<script type="text/javascript">var bookId =204;var bookPageId =13722;var bookPageRelUrl ='coca_reporter/bs.json';</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-38429407-1"></script>
<script>window.dataLayer =window.dataLayer ||[];function gtag(){dataLayer.push(arguments);}
gtag('js',new Date());gtag('config','UA-38429407-1');</script>
<script>var _hmt =_hmt ||[];(function() {var hm =document.createElement("script");hm.src ="https://hm.baidu.com/hm.js?f28e71bd2b5dee3439448dca9f534107";var s =document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
</body>
</html>