码迷,mamicode.com
首页 > 其他好文 > 详细

大项目代码风格

时间:2018-03-20 20:42:42      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:前缀   dog   i++   软件工程   构造函数   https   初始   输入参数   代码   

一切的一切,起源于同济软件工程期末的大项目----拿cocos2d做一个游戏~~~

大项目是组队制的,所以有了下面这篇  “大项目代码风格”,

/*

以下为本次大项目代码风格规定

1. 类的命名用 大驼峰命名(每个单词首字母大写)

   普通变量小驼峰命名(第一个单词首字母小写,其余首字母均大写)
   类成员变量需要在名称前加 m_
   如 class SomeClass
      {
         private:
            m_tableName; 类中变量命名
      }
     
      int tableName;   普通变量命名

   函数的命名用 小驼峰 如 void someThing(){}

   并且特定类型加特定前缀
          布尔变量命名前加  b
          指针命名前加   p

  上面一律使用英文单词(拒绝拼音),不缩写,不省略单词


2  不使用tab,只使用空格,空格2下缩进


3  花括号换行,同时花括号执行的代码无论多简单,都要加花括号
   如if(some condition)
      {  
          //your code
       }
   当然特别简单语句可以不换行
   例如 if(i>1) { ++count; }
  (其余情况不换行均视为邪教)
 

4  类定义必须要有构造函数,所有成员数据在此初始化


5  尽量使用++i,而不使用i++(先弄清区别)


6  头文件和源文件区别以及作用(这个很重要,不要所有东西都写在一个文件中)
   给个网址 http://blog.csdn.net/yue34257667/article/details/45500811


7  记得加头文件保护符(当然vs在创建头文件时已经自动加了)


8  容器选择多使用 vector,string,少使用数组,要用数组也请用array


9  尽量使用迭代器而不是下标运算符[],迭代器的判断用!= 而不是 <=
   例如
      for(auto i=v.begin(); i!=v.end(); ++i)
        {
             //your code
        }
   也可以使用范围for语句遍历容器
   遍历容器时不可修改容器数量


10  多使用const(这个要求比较高)
     三种情况
      (1)常量的定义
      (2)强制保护函数参数值不发生改变
             以下程序中,函数f 不会改变输入参数name 的值,但是函数g 和h 都有可能改变name的值。
             void f(String s); //  值传递   
             void g(String &s); // 引用
             void h(String *s); // 指针
             int main()   
             {   
                String name=“Dog”;   
                f(name); // name 的值不会改变   
                g(name); // name 的值可能改变   
                h(name); // name 的值可能改变   
                return 0;   
             }   

          对于一个函数而言,如果其‘&’或‘*’类型的参数只作输入用,不作输出用,
            那么应当在该参数前加上const,以确保函数的代码不会改变该参数的值(如果改变了该参数的值,编译器会出现错误警告)。
            因此上述程序中的函数g 和h 应该定义成:
                void g(const String &s);   
                void h(const String *s);   

     (3)修饰类中的成员函数:void fun4()const; 其意义上是不能修改所在类的的任何变量。  
           

11  数据类型不要混用(可能产生意想不到的后果)
    如 int 和 unsigned
 
       int n=-1;
       if(string.size < n) { cout>>"you are wrong";}
                //string.size()的返回类型是 unsigned
    必然会输出 you are wrong
    因为int 和 unsigned 一起使用会发生隐式转换,int转为unsigned,-1 便转为 2^32-1


12  多了解面向对象思想(网上有许多blog,都说的很好)
    给几个推荐  http://blog.csdn.net/baggiowangyu/article/details/2724334
                http://blog.csdn.net/wsyhok/article/details/54600637
    来个知乎的  https://www.zhihu.com/question/19854505


ps:大家一起学习,一起加油!!!*/



第一篇博客(不知道算不算博客)~~~

大项目代码风格

标签:前缀   dog   i++   软件工程   构造函数   https   初始   输入参数   代码   

原文地址:https://www.cnblogs.com/TjFish/p/8611986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!