命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」

More than 1 year has passed since last update.


はじめに

「優しいIT」という理念のもとITコサルタントをしている。亀井亮介で〜す

システム開発する上で、品質・保守性の向上を考えると、コーディング規則や命名規則などの「ルール」が必要です。

「資格試験勉強すればするほど社会貢献ができるe-lerning(開発中)」で利用しているコーディング規則の例です。

ソースのプログラミング言語はPHPで、フレームワークはFuelPHPを使っています。


命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」


1. 変数名・関数名は「短いコメント」と思い、明確で具体的で誤解のない単語を選ぶ(汎用的なtmpなどを使わない)


question.php

// 下記の変数は「問題の解説」という意味(データベースのカラム名と同じ)

$question_commentary


2. 接頭辞・接尾辞をうまく使い1.を実現する


question.php

// 正解フラグ フラグを表す接尾辞が付いています。

$correct_flag = 1;


3. データベースのカラム名・変数名・inputタグのname属性は統一する


question.php

echo

/*
* question_commentaryは、テーブルのカラム名
*/

Form::textarea('question_commentary'
, $before_questions->question_commentary
, array(
'class' => 'col-md-8 form-control'
, 'rows' => 8
, 'placeholder'=>'元の解説'
, "readonly"=>"readonly"
)
);


4. 省略は誰でもわかる単語だけ(cntなど)、よくわからない省略は使わない(BEManagerってなに?BackEndManager)


question.php

/*

* ●命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」
*/

'question_id' => $question_last_id, // 問題番号(固定)
'choice_num' => $choice_num, // 選択肢番号
'correct_flag' => $correct_flag, // 正解
'choice_body' => Input::post('choice_body_'.$choice_num), // 選択肢


5. フレームワークの作法に従い、ライブラリを活用することで、コーディング負荷は軽減される


question.php

/*

* 問題取得成功
*
* 選択肢を取得
* 引数が一つだけなら、find_by(FuelPHPの関数)を使う
*
*/

if ( ! $data['choices'] = Model_Choice::find_by('question_id', $data['questions']->id))
{
// 略
}


6. ネストは浅くし、巨大なプログラムは分割する 変数のスコープを明確かつ、短くする

例はなし


7. 変数は一度だけ書き込み、無駄な変数は削除する


question.php

/*

* データを取得
* ・問題1レコード
* ・選択肢4レコード
* ・小項目の問題(リンク)多レコード
* ・中項目のキーワード多レコード
*
* ●命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」
* 7. 変数は一度だけ書き込み、無駄な変数は削除する
*
*/

//-- WHEREを整理
$question_wheres['question_number'] = $question_number;
$question_wheres['round_id']= $round_id;
//-- データ取得 $question_wheresの役目は終了
$data['questions'] = Model_Question::get_questions($question_wheres, 1);
//-- 変数スコープを明示
$question_wheres = null;


8. FROMに当たるテーブル名とモデルを一致させる。


question.php

/*

* questionはテーブル名
*/

class Model_Question extends Model
{
/*
* questionテーブル
*/

// 略
}


おすすめ本

リーダブルコード

レガシーコード改善ガイド


サイトマップ(未投稿あり)


理念・価値・ビジョン・使命


テスト駆動開発を重点においた規則

コーディング規則「優しいコードを書こう」(FuelPHP)

命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」


開発しやすい環境構築(Docker+PHP)

Dockerを利用しApacheにPHP環境 + Eclipseを連携

Dockerを利用したFuelPHP開発環境構築

Docker利用したFuelPHP開発環境の初期設定とscaffoldを利用してCRUDスケルトン作成

FuelPHPのデータベースマイグレーション


Docker+PythonでWebアプリケーション開発

Docker上のCentOSにPython3と、関連ライブラリpip, virtualenvとフレームワークDjango, bottle, Flaskのインストール!これらをまとめたDockerfile付き!


Raspberry Pi 3 (ラズパイ)とpythonで遊ぼう

Raspberry Pi 3インストール→無線LAN→日本語入出力→Macから操作

Raspberry Pi 3でプログラミングをする Node-REDと普通にプログラミング

Raspberry Pi 3でpythonを使いLEDを光らせる(Hello World)

Raspberry Pi 3でスイッチの状態を検出する

Raspberry Pi 3でpythonを使いサーボモータを動かす