問題タブ [procedural-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
36643 参照

php - mysqli を使用したオブジェクト指向 PHP が手続き型アプローチよりも優れているのはなぜですか?

私は最近まで mysql* で手続き型アプローチを使用してきました。今は、mysqli とオブジェクト指向のアプローチに移行したいと考えています。多くのオンライン リソースや書籍では、PHP の場合でも、OOP は手続き型よりも優れていると述べています。オンライン チュートリアルをいくつか行った後、データベースに接続して値を選択する小さなプログラムを作成しました。オブジェクト指向のアプローチが優れている理由を知りたいですか? さらに、これはOO php Webページをコーディングする正しい方法ですか?

オブジェクト指向アプローチ

手続き型アプローチ

0 投票する
4 に答える
71 参照

php - 私はtutをやっていますが、この構文を理解できません

私は通常、oop コードを作成します。おそらく、このコーディング方法を見たことがないのはそのためです。以下の多次元配列の構文がわかり[$obj->id]['label']ません。$obj['id']['label']]

0 投票する
1 に答える
2228 参照

static-analysis - JSON オブジェクト (AST) から制御フロー グラフ (CFG) を作成する方法

JSON 形式で指定された AST から制御フロー グラフ (CFG) を作成したいと考えています。したがって、この AST は各スクリプトに対して TouchDevelop で自動的に作成されます。また、TouchDevelop はオブジェクト指向プログラミングではないため、Visitor パターンを引き続き使用できますか? 有用なポインタをいただければ幸いです。

Update1:私の問題は、どこから始めればよいかわからないことです。インターネットから、Visitor Pattern を使用して AST をウォークスルーし、各ノードにアクセスして情報を収集することになっています。そこから CFG を構築し、データ フロー分析を行うことができます。しかし、次の 2 つの問題があります。

1)私の知る限り、訪問者パターンを使用するにはオブジェクト指向プログラミングモデルが必要です(私は間違っているかもしれません)が、TouchDevelopはそうではありません。

2) 以下の AST は、インターネットで見つけた AST 形式ではありません。JSON形式です。JSON を解析して目的の AST 構造に変換できると思いますが、よくわかりません。

サンプルスクリプトのソースコード

結果の AST (JSON 形式) を以下に示します。

0 投票する
2 に答える
134 参照

c++ - ノードと関係からのブロック生成のアルゴリズム

ノードとノード間の行のリストがあります。次のようになります。

地図

私が必要としているのは、ブロックを生成することです。この場合、次のようになります。block1:1,2,14,11 block2:2,13,12,14 block3:2,3,4,5,6,12,13ブロック4:6、7、12など..

誰かがこれのためのアルゴリズムを作成する方法を知っていますか?どうも

0 投票する
3 に答える
5450 参照

php - 手続き型PHPをオブジェクト指向PHPに変換する

私は現在、完全に手続き型PHPで書かれたかなり大きなアプリケーションを持っています。私はPHPの経験をさらに深め、オブジェクト指向の手法を使用してアプリケーションの大部分を再コーディングしたいと考えています。

OOPがコードの量を減らし、読みやすくするのに役立つ領域はたくさんあります。ただし、いくつか質問があります。

1) 1つのクラスが任意の数のオブジェクトの青写真として使用されることは私の理解ですが、1つのクラスは1つのオブジェクトのみを表し、複数のオブジェクトを表すことはありません。したがって、1つのクラスでプレーヤーを表すことはできますが、複数のプレーヤーを表すことはできません。

2)含めるクラスがかなりあるので、「ローダー」クラスを使用してそれらすべてを使用してロードしますか、それともアプリケーションのプログラムファイルでspl_autoload_register使用しますか?spl_autoload_register

編集:それで、私のオートローダーは、オートローディングを開始するためのインスタンスを作成するクラスになるのでしょうか、それとも、複数のファイルで同じコードを繰り返さないようにするために含める関数とspl_autoload_registerを含むphpファイルですか?

3)私のクラスのいくつかは他のクラスに依存しています。私はこれまでにこれに遭遇したことがないので、正直に答えを知りません。メインプログラムファイルにすべてのクラスを含めても、プレーヤークラスに機能する必要のあるクラスが含まれていない場合、メインプログラムにはプレーヤーが依存するクラスが含まれているため、プレーヤークラスは機能しますか?

編集: 1つのクラスがPlayerタイプのオブジェクトをインスタンス化し、Playerクラスがこのクラスに直接含まれていない場合でも、コントローラークラスにはPlayerクラスが含まれているため、引き続き機能ますか?

4)作成しているオブジェクトで作業する必要がある場合が複数あります。どうすればいいのかしら。たとえば、私のPlayerクラスでは、あるプレーヤーから別のプレーヤーに何かを送信する必要がある場合があります。それで、2人のPlayerをパラメーターとして受け取り、転送を行う静的メソッドをPlayerクラスに実装しますか、それとも他のことをしますか?

編集:わかりました。静的メソッドは避けてください。今、私は深刻な問題を抱えています。アプリケーションで複数回実行されるメソッドがありますが、静的メソッドとして実装することはできません。それらをインスタンスメソッドとして実装することになっていますか?たとえば、あるプレーヤーから別のプレーヤーに送信します。Playerオブジェクトを受け取り、そこに送信する、またはそこから送信するインスタンスメソッドを作成ます

5)クラスのどのインスタンスにも実際には属していないメソッドがたくさんあり、静的メソッドとしても適切ではありません。これらは、Commonまたは同様の静的メソッドとして独自のクラスで宣言する必要がありますか?この状況で実際に行われていることは何ですか?

