質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

331閲覧

関数の名前の付け方は、一貫させた方が良いのでしょうか。

yayak

総合スコア66

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2018/12/28 17:42

編集2018/12/28 17:43

関数をたくさん作っていると、初期に作った関数の名前と、終盤に作った関数の名前で、名前の付け方に違いが出てきてしまいます。

// DB内のsampleテーブルのデータを、userIDと登録日を指定することで取得している関数(初期に制作した関数) function check_DB_sample_table_by_userID_and_registered(){  //関数名を見るだけで何の関数か分かるように名付けてある } // DB内のhogeテーブルのデータを、userIDと登録日で指定して取得している関数(終盤に制作した関数) function check_DB_hoge(){  //関数名が長くなるのを嫌がって短く名付けてある }

初期に制作した関数と、終盤に作った関数の名前の付け方に差があり、全部に一貫性がないと気持ち悪く感じてしまい、でも今さら膨大な数の関数名を直すのも大変で、悩んでいます。

WEBサービスを作る際、それなりの数の関数を書くことになると思うのですが、皆さまは関数の名前の付け方は一貫させた方が良いと思われますか?それとも、どうでもよい問題だと思いますか?

ふと、ベテランの方はどのような感覚なのだろうと気になり、質問致します。

何卒、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2018/12/29 00:08

それほど膨大ではない気がします。直せばいいのではないですか? 膨大というのは関数名の数ではなく、その呼び出しを含めての話ではないでしょうか。 だとしたらツールを活用して一度に変更してください。
yayak

2018/12/29 00:54

そうしてみます!ありがとうございます。
guest

回答4

0

ベストアンサー

こういう質問は、実はあまり意味がないと思います。

WEBサービスを作る際、それなりの数の関数を書くことになると思うのですが、皆さまは関数の名前の付け方は一貫させた方が良いと思われますか?それとも、どうでもよい問題だと思いますか?

一貫させたほうがいいに決まっているわけで、そこに異論がある人はあまりいないと思います。でも、現実的には、一貫性のない関数名をつけてしまうわけです。

初期に作った関数の名前と、終盤に作った関数の名前で、名前の付け方に違いが出てきてしまいます

これは、同じ人が命名しても、時間の経過とともに関数名の付け方がかわってしまうという意味だと解釈しました。実際そんなものです。命名に一貫性を持たせることは難しいことなのです。

PHPタグがついていますが、PHP自体が、一貫性のない関数名の代表例になっています。そのため、関数名を一貫性のあるものに変更(aliasかな?)しようという提案も過去に出たことがあり、議論は活発でしたが、投票まではいたっていないようです。

PHP RFC: Consistent Function Names

開発に先立って関数名の命名規則を決めておかないと一貫性のない関数名になるに決まっているわけで、過去はともかく、今後の開発については命名規則を決めたらどうでしょうか? 関数名の命名規則は、やってみると意外に難しいですよ(*1)。そして、過去のものを変更するかどうかは、命名規則による開発が定着してからでも遅くないと思います。

*1 関数名の命名規則を作ること自体は難しくはないですが、それで運用してみると不満が出てきて、命名規則を変えたくなるという意味です

投稿2018/12/29 00:56

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yayak

2018/12/29 10:53 編集

本当にわかりやすい、私が「知りたい」と思っていたことが1だとすると、10くらいの、「生きた知識」」を教えてくださり、本当に有難うございます。 やはり、命名規則は「あとで変えたくなる」という面で難しいものなのですね。 命名規則による開発が定着するまで、もっと勉強を進めようと思います。 有難うございます。心よりお礼申し上げます。
guest

0

ネーミングのルールをちゃんと整備してから作り始めるか、とりあえず作ってからドキュメントを整備するか、どちらかは必須です。

今後メンテナンスをしてゆかないといけないシステムなら、ネーミングルールの見直しと関数名の修正・統一を行ったほうがトータルコストは低くなるのではないでしょうか。

投稿2018/12/29 00:41

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yayak

2018/12/29 10:54

やはり、そうなのですね。。 今後、ネーミングルールの見直しを徐々に進めていこうと思います! 有難うございます。
guest

0

ネーミングルールがしっかりしてないからでは?
通常の現場では好き勝手つけていいことはありませんし、必ずコーディングのチェックが入って指摘事項として上がります。
詳細設計段階でメインの処理部分の関数名まで指定されることもあります。
ネーミングルール、コーディング規約がしっかりしていればそのようなトラブルは起きません

投稿2018/12/28 23:49

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yayak

2018/12/29 10:57

おっしゃる通りで、ネーミングルールが全然なっておりませんでした。 ネーミングルールをしっかりさせていく力も、今後身に着けていきたいと思います。 いつも知恵を分けてくださり、本当に感謝しております。 ただただ、頭が下がる思いです。有難うございます。
guest

0

...
全部に一貫性がないと気持ち悪く感じてしまい、でも今さら膨大な数の関数名を直すのも大変で、悩んでいます。
...
関数の名前の付け方は一貫させた方が良いと思われますか?
...

まさに悩みどころですね。
関数定義部分で名前を変更したら、呼び出し側も漏れなく変更しないとプログラムは動作しなくなってしまいます。
変更に伴う修正は、関数名だけでなく、関数引数の数、順番、型の変更というケースもあります。

名前の一貫性という点では、関数名だけでなく、
ファイル名、名前空間、変数、表示する文言(エラーメッセージ)の文体や用語
でも統一をしていきたいと感じるはずです。

一人で作成していても、統一していく、変更をする際に漏れなく修正するといったことは大変です。
まして、複数人で作成していた場合はさらに大変です。

理想は、最初に命名規則を定め、ソースを作成していく段階でその規則を守って作業していくことです。
でも現実は違うし、命名規則を途中で変更する可能性だってあります。

現実的な対処としては次のようにするしかないとおもいます。

    1. 既存のもの放置する。
    1. 新規作成は、命名規則に沿って作成する
    1. 既存コードのバグ修正・機能拡張時は、同時に名前変更も行う。
  • 3.1 修正前後でバグを埋め込まないために、unit テストを書く。

時間の余裕があれば、リファクリングとして、大々的に名前変更を行うことを考えてもよいです。
でも、このリファクタリングはアプリ利用者には益はありません 。
(メッセージ変更は利用者への益がありますが、場合によってはメッセージを変更されては困るといわれるケースもあります)

アプリでなくライブラリーの場合は、関数名の変更は利用者へも影響がでます。
広く使われているライブラリーでも、関数の名前変更や廃止がされることがあります。
その場合は、事前にそのことを通知し、当面は両方を有効にし、
変更・廃止する関数に使用は非奨励の警告を出す なんていう処置がとられることが多いです。
(互換性を無視してバージョンアップされてしまうライブラリーもありますが)

unix のコマンドの cat という名前は、開発者も失敗と考えていたようです。
(書籍で読んだ記憶がある、web 上でそのトピックを改めて探したがすぐにはみつけられず。見つけたかたはコメントでお知らせください)
でも変更されることなく各種の unix のディストリビューションでも使われ続けています。

投稿2018/12/31 22:31

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yayak

2019/01/05 11:45

ありがとうございます、知らないことがたくさんあり、まだまだ自身の勉強不足を痛感するばかりです。 もっともっと勉強します! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問