問題タブ [application-structure]

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 投票する
6 に答える
336 参照

access-modifiers - アクセス修飾子 ... なぜ?

わかりましたので、 OOP 内のアクセス修飾子に関して、なぜプログラマーがそれほどストレスを感じるのかを考えていました。

このコードを例に取りましょう / PHP!

web_address はプライベートであるため、 によって変更することはできませんが$object->web_address = 'w.e.'、変数が変更されるのは、プログラムが変更する場合のみです。$object->web_address = 'w.e.';

アプリケーション内で変数を変更したくない場合は、プログラミングに変数を変更するコードがないようにアプリケーションを作成します。したがって、変数は決して変更されませんか?

だから私の質問は次のとおりです。プライベート/保護/非公開エンティティを使用する際の主なルールと理由は何ですか

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

javascript - データ/DOM要素を保存または破棄しますか? どちらがより多くのリソースを必要としますか?

JavaScript/jQuery を使用した高度なアプリケーション開発にますます夢中になっています。私は JavaScript 言語についてもっと学び、より高度な機能のいくつかに飛び込もうとしています。記事のこのセクションを読んだとき、メモリ リークに関する記事を読んでいたところです。

JavaScriptはガベージ コレクション言語です。つまり、オブジェクトの作成時にメモリがオブジェクトに割り当てられ、オブジェクトへの参照がなくなると、ブラウザによってメモリが解放されます。JavaScript のガベージ コレクション メカニズムに問題はありませんが、一部のブラウザーが DOM オブジェクトのメモリの割り当てと回復を処理する方法と矛盾しています。

これにより、私のコーディングの習慣について考えさせられました。しばらくの間、サーバーに送信するリクエストの数を最小限に抑えることに重点を置いてきましたが、これは良い習慣だと感じています。でもたまには行き過ぎないかなーと思ったり。私は、JavaScript 言語に伴う効率性の問題やボトルネックについてまったく知りません。

私は最近、レッカー会社向けの収監管理アプリケーションを作成しました。jQuery UI ダイアログ ウィジェットを使用して、データグリッドに特定のチケット データを入力しました。さて、これは表面的には非常に単純に聞こえますが、ここでは大量のデータが渡されます。

(そして質問ですが...ドラムロールをお願いします...)

次の各オプションの長所/短所は何なのか疑問に思っています。

1)特定のチケットに対して1 つのリクエストのみを作成し、永久に に保存しDOMます。モーダル ウィンドウを表示/非表示にするだけで、チケットごとに 1 つのリクエストのみが送信されます。

2)チケットがオープンされるたびにリクエストを行い、チケットがクローズされると破棄します。


私の自然な傾向は、チケットをDOM- に保存することでしたが、アプリケーションがリセットされずに長時間実行されると、最終的に大量のメモリを占有し始めるのではないかと心配しています (そうなるでしょう)。

私は本当に、これら2つのオプションの両方の長所/短所を探しているだけです(または= Pについて聞いたことのないきちんとしたもの)。

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

javascript - JavaScriptファイルインクルード。リンクしてはいけませんか?

DouglasCrockfordsの「TheoryoftheDOM 」を見ていますが、スクリプトタグの場所が、アプリケーションの読み込み時間に大きく影響する可能性があると彼は言いました。さらに、彼は、スクリプトタグをドキュメント本文のできるだけ下に含める必要があると主張しています。

これは正確ですか?

また

このビデオは古くなっていますか?(彼がDOMについてもっと早く講義しなかった理由として、彼は実際にそれを見つけました)。

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

javascript - 独自の名前空間をいつ使用し、いつネイティブ js オブジェクトを拡張する必要がありますか?

コードをリファクタリング中です。私が持っているいくつかのユーティリティ関数を正確に実装する方法を決めるのに苦労しています。 具体的には、特定の関数が私の個人的な名前空間で使用したり、js オブジェクトを直接拡張したりした方がよい場合。

