好的代码应该看起来养眼,确切来说,有以下三条原则:
- 使用一致的风格,使读者很快就习惯这种风格
- 让相似的代码看上去相似
- 把相关代码进行分组,形成代码块
秀外与慧中
在本章中,我们只关注可以改进代码的简单“审美”方法,这些表面上的改动,我们称之为“外功”-简单的改变,就能大幅提高阅读性
而架构上的重构,我们称之为“内功”-这方面的修改就需要火候了,但是借助插件,这个过程不再繁琐
这两者并不冲突,最好是同时在两个方向上努力,让代码变得“秀外慧中”
在visual studio的帮助下,ctl+k+d;我们的代码的缩进、排列就会变得很好,因此,本文主要讲述的是代码内容的组织上。
1:模块组织法
比如我们要描述一个人的躯体,我们按照模块,来组织属性
/// <summary> /// 人类 /// </summary> public class Person { #region 四肢 /// <summary> /// 手 /// </summary> public string Hand { get; set; } /// <summary> /// 脚 /// </summary> public string Foot { get; set; } #endregion #region 头部 /// <summary> /// 眼睛 /// </summary> public string Eye { get; set; } /// <summary> /// 鼻子 /// </summary> public string Nose { get; set; } /// <summary> /// 耳朵 /// </summary> public string Ear { get; set; } #endregion #region 内脏 /// <summary> /// 心脏 /// </summary> public string Heart { get; set; } /// <summary> /// 肺 /// </summary> public string Luang { get; set; } #endregion }
这样的组织有什么好处呢?比如在Reshaper里面,我们可以直接查看文件的结构(ctl+alt+f)
这样查找对应方法是不是变得很清晰?
2:优先级组织法
比如Unity3D开发,我们从Monobehavior里面继承了一大堆事件、属性,在这么庞杂的环境里,我们该如何组织代码?
本人实际代码中的组织方式如下:
#region 公共属性 #endregion #region 私有属性 #endregion #region 重写事件 #endregion #region 公共方法 #endregion #region 私有方法 #endregion