设计模式——代码的规范

8 篇文章 0 订阅
6 篇文章 0 订阅

在开始写这篇文章之前,先给大家看两段代码:

第一段:

            Console.Write("请输入数字A:");
            string A = Console.ReadLine();
            Console.Write("请选择运算符号(+、-、*、/)");
            string B = Console.ReadLine();
            Console.Write("请输入数字C:");
            string C = Console.ReadLine();
            string D = "";

            if (B == "+")
                D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C));
            if (B == "-")
                D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C));
            if (B == "*")
                D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C));
            if (B == "/")
                D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C));
            Console.WriteLine("结果是:" + D);

第二段:

            try
            {
                Console.Write("请输入数字A:");
                string strNumberA = Console.ReadLine();
                Console.Write("请选择运算符号(+、-、*、/):");
                string strOperate = Console.ReadLine();
                Console.Write("请输入数字B:");
                string strNumberB = Console.ReadLine();
                string strResult = "";
                switch (strOperate)
                {
                    case "+":
                        strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB));
                        break;
                    case "-":
                        strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB));
                        break;
                    case "*":
                        strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB));
                        break;
                    case "/":
                        if (strNumberB != "0")
                            strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB));
                        else
                            strResult = "除数不能为0";
                        break;
                }
                Console.WriteLine("" + strResult);
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine("" + ex.Message);
            }
大家看完上面的两段代码有什么感觉呢?

稍有一些经验的大神们一眼就会看出:第一段代码的命名不合规范,而且会做无用功,还没有考虑到C为0的情况;第二段代码虽然能够较好的实现这个编程,但是没有很好的运用到面向对象的概念。

现在,进入这篇文章的主题——代码的规范。

       先说一下为什么要把代码写规范

       1) 有一个好的代码可读性;使得你读别人的代码和别人读你的代码一样容易;

       2)避免坏的代码习惯,规范的代码不容易引进bug,而且易于维护; 

       3)有一致的代码风格,看上去所有的代码就象一个人写的;

       4)以“程序结构和可读性第一,优化第二”为宗旨。

       然后是命名的规范

        如上面第二段代码(strNumberA )所示:str代表的是变量A的数据类型是string,NumberA是数字A的名字,这两个合在一起构成了数字A的名称,能够使人一眼就能够更加直观地看出A是一个什么东西,减少了沟通的障碍,使得代码更容易理解。

        其实,代码的编写也是有一定的规则的:

         1)直觉命名函数、变量、宏、常量,让它们表示它们的意思 ,避免名字太短或太长,3<名字长度<40;

         2)在变量、结构、函数名中,第一个单词尽量用可以反映变量类型的单词,其余所有的单词除了第一个单词以

               外第一个字母将用大写; 

         3)类型定义(typedef)、宏(macro)、常量(constant)所有字母必须大写,单词连接用下划线;

         4)避免定义索引用数字,建议用集合定义; 

         5)避免用临时变量,象I, ii , tmpBuf , 除了在一个局部有效,当局部外要 命名特别变量;

         6)避免定义索引用数字,建议用集合定义;  避免用临时变量,象I, ii , tmpBuf , 除了在一个局部有效,当局部

              外要命名特别变量;

          7)避免同一块程序不同事物命名相似;

          8)避免不同部分、不同共用全局对象(类型、变量、宏)用相同名;

          9)建议用“g”或“g_”作为全局变量前缀,“m”或“m_”作为成员前缀(c++) 或静态变量前缀(c),如果你愿

               意,可以参阅匈牙利命名规则。

         在编程当中也是有一定规则的

         1) 不要将多个语句放在同一行上
         2) 使用行接续符
         3) 缩进后续行
         4) 运用语句缩进来显示代码的组织结构
         5) 对模块的D e c l a r a t i o n s部分中的代码进行缩进,显示其从属关系
         6) 使用白空间将相关语句组合在一起

以上这些是我根据米老师的讲课和百度总结出来的,都是编程人员必须知道的事情,只有做好了这些才能成为一个优秀的软件编程人员。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值