ネイティブ JavaScript オブジェクトの拡張例

(これは適切な用語ですか?)。

自分の名前空間を使用した例

考慮すべき質問

  1. ユーティリティがネイティブ JavaScript オブジェクトに正当に挿入されるのはいつですか?
  2. ユーティリティが自分の名前空間にある方がよい場合はどうすればわかりますか?
0 投票する
3 に答える
1216 参照

php - 初級 CodeIgniter の概念 - 再利用可能なビュー コード、どこへ行く? (ヘルパー?)

私は CodeIgniter の初心者であり、MVC イデオロギーを最もきれいに使用する方法を完全に把握するのにまだ苦労しています。

私は、エントリに投票したり、人々をフォローしたりする機能を備えた基本的な CMS システムを作成しています。

  • 投票パネル
  • フォロー/フォロー解除パネル
  • ログイン/ログアウトパネル
  • ユーザーがログインしているかどうかを確認するコードなど...

統一できるように、このコードをどこに置くべきか疑問に思っていますか? ヘルパーが行く方法だと思いますか?コントローラーでヘルパーを宣言すると、対応するビューから呼び出すことができますよね?

一部の要素は動的です (フォロー/フォロー解除ボタンなど)。既にユーザーをフォローしているかどうかを確認し、適切なボタンを表示する必要があります。これには、モデルを確認する必要があります。私が今持っているのは、すべてのロジックがコントローラーにあり、適切なボタンを返すということですが、コントローラーのリターンでも形成されたhtmlコードを返すのは奇妙に思えます。もっと似ているはずです:

  • コントローラーは、あなたが誰かをフォローしているかどうかをチェックします
  • コントローラーはブール値をビューに渡します
  • ビューはこの値でヘルパーを呼び出し、適切なボタンを描画します

また、二次的な質問として、ビューから返された mysql の結果を処理するために、foreach ループで mysql 配列をかなりループしてきました。私のビューはやや複雑になっているようですが、別のヘルパーでも行う必要があるかもしれませんが、別の方法は考えられませんか?

これがナイーブまたは繰り返しの質問である場合はお詫びします。この件に関しては確かに多くの議論がありますが、別のプロジェクトに簡単に関連付けられるとは限りません。

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

node.js - node.jsのアプリケーション構造?

私は、WebアプリケーションがwarファイルとしてデプロイされるJavaWebコンテナーに精通しています。

Node.jsでCSS、JS、HTML、画像(など)をデプロイする方法がわかりません。どのようにこれを行うのですか?

Node.jsについての知識は非常に限られています。前もって感謝します!

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

objective-c - プレゼンテーション アプリの iOS プロジェクト構造

  • ブランド製品を紹介するプレゼンテーション アプリを作成します。
  • プレゼンテーションには、共通の背景を持つ複数のスライド (状態) があります。
  • 一部のスライドでは、前のスライドに戻ることができます

私の質問:

1. ビュー ベースのアプリケーションを使用する必要がありますか?
2. 状態 (スライド) ごとに個別に使用する必要がありますUIViewControllersか?
3.プレゼンテーション アプリの最適な構造を教えてください。

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

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

php - CakePHP アプリの構造: 1 つの DB とアプリ vs. 複数の DB とアプリ

概念的な簡単な質問があります。

最近、私は (オンザフライで) クライアントを作成できるアプリの開発を開始しました。クライアントは、他の多くのもの (独自のログインなど) を持つプロジェクトを作成できます。

ユーザーがプロジェクトにアクセスするための URL 構造は「example.com/client1/project1」です。これまでのところ、DBモデルとルーティングなどですべて管理しました.

構造例:

ただし、少数のクライアント (< 15) しか存在しないため、クライアントごとに個別の app-folder と DB を使用する方がよいかどうか疑問に思っていました。このようにして、各クライアントのアップグレードを個別にロールアウトすることもできます。


