重构学习1-重命名方法、类、参数等
查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html
动机:重命名是重构最基础的一个重构,也是最简单的重构,但是这个重构也是很重要的,它是让代码具有可读性的关键第一步,“要想成为一个真正的编程高手,起名的水平是至关重要的“,如果你看到一个函数名称不能很好的表达它的用途,应该马上加以修改,记住,你的代码首先是为人写的,其次才是为计算机写的。而人需要良好名称的函数。”
方法:首先考虑给这个函数写上一句怎样的注释,然后想办法将注释函数名称。
注意:
一 不要怕名字长,长度不是问题,关键在于函数名称和函数本体之间的语义距离。
二 需要规范命名的不仅是方法名,也包括类名,参数名,控件名,页面名(WebForm),尽管规范都可能不一样,但是每个团队应该有统一的规范。
示例:
/// <summary> /// 判断是否是技术部 /// </summary> /// <returns></returns> public bool isScience(int DepartMentID, string id) { DataTable dt = Attendance.getdepmentID(id); bool dtt = (from column in dt.AsEnumerable() select column["ID"]).Contains(DepartMentID); if (dtt) { return true; } else { return false; } }
首先isScience让别人看了不知道什么意思,再一个参数string id也不知道这个id是什么id,dtt也不知道代表了什么。
重构后代码如下:
/// <summary> /// 判断是否是技术部 /// </summary> /// <returns></returns> public bool IfMinTech (int DepartMentID, string DepartmentIDList) { DataTable dt = GetMinTechALLDepartmentID(DepartmentIDList); bool IsDepartmentID = (from column in dt.AsEnumerable() select column["ID"]).Contains(DepartMentID); if (IsDepartmentID ) { return true; } else { return false; } }
重构虽然简单,但是效果很明显,记住我们为人写代码,而不是为计算机写代码,如果命名不能反映代码的意图,就立即动手改掉它,否则接下来它将浪费你无数的时间在读懂和理解代码上,更可恨的是今天读懂了,过几天还要重新读和理解它。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!