Friction River Software

  • お問い合わせ

CakePHP5入門【コラム②】ソースの美しさとプログラマ三大美徳

B美

ちょっとA子!

ここに座りなさい

A子

え?ちょっと…
なに怒ってんのよ(汗)

B美

あなたの打ち込んだこのソースコード、いったいどういうこと?

C菜

どうしたんですかぁ~?

…って、うわぁこれはちょっと~

A子

いや、待って…

怒られる理由が分からん!

B美

このコードで怒られないと思ってるところがまた腹立たしい

<?php
$test_file='test1.php';
if(file_exists($test_file)){
$info_file=file_get_contents($test_file,false);$result=htmlspecialchars($info_file,ENT_QUOTES);
echo nl2br($result);}
?>

C菜

文法編の第2回目で出てきたコードですよね~

ちなみに、こちらが原型です~

<?php

$test_file = 'test1.php';

if (file_exists($test_file)) {
  $info_file = file_get_contents($test_file, false);
  $result = htmlspecialchars($info_file, ENT_QUOTES);
  echo nl2br($result);
}

?>

A子

ちゃんと動作確認したし、問題なく動いたわよ

B美

まずダメな点を指摘します
.ifのブロック内にインデント(字下げ)が無い
一行に2文を記述している
波カッコの閉じる(})の位置がifの先頭に合っていない

あと、できれば改善したほうが良い点だけど
.代入演算子(=)の左右に半角スペースを入れる
.カンマの右側に半角スペースを入れる
.空行を適切に入れる

…ってところかしら

C菜

要するに、見栄みばえの問題です~

B美

あ、3番だけど

<?php

$test_file = 'test1.php';

if (file_exists($test_file))
{
  $info_file = file_get_contents($test_file, false);
  $result = htmlspecialchars($info_file, ENT_QUOTES);
  echo nl2br($result);
}

?>

という感じで、波カッコの位置を揃えても良いわよ
(こういう書き方を好む人も一定数いるからね)

あと、これはif文だけじゃなく、foreach文やwhile文でも同様よ

A子

うーん、面倒くさいなぁ

プログラムなんて動けば良いじゃん

B美

他人に自分の打ち込んだコードを見せたとき、恥ずかしくないんだったら別に良いけどね(苦笑)

あなたには「傲慢ごうまん」さが足りないわ

A子

そんな「あなたには功夫クンフーが足りないわ」みたいなことを言われても…

C菜

バーチャファイターのパイさんが勝ったときに言う決め台詞ゼリフです~

B美

それはともかく…(笑)

あなたたちに「プログラマ三大美徳」を教えてあげるわ
それが「短気たんき」「怠慢たいまん」「傲慢ごうまん」よ

C菜

全部ネガティブな言葉です~

とても「美徳」とは思えないですよ~

B美

これらはアメリカ人であるラリー・ウォール氏の言葉よ
彼はPerlパールというプログラム言語の作者としても有名ね

まず「短気」についてだけど…
プログラムなんてどんどん打ち込んで、実行確認しながら試行錯誤していくべきよね?

A子

まぁね

あ、そうか
手を止めて頭の中でうんうん悩む暇があったら、キーボードを叩けってこと?

B美

その通り
まぁ、ラリーの真意としては、「コンピュータによって人間がイライラさせられるような事態を避けよ」ってことみたいだけど…
(「実行速度の向上を図るために行うプログラムの改良」とも言えるかな)

んで、二つ目は「怠慢
(「無精ぶしょう」または「怠惰たいだ」と訳されることも…)

プログラムって、「人間の手作業だと面倒くさい、かつ時間のかかる作業をコンピュータにやらせよう」ってやつじゃん
もしも面倒くさがらずに何でもコツコツ頑張る人だったらプログラムを作ろうなんて思わないわよね?

C菜

面倒くさがりだからこそ、プログラミングしよう(またはプログラムを改良しよう)と思うわけですね~

B美

そう、「自分が楽をするためなら、どんな苦労もいとわない」…って考えるのが、プログラマのさがってものよ

A子

いや、それって「怠慢」なの?(笑)

B美

で、三つ目が「傲慢ごうまん」なんだけど…

これって「自分が書いたコードを自信を持って他人に見せることができる」ってことなのよ
「プログラマたるもの、傲慢ごうまんであれ」…って言うのはそういうことよ

自尊心」と言い換えても良いわね

C菜

ここで最初の話に繋がるわけですね~

ソースコードを人に見せられるようにするってことは、分かりやすく書くってことですか~?

B美

大正解!
「分かりやすく書く」…これは先々プログラムを修正したり改良したりするとき、自分自身に跳ね返ってくることだからね

「分かりやすいコード」こそが「美しいコード」であると言えるでしょう
(「論理的な美しさ」って考え方もあるんだけど、初心者である間はあまり考えなくても良いわ)

A子

まぁ、言いたいことは分かったよ

せいぜい気を付けるようにするし、反省もしたからさー
そろそろ正座を崩しても良いかな?(苦笑)