魔法を使わないプログラミング(web公開版)

14

Click here to load reader

Upload: hajikami

Post on 02-Jul-2015

2.218 views

Category:

Technology


0 download

DESCRIPTION

第一回関西PHP初心者勉強会 2011.8.27

TRANSCRIPT

Page 1: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

1

魔法を使わないプログラミング

@hajikami

Page 2: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

2

魔法を使わないプログラミング

● プログラミングのお作法の話● 「人間が」わかるプログラムを書こう!

● 今回のキーワード● マジックナンバー

Page 3: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

3

目次

1.自己紹介

2.結論: 値には名前をつける!

3.具体例の紹介

4.PHPでの名前の付け方

5.プレゼンまとめ

Page 4: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

4

自己紹介

● @hajikami● 社会人2年目● プログラマ

– Java, Pro*C, csh など● 専門: ソフトウェアデザイン

– 私は詳細設計からテストぐらいまで?– 「和歌山大学」良いとこ一度はおいで!

Page 5: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

5

結論

値には名前をつけてやる!

Page 6: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

6

具体例

こんなプログラム書いてませんか?

Page 7: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

7

読みやすいプログラム?

<?php

if ($day_wk === 0) { // 日曜日なら

$bkcolor = "red" // 背景を赤にする

}else if ($day_wk === 6) { // 土曜日なら

$bkcolor = "blue" // 背景を青にする

}else { // それ以外は

$bkcolor = "" // 背景そのまま

}

Page 8: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

8

本当に読みやすい?

<?php

// コメントがないと読めないよ!

if ($day_wk === 0) { // 日曜日なら

$bkcolor = "red"; // 背景を赤にする

}else if ($day_wk === 6) { // 土曜日なら

$bkcolor = "blue"; // 背景を青にする

}else { // それ以外は

$bkcolor = ""; // 背景そのまま

}

// 赤色がマジックナンバー、黄色がマジックストリング

Page 9: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

9

値に名前をつけてやる!

http://namaewo.tsuketeya.ru/※この画像は本資料の内容と無関係です

Page 10: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

10

これならどうだ!

<?php

define('SUNDAY' ,0); // サンプルのため、月~金は略…

define('SATURDAY' ,6);

if ($day_wk === SUNDAY) {

$bgcolor = "red";

}else if ($day_wk === SATURDAY) {

$bgcolor = "blue";

}else {

$bgcolor = "";

}

// コメントがなくても読めるようになりました!

Page 11: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

11

PHPでの名前の付け方

● define 関数● 定数を定義する

define('SUNDAY', 0);

● const キーワード● クラス定数を定義する

class DayOfTheWeek { const SUNDAY = 0;}

Page 12: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

12

まとめ

● 値には名前をつけよう!● 名前の付け方

– define関数– constキーワード– など

● 人間がわかるプログラムを書こう!● なにか不具合が起きても直しやすいよ!● 見て分かるから、コメントが減るよ!

Page 13: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

13

参考文献

● プログラミング作法● ISBN4-7561-3649-4● Brian W.Kernighan, Rob Pike 共著, 福崎 俊博 訳

● PHP マニュアル● http://www.php.net/manual/ja/

Page 14: 魔法を使わないプログラミング(web公開版)

2011/08/27 魔法を使わないプログラミング

14

終わり

ありがとうございました!