編集:これらのメソッドは、使用されている特定のアプリケーションファイルに属しているのでしょうか、それとも独自の「functions.php」ファイルに保存されているのでしょうか。

6)名前空間の使用方法を学びたいのですが、自分のコードが他の人に使用されることはなく、自分のアプリケーションで他の人のコードを使用することもありません。名前空間は私のアプリケーションに不必要に追加されていますか、それとも名前空間の使用方法を学ぶのは良い考えですか?とにかく、1つのアプリケーションに1つの名前空間(アプリケーション名?)がありますか、それとも各クラスはそれ自体の名前空間に属しますか?

7)最後に、データベース接続用に1つのクラスがあり、ネットワークメソッド用に1つのクラスがあるのが一般的ですか?私のアプリケーションには両方が必要です。オブジェクト指向技術を使用するようにコードを変換する際に私が抱えている主な問題は、現在、すべてが1つのモノリシックファイルにあるため、どのメソッドをどこに配置するかを決定することだと思います。

あなたが提供できるどんな助けと洞察にも感謝します。

0 投票する
1 に答える
852 参照

algorithm - すべり牌パズルの解き方について

V Anton Spraul の "Think Like A Programmer" を読み始めました。これが質問です。

本で言及されている列車のテクニックは、その中で目撃された例ではうまく機能します。スライド タイルの問題を解決するために、トレイン アプローチ メソッドを作成しようとしていました。

私が完全な問題のサブセットに取り組んでいると仮定すると、以下の一連のタイルに対して (本の例として示されているように)、言及されたアプローチはうまく機能します。

一番上の行に 4、5、6 が順番に表示されるまで反時計回りに移動し、次に 8 を空のスペースにスライドさせてすべてを順番に並べます。

しかし、以下については、適切な方法が見つかりませんでした

パズルが解けない順列が存在する可能性はありますか?

ありがとう、

/MS

0 投票する
1 に答える
202 参照

php - PHP: $_REQUEST からの適切な関数呼び出し

私はプロジェクト(PHPフレームワークに基づいていない)を読んでいて、ユーザーリクエスト(またはのいずれ$_GET$_POST)に応答するほぼすべてのPHPファイルで次の(手続き​​型)コードに出会いました。

関数呼び出しのメカニズムとして、それが十分に安全であるかどうか (または脅威が何であるか) を知ることに興味があります。このコードは、制御フローまたは関数の列挙につながる可能性がありますか?

手続き型PHPで関数を呼び出すための適切な方法または提案されたメカニズムはありますか?

0 投票する
5 に答える
1257 参照

php - 関数を PHP プロシージャルから PHP MVC に変換するには?

ビューページにこの関数があり、一部のデータを切り捨ててテーブルに表示します。

ダイナミック テキストのローカル変数を設定します。

同じページに、これがあります:

そして、それは完璧に機能するので、私の質問は、Codeigniter を使用して MVC アーキテクチャにこれをどのように適用できるかということです。誰かが私に知らせてくれたら、ありがとう!!!

0 投票する
1 に答える
329 参照

box2d - ランダムに生成され、サイズ変更された四角形のテクスチャ

私はランダムに生成された超高層ビルを持つ惑星でゲーム (libgdx & box2d) を作成しています - 下の画像を参照してください。

超高層ビルの位置、幅、高さはランダムです。私は今、これらをテクスチャ化する最良の方法を探しています。

これは、ランダムなサイズのオブジェクトのテクスチャリングをどのように解決するのが最善かについての一般的な質問です。コードを提供する必要はありません。

私が持っているオプションは何ですか?小さなテクスチャ スクエアを作成し、並べて表示しますか? それらを伸ばす?それらを手続き的に生成します(これは超高層ビルのようなテクスチャで可能でしょうか-ベースの灰色の正方形と、光の有無に応じた黒/黄色の窓)?何を考慮する必要がありますか?

現時点では、これについてどうすればよいか本当にわかりません。どんなアイデアでも大歓迎です!

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

ジョナス

超高層ビルのある惑星

ストレッチでなんとかやり遂げました-今ではすべてのサイズで1つのテクスチャのみを使用していますが、それを変更します. box2d オブジェクト上に引き伸ばされたテクスチャ

0 投票する
3 に答える
1060 参照

javascript - すべてを外部の .js ファイルに保存します。ただし、すべての機能がすべてのページで使用されるわけではありません。これは速度に影響しますか?

私のアプリの JavaScript/jQuery は外部scripts.jsファイルに含まれています。一般的には次のようになります。

giraffe()で利用可能なビューに/animal/giraffe
elephant()のみ使用されます で利用可能なビューに/animal/elephant
zebra()のみ使用されます で利用可能なビューにのみ使用されます/animal/zebra,

ただし、3 つすべてがビュー available で実行されることになっています/animal/all.jsこれは初歩的な例ですが、HTTP リクエストを最小限に抑えることは別として、これらすべてを 1 つのファイルにまとめる理由は次のとおりです。

私の質問は、これは JavaScript のレンダリングに影響しますか? giraffe()で使用されていない (作業する要素がない)にもかかわらず/animal/zebra、まだ呼び出されています。何もすることが見つからない場合、js/jQueryは関数を無視しますか? スクリプト全体が読み取られていると確信しており、おそらく時間がかかります。それで、これを処理する最善の方法は何ですか?

1 つのソリューション

競合を避けるために、アクティブなページが必要とする関数のみを実行するように、js ファイルの先頭に条件を作成しました。

これは私が望むよりも少し冗長ですが、これらの関数をモジュール化/競合から解放することに成功しています。このソリューションの改善を歓迎します。