ここで、この問題に関する私の最初の考え(個別のインストールに進みます):

長所:アプリを分ける

  • クライアントごとに更新と新機能を個別にロールアウトする機能 (一部の新機能は一部のクライアントに歓迎されない可能性があります)
  • 1 つの DB のエラーは 1 つのクライアントにのみ影響します

反対: 別のアプリ

  • すべてのアプリを監視し、更新をグローバルに適用するという点で、より多くのメンテナンス作業 (ただし、クライアントの数を考えると、これは実際には問題ではありません)
  • 異なるバージョンなどで本当に混乱する可能性があります。
  • すべてのアプリにアクセスできるスーパー管理者を実装する機能がない (アプリ レベルで行う必要がある)
  • 共有機能とデータの作成が困難 (クライアントへの課金など)
  • 悪い習慣?

すべてのインストールをマージしたい場合でも、すべてが UUID に基づいているため、これは実際には問題になりませんさらに、クライアント モデルを実装し、残りはすべてクライアント モデルに依存します。この方法では、データベースとクライアントのファイルを 1 つのアプリ インストールに結合するだけです (誰もが同じ機能を望んでいる場合)。 .

注: CakePHP のコア ライブラリは、どのような場合でも共有されるため、ここでは問題になりません。

この場合、あなたはどう思いますか?私が見ることができる唯一の問題は、請求に関するものです。

しかし、各クライアント内から中央の DB を呼び出して、「請求が必要なものを作成したばかりです」と知らせることは問題ではありません。

単一のアプリで行う場合、特定のクライアントを一部の更新から除外するにはどうすればよいですか? それとも、全員に新しい機能に慣れさせるだけでよいのでしょうか?

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

c++ - それは正しいC++アプリ構造ですか?

この正しいアプリの構造は1つ質問がありますか?私はC++とCMakeから始めており、正しい方法で始めたいと思っています。

Root \ CMakeLists.txt

Root \ src \ CMakeLists.txt

Root \ src \ Application

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

javascript - 複雑なアプリケーション構造のための NodeJS ローカル モジュール

私は現在、JavaScript を使用して Windows 8 アプリケーションを構築するチームの一員です。npm と browserify を使用して依存関係を管理し、モジュールを AMD ブラウザーに適した形式に変換します。

私たちが直面している問題の 1 つは、クレイジーなパスの要求です。これは、アプリケーションの「コンポーネント」内に最上位のフォルダーがあるためです。このフォルダーには、ネストされた ui コンポーネント/モジュールが多数含まれています。これらのモジュールは、lib ディレクトリに存在する lib ユーティリティとヘルパーを必要とする場合があります。

たとえば、「my/app/components/product/grid/item」にあるモジュールには、「my/app/lib/helpers/view」にあるヘルパー モジュールが必要になる場合があります。

必要なパスは少しクレイジーで非常に醜いです:

モジュール方式でアプリケーションを組み込むために最善を尽くしています。これにアプローチする適切な方法は、コンポーネント モジュールをこれらの util ヘルパー モジュールに依存させることだと思います。lib ヘルパーを独自の外部プライベート git リポジトリに配置することもできましたが、他のチームにアクセス権を与えるという点では苦労しました (さらに、git プライベート リポジトリは低速です)。さらに、これらのモジュールはアプリケーションでのみ使用されるため、変更を加えて変更をプッシュし、アプリケーションに戻って npm を更新するのは時間の無駄です。これは一部の人にとっては問題ありませんが、これを本当に分解すると、すぐに古くなる可能性があります.

コンポーネント package.json 内で npm install "my/app/lib/helpers/view" を実行できますか? しかし、npm install はこれを自動的に行いません。

私はこれを回避するいくつかの他の方法を知っています (NODE_PATH、おそらく npm install フックまたは npm preinstall スクリプトを使用します) が、他の誰かが同様の問題と適切な解決策を持っているかどうかを知りたいと思っていました.