大项目代码风格

Posted TjFish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大项目代码风格相关的知识,希望对你有一定的参考价值。

一切的一切,起源于同济软件工程期末的大项目----拿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:大家一起学习,一起加油!!!*/



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

以上是关于大项目代码风格的主要内容,如果未能解决你的问题,请参考以下文章

项目代码风格要求

Java 程序代码书写风格及一些简单的注意事项 (

分析一套源代码的代码规范和风格并讨论如何改进优化代码

写代码时大括号该不该换行

[技术博客]使用pylint实现django项目的代码风格检查

[技术博客]使用pylint实现django项目的代码风格检查