PHP Manual
/
基礎知識

PHPのコードを理解する方法

11. 04. 2020

Obsah článku

ほとんどの言語は、異なる方法で書いても同じ結果になる。同時に、一度書いたコードは、将来いつか読み返して、修正したり、新しい機能を追加したりすることもあるでしょう。

したがって、コードについて常に考える必要がなく、うまくナビゲートするために、PHPで直接「正しいコードを書く」ための一連のツールや方法、あるいは将来の読みやすさを直接サポートする方法でコードを構築する(別の人間によっても)方法があります。

**作者コメント:***です。

経験上、コードの陳腐化は早く、アプリケーションの作者自身でさえ、半年後には自分のコードを異物と認識するほどです。ですから、最初から正しく書けば、将来の拡張性を妨げることはありません。

実際の開発現場では、コードの書式を統一したり、一般的なルールを導入することで、多くのエラーを防いでいることが密かに知られています。

TL;DR

コードの読みやすさは、しばしば書式や記述ルールに関係します。

開発チーム内では、コードのフォーマットやメンテナンスの方法について、正式なルールを設けることが理にかなっています。

個人的には、(2022年)ネッテフレームワークのコーディングスタンダードを使用しており、コミットごとにルールが自動的に評価されるようになっています。詳しくはGitHub CIを使うの記事をご覧ください。

コーディング標準テストのインストールとその実行は、2つのコマンドで行われます。

composer create-project nette/coding-standard temp/coding-standard ^3 --no-progress --ignore-platform-reqs
php temp/coding-standard/ecs check src

コード上の注意事項

注釈はコードの処理に影響を与えず、プログラマーが使用するためのものです。より大きな、より完全なコードの場合は、そのコードが何のためにあるのか、原理的にどう動くのかを説明するメモを書くことが重要です。

// 変数定義
$a = 5;
$b = 3;
$c = 2;
// すべての数値の和
$sum = $a + $b + $c;
// ユーザーのためのリストアップ
echo $sum;

注釈は一対のスラッシュ(//)で始まり、行の終わりまで有効である。どこでも使える。

ノートは、アルゴリズムの具体的な実装を説明するのではなく、その一般的な原理を説明するものでなければならない。これは、コードが時間の経過とともに何度か変更される可能性があるためで、その場合はノートも修正する必要があります。

**作者コメント:***です。

コードが説明通りの動作をしないことはよくあることです。これは主に、プログラマーがどこかでミスをしたことが原因です。そのため、ノートには一般的な原則を記述し、それに基づいてコードを修正できるようにする必要があります。しかし、アプリケーションで実際に何が起こっているかについての唯一の真実は、実際のコードによってのみ記述され、ノートはそれに何の影響も与えないということを決して忘れないでください。

コード部分のグラフィカルな分離

アプリケーションを設計する場合、論理ブロックを分離することが重要です。通常、関数やメソッド、あるいは基本的なコードの場合は少なくともコメントで区切られています。

長いアルゴリズムでは、まず最初にアルゴリズム全体の原理を説明し、それに基づく具体的な機能を開発者がより理解しやすいように、コード内の個々の場所に番号を振っていくのが普通です。

/**
* この関数は算術平均を計算します。
*
* 1.番号の一覧の取得
* 2.数値の和と数の取得
* 3.平均値を計算し、表示する
*/
// 1.
$numbers = [1, 3, 8, 12];
// 2.
$sum = array_sum($numbers);
$count = count($numbers);
// 3.
echo '平均は' . ($sum / $count);

文字 /** は、*/ マーカーまで適用される複数行のコメントを開始します。読みやすくするために、各行の先頭にアスタリスクを置くとよいでしょう。

ドキュメントコメント

ドキュメントコメントは通常、関数(動作、パラメータ、戻り値、作者など)を説明し、文書化するために使用されます。

以前のバージョンの PHP (7.0 より前) では、データ型はまだ使われていなかったので、特定の変数の型はコメントで直接記述されていました。

/**
* @author Jan Barášek <jan@barasek.com>
* ライセンス MIT
* @link https://php.baraja.cz
* @param float[] $numbers
*/
function average(array $numbers): float
{
$sum = array_sum($numbers);
$count = count($numbers);
return $sum / $count;
}

ドキュメンテーション・コメントが「ドキュメンテーション」と呼ばれるのは、主に、特定の開発環境(およびエディタ)だけでなく、ドキュメントを生成したりコードをチェックする自動化ツールでも理解できる、あらかじめ合意された形式を持っているためです。

チェコ語でコードを書くか、英語で書くか?

私はすべてのコードを英語だけで書きます(関数名、変数、コメント、...を含む)。

これには多くの利点があります。

  • 開発者は、その場で積極的に英語のトレーニングをすることができます。
  • アプリケーションの大部分は英語のサードパーティーライブラリーを使用しているため、自動的に整合性を保つことができる
  • 高度なものは、英訳が全くありません
  • 他にもいろいろな例を思い浮かべることができると思います

PHPは直接的に英語を必要としないので、すべて英語で書くことができます。私は、英語を使うことはむしろ将来への投資のようなものであり、英語を母国語としない他の人たちが簡単にコードを拡張できる機会だと考えています。

完全にローカライズされた英語のコードも企業で使われているので、最初から英語の練習をしておくといいでしょう。

数値演算の順序

PHP が数値演算を行う際には、数値の丸めを行うことを常に念頭に置いてください。このため、小数点以下の数値が含まれる場合は、結果が不正確になることがあり、厄介なことがあります。

まず数字をインクリメントして、可能な限り大きな数字で計算するのが良い解決策と思われます。こうすることで、統計的に歪みが少なくなるのです。

echo 10 / 3; // 3.33333333333と書いている。

場合によっては、小数を一切使わず、すべて整数で計算するという芸当も可能です。この場合、そのような歪みはありません。

echo 1 / 2 * 2; // 1/2=0.5*2=1なので、これはより悪いです。
echo 2 * 1 / 2; // 2*1 = 2/2 = 1 なので、この方が良い。

大きく複雑な数値演算を解くときは、分数を使って数字を書きます。

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
11.
Status:
All systems normal.
2024