• 《编写可读代码的艺术》---美观代码


    好的代码应该看起来养眼,确切来说,有以下三条原则:

    1. 使用一致的风格,使读者很快就习惯这种风格
    2. 让相似的代码看上去相似
    3. 把相关代码进行分组,形成代码块

    秀外与慧中

    在本章中,我们只关注可以改进代码的简单“审美”方法,这些表面上的改动,我们称之为“外功”-简单的改变,就能大幅提高阅读性

    而架构上的重构,我们称之为“内功”-这方面的修改就需要火候了,但是借助插件,这个过程不再繁琐

    这两者并不冲突,最好是同时在两个方向上努力,让代码变得“秀外慧中”

    在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

  • 相关阅读:
    Javascript
    读jQuery源码
    常用正则-(各种数字,不能包括特殊字符等,后续再补充)
    SpringBoot入门教程(二) Spring Boot配置第二章
    Mybatis面试题
    HTTP和socket的连接请求的区别
    Maven有哪些优点和缺点
    @Autowired 与@Resource的区别(详细)
    spring的优点与缺点
    SpringMVC常见面试题总结
  • 原文地址:https://www.cnblogs.com/kimmy/p/3670583.html
Copyright © 2020-2023  润新知