惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
美团技术团队
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
H
Help Net Security
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
博客园_首页
A
About on SuperTechFans
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
B
Blog
The Register - Security
The Register - Security
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
Last Week in AI
Last Week in AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News - Newest:
Hacker News - Newest: "LLM"
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
W
WeLiveSecurity
Latest news
Latest news
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - 荣-

学习实践:使用模式,原则实现一个C++自动化测试程序 学习实践:使用模式,原则实现一个C++数据库访问类 C++字符转换等常用方法 DLL内存管理模板类 字符串处理代码(国际化转换C++版) 我的C++数据库访问库--临界区处理类 我的C++数据库访问库 批处理文件的学习 C++中,以类成员函数指针作为参数对std::map中的元素进行迭代处理 取得MySQL数据库表,列信息的SQL语句 我的我的C#数据库操作类(与大家交流) ACE项目的重构整理 安装SQL Server 2000和sp补丁时,安装程序提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机"。 我的计算机安装步骤 创建oracle用户 我的C++代码检查列表 PowerDesigner高级应用 文档的阅读 如何设计类
我的重构步骤
荣- · 2009-08-12 · via 博客园 - 荣-

我的重构步骤

第一步:注释检查
   1:是否利于阅读
   2:检查注释是否充分
   3:是否存在多于的注释
   4:注释是否与代码一致
   5:是否有假设依赖条件需要特别说明
   6:是否需要对框架,调用关系进行说明
第二步:检查类、函数、变量命名
   1:检查命名是否表达了含义,是否还有更合适的名称。
   2:整个项目中,命名风格是否一致。
   3:不阅读注释,是否能从名称中读出需要的信息
   4:类成员的调用是否用了this,是否有m_前缀,静态成员是否有s前缀,全局成员是否有::。
第三步:检查方法的复杂度
   1:检查方法嵌套是否太深,是否可以修改嵌套
   2:检查局部变量的声明与使用之间,是否距离太远
   3:检查for循环中,是否存在重复的执行操作,例如数组的长度等
   4:检查函数的个数是否合适
   5:检查多个函数之间,变量位置是否一致
   6:函数参数是否可以更少
   7:检查函数的注释是否合适,是否利于阅读
第四步:检查函数的长度并进行拆分
   1:检查方法的长度是否过长,如果过长,则是否可以拆分为多个函数
   2:多个函数之间,是否有相似的代码,如果有,抽象成一个函数
   3:检查函数是否太多,类是否太复杂,如果太多,太复杂,是否存在不需要拆分的函数
   4:通读函数,检查函数阅读是否顺畅
第五步:检查相似类
   1:找出相似类之间的类似点。
   2:根据类似点,抽象出基类。
   3:根据类似点,抽象出公共函数。
   4:修改子类继承于基类。
   5:代码的可读性与继承之间的取舍。
第六步:检查类成员的可见性
   1:检查基类成员是否可以设置为private,public。
   2:检查所有类成员的可见性:private,protected,public。
第七步:查看多个类之间的关系
   1:检查多个类之间的关系,是否可以进一步抽象。
   2:在可读性,抽象性,代码性能,编程效率之间进行抉择。
第八步:请别人阅读代码,并提供意见。

posted on 2009-08-12 21:34  荣-  阅读(677)  评论()    收藏  举报