魔法を使わないプログラミング(web公開版)
DESCRIPTION
第一回関西PHP初心者勉強会 2011.8.27TRANSCRIPT
![Page 1: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/1.jpg)
2011/08/27 魔法を使わないプログラミング
1
魔法を使わないプログラミング
@hajikami
![Page 2: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/2.jpg)
2011/08/27 魔法を使わないプログラミング
2
魔法を使わないプログラミング
● プログラミングのお作法の話● 「人間が」わかるプログラムを書こう!
● 今回のキーワード● マジックナンバー
![Page 3: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/3.jpg)
2011/08/27 魔法を使わないプログラミング
3
目次
1.自己紹介
2.結論: 値には名前をつける!
3.具体例の紹介
4.PHPでの名前の付け方
5.プレゼンまとめ
![Page 4: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/4.jpg)
2011/08/27 魔法を使わないプログラミング
4
自己紹介
● @hajikami● 社会人2年目● プログラマ
– Java, Pro*C, csh など● 専門: ソフトウェアデザイン
– 私は詳細設計からテストぐらいまで?– 「和歌山大学」良いとこ一度はおいで!
![Page 5: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/5.jpg)
2011/08/27 魔法を使わないプログラミング
5
結論
値には名前をつけてやる!
![Page 6: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/6.jpg)
2011/08/27 魔法を使わないプログラミング
6
具体例
こんなプログラム書いてませんか?
![Page 7: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/7.jpg)
2011/08/27 魔法を使わないプログラミング
7
読みやすいプログラム?
<?php
if ($day_wk === 0) { // 日曜日なら
$bkcolor = "red" // 背景を赤にする
}else if ($day_wk === 6) { // 土曜日なら
$bkcolor = "blue" // 背景を青にする
}else { // それ以外は
$bkcolor = "" // 背景そのまま
}
![Page 8: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/8.jpg)
2011/08/27 魔法を使わないプログラミング
8
本当に読みやすい?
<?php
// コメントがないと読めないよ!
if ($day_wk === 0) { // 日曜日なら
$bkcolor = "red"; // 背景を赤にする
}else if ($day_wk === 6) { // 土曜日なら
$bkcolor = "blue"; // 背景を青にする
}else { // それ以外は
$bkcolor = ""; // 背景そのまま
}
// 赤色がマジックナンバー、黄色がマジックストリング
![Page 9: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/9.jpg)
2011/08/27 魔法を使わないプログラミング
9
値に名前をつけてやる!
http://namaewo.tsuketeya.ru/※この画像は本資料の内容と無関係です
![Page 10: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/10.jpg)
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公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/11.jpg)
2011/08/27 魔法を使わないプログラミング
11
PHPでの名前の付け方
● define 関数● 定数を定義する
define('SUNDAY', 0);
● const キーワード● クラス定数を定義する
class DayOfTheWeek { const SUNDAY = 0;}
![Page 12: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/12.jpg)
2011/08/27 魔法を使わないプログラミング
12
まとめ
● 値には名前をつけよう!● 名前の付け方
– define関数– constキーワード– など
● 人間がわかるプログラムを書こう!● なにか不具合が起きても直しやすいよ!● 見て分かるから、コメントが減るよ!
![Page 13: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/13.jpg)
2011/08/27 魔法を使わないプログラミング
13
参考文献
● プログラミング作法● ISBN4-7561-3649-4● Brian W.Kernighan, Rob Pike 共著, 福崎 俊博 訳
● PHP マニュアル● http://www.php.net/manual/ja/
![Page 14: 魔法を使わないプログラミング(web公開版)](https://reader038.vdocuments.pub/reader038/viewer/2022100603/559473e71a28ab476e8b4584/html5/thumbnails/14.jpg)
2011/08/27 魔法を使わないプログラミング
14
終わり
ありがとうございました!