• Code  review的意义


    • 程序员的世界里,不同的人,不同的背景,不同的工作经历,水平和习惯各异。

    • 就像罗卜和白菜,谁都不会嫌弃谁,那是因为他们有不同的标准,而在程序的世界里,由开源社区,有无数前辈根据自己毕生的经验总结出的规律,正逐渐成为程序界的标准,有了标准,谁走歪了,谁走正了,一目了然。

    • 中国特殊的国情,导致程序员不受重视,缺乏工程师文化,导致程序员跳槽频率远高于传统行业或互联网的其他职业,导致业务线的代码不断地被***,惨不忍睹,极难维护,不是程序员不认真,而是企业没有指定标准,每个人按照自己最完美的方式来做,自然就是五彩缤纷了。

    • 程序员的工作绝大多数,枯燥无味,特别是工作了多年,各种业务模式都接触过后,都是不断在的重复自己,不但技术从此无法增长,原有的激情也不断流失,沦落为真正的码农,没有思想,没有自我。

    • 优质的代码就像艺术品,多一点少一点都感觉不是那么的自然,统一的规范,让你review代码是感觉团队和一的效果,犹如武侠中人剑合一的境界, 不论程序员怎样的轮换,标准是一样的,是后续管理和维护成本大大降低。

    • 不想看到想吐的代码,不想听到“他妈的,谁写的代码,有基本的素质么?”这样的抱怨,想天天下午来杯咖啡的惬意,就从code review开始吧,下面给你推荐两款review 神奇。


  • Gerrit  特点及部署

    • gerrit是一款免费、开源的代码审查器,最早版本采用python编写,后续逐渐改成java && (mysql || H2),效率也得到了大大的提升, 下面给出gerrit安装的介绍,只是关键点的介绍,没有傻瓜的教学。


    • 1)安装git

      • {{{

        • apt-get install git

      • }}}

    • 2)安装gerrit

      • download gerrit.war包:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.1.7-rc1.war

      • 初始化:(前提是要先安装java openjdk)

      • {{{

        • java -jar gerrit-$version-rc1.war init -d review_site

        • 然后俺这提示走,选择mysql存储模式,及http的认证方式,smtp也可以自定义设置,当然也可以自己做自己的smtp服务器

        • 执行完成以后,就会在当前目录下创建review_site文件夹,这就是gerrit的工作目录。

      • }}}

    • 3)安装nginx

      • {{{

        • apt-get install nginx

      • }}}

    • 4)前端用nginx做转发

      • {{{

        • server {
                  server_name review.mastsumassage.cn;
                  access_log /var/log/nginx/review.log;

                  location / {
          #               proxy_set_header host
                          auth_basic "Code Review Site";
                          auth_basic_user_file /usr/local/review_sites/etc/passwords;

        •                 proxy_pass http://10.5.0.10:8000;
                          proxy_set_header X-Real-IP $remote_addr;
                          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  }
          }

      • }}}

    • 5)gerrit.conf配置

      • {{{

        • [gerrit]
                  basePath = git
                  canonicalWebUrl = http://10.5.0.10:8000/

        • [httpd]
                  listenUrl = proxy-http://10.5.0.10:8000/

      • }}}

      • 接着访问review.matsumassage.cn就可以看到页面了,但是需要用户名和密码

    • 6)创建用户

      • 根据nginx的passwords文件的配置路径做如下命令:

      • {{{

        • htpasswd /usr/local/review_sites/etc/passwords flwu

        • 输入两次密码

      • }}}

    • 7)用户登录&注册邮箱

      • 用户登录后,此用户会进入到mysql里面,然后需要对该用户设置email,当然如果你配置好了smtp,那这不就不需要了,如果没有,就要手动的为用户注册邮箱,用来开发过程中的邮件通知。

      • {{{

        • ssh gerrit gerrit set-account --add-email [email protected] flwu

        • 当然这命令运行之前是要做些简单配置的,不然回报gerrit命令不存在

        • 配置如下:在你所在用户的~/.ssh 文件夹下建一个config文件

        • 配置一下内容:

        • [[[

          • HOST gerrit
                 USER admin
                 PORT 29418
                 HOSTNAME 10.5.0.10
                 IdentityFile ~/.ssh/id_rsa

        • ]]]

        • 前提是你在gerrit上把此用户的证书加上去了才可以哦。

      • }}}

      • 到此gerrit的配置就告一段落了,后续是创建项目,不过这个比较简单。


  • Gitlab  特点及部署

    • gitlab是一个开源的代码审查器, 采用Ruby on Rails编写,简单高效,而且功能齐全,界面简单易用,项目管理和群组管理及支持代码多模式审查,部署极其简单,个人强烈推荐。

    • gitlab官网做了详细的安装步骤,简单高效,请参考:https://about.gitlab.com/downloads/

    • 选择不同的操作系统后,自动给出不同系统的安装方法及步骤。

    • 根据个人安装的经验,有部分需要注意的地方:

      • 提前安装mysql,不设密码,这样gitlab才能导入数据库。

      • gitlab的软件下载,及其难下,文件太大,而且资源站不多。

      • gitlab配置简单,按照官网的步骤会同时安装上SMTP邮件服务器,比gerrit要爽呆了。

      • 安装好后,直接ip访问就可以了, 如果需要设置代理、域名可在:/var/opt/gitlab/nginx文件中简单修改。 修改后需要重启。

      • 如需软件包,就留言,留下邮箱地址,谢谢。