Groove Labo
  • Home
  • About

カテゴリー

  • Active Directory (1)
  • FastCGI (2)
  • IIS (2)
  • javascript (5)
  • kickstart (1)
  • MySQL (3)
  • PHP (2)
    • CakePHP (1)
  • postfix (1)
  • Python (7)
  • Ruby on Rails (2)
  • Trac (5)
  • Webサーバー (4)
    • Apache (2)
    • lighttpd (1)
    • pound (1)
    • proxy (1)
  • はじめまして (1)
  • サーバーインフラ (5)
    • Amazon EC2 (2)
    • ZABBIX (3)
  • ソフトウェア開発 (12)
    • テスト (4)
  • ツール (9)
    • backup (1)
    • capistrano (1)
    • CMS (2)
    • couchdb (2)
    • MODx (2)
    • rsync (1)
    • tiddlywiki (1)
    • Wiki (2)
  • デザイン (1)
  • プロジェクト管理 (7)
  • 仮想環境 (5)
    • EC2 (1)
    • VMware (1)
    • Xen (3)
  • 読書 (3)

最近の投稿

  • ドッグフードを食べる – BTS & SCM
  • CakePHP で連結テーブルのモデルは先に宣言すること
  • ActiveRecord の conditions を作成するためのクラスを作ってみた
  • オープンソースソフトウェアの育て方
  • どこでもサーバー管理ができる iPhoneアプリ 「TouchTerm」

Twitter

  • blog: Trac : プラグイン一覧 http://blog.ciklone.com/2010/08/15/trac-%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%b8%80%e8%a6%a7/ 2 weeks ago
  • blog: Trac プラグイン : Awesome Attachments Plugin http://bit.ly/aR3AXc 2 weeks ago
  • blog: 機能紹介「ダッシュボード」 http://bit.ly/csA7pU 2010-07-01
  • More updates...

Posting tweet...

Powered by Twitter Tools

ブログロール

  • Cubo
  • OpenGroove
  • zeera document search
  • zeera document search 診断
ソースコードレビューの必要性
投稿日 2009年8月10日 月曜日 カテゴリ ソフトウェア開発, プロジェクト管理 投稿者 syojiComments Off 

Peace Pipe: 効率の良いコードレビュー [software] を読んでソースコードレビューの必要性について考えてみたい。

ソースコードのレビューをやっているか?

ツールなどを使ったソースコードチェックは多くのSIerで行われていると思うが、ここではソースコードレビューについて。 プロジェクトによっては「全くやっていない」「重要なプログラムだけ選んでやっている」など、プロジェクトの状況、状態によって異なると思う。

自分の過去の開発経験では、プリントアウトしたソースコードを2人で組になって読み合わせをした。

  1. 1. 開発者がレビュアにロジックを説明する。
  2. 2. レビュアーは疑問に思ったことを聞く。
  3. 3. ここで、機能的な不具合、アルゴリズム、モジュール分割をみる

時間的な制限があるためすべてのコードについて実施できない場合がほとんどだったため、レビュー対象となるソースコードは次のような点を考慮してレビュー対象を決めていた気がする。

  • 特定の担当者が作成したコード
  • 共通モジュール
  • サーバサイドのコード
  • ソースコード(処理)が複雑であるコード(プロジェクトによって複雑度は異なる)
  • ソースコードをざっと眺め、引っかかるコード、気になったコードを見つけた場合

ソースコードレビューについて、誰が行うか、観点は?の説明されている以下のサイトが参考になる。

IPA ISEC 第2章 脆弱性回避策とソフトウェア開発工程:ソースコードレビュー

観点

  • コーディング規約、命名規約に従っているか
  • 言語特有の技術的なノウハウに違反していないか
  • ロジックエラー、仕様違反していないか
  • 深すぎるネスト、巨大すぎる関数など・・・

ソースコードレビューの必要性として特に言われることとして、以下の2点がある。

「開発者のスキルが上がる」

開発者よりも高いスキルをもつレビュアが、ソースコードのレビューを行うことで、書き方の指導や考え方のトレースをすることになり、開発者のスキルを向上させることができる。 ソフトウェア開発では特にその”人”のスキルに依存しがちである。長い目で見て開発者のスキルを上げることが品質の良いシステムを開発する上で最も効果がある。

「ソースコードの質がよくなる」

ソースコードレビューによりバグを抽出することで品質が向上する。検出されなければいけない工程で確実に検出できることは必須であると思う。当然、前工程で検出されたバグ修正も少ないコストで可能である。 ソースコードが第三者の目に触れず、開発者だけが「正しい」と認識することは避けるべきであり、その仕組みをチーム内に作っておくことは重要である。 進捗ミーティングや報告会と同様にコードレビューを定着させるべきだと思う。

Comments are closed.

Copyright © 2004-2010 OpenGroove,Inc. All rights reserved.