はじめに
「優しい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アプリケーション開発
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を使いサーボモータを動かす