問題タブ [modularization]
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.
c++ - 組織化されたモジュラープログラムの書き方を学ぶ
私はコンピュータサイエンスの学生であり、コースワーク用に比較的大きなプログラム(750〜1500行)を書き始めたところです。これまでは、合理的なレベルのモジュール化とオブジェクト指向設計でうまくいくことが可能でした。ただし、割り当て用にもっと複雑なコードを書いているので、より良いコードを書く方法を学びたいと思います。
プログラムのアーキテクチャを可能な限りモジュール化できるように設計するときに、どのようなことを探すべきかを学ぶためのリソースの方向を誰かに教えてもらえますか?
javascript - ラージ オブジェクトをモジュール化する Javascript
関数として定義されたオブジェクトがあり、そのオブジェクトには多くのメソッドとプロパティがあります。これをモジュール化して管理しやすくする方法はありますか? オブジェクト内の関数を外部ファイルに入れることは可能ですか?
編集:
誰かが 1 つの回答で他のファイルを含めるように言及しましたが、これには不適切な HTML ページ、IE が含まれます。
コードを構造化して、javascript ファイルの参照が 1 つだけ必要になる方法はありますか?
php - エコーされる文字列内に PHP の include ステートメントを埋め込む
サイト構造をphp文字列変数として定義し、それらの変数をエコーアウトすることで、サイトをクリーンアップしようとしています。これにより、私のサイト構造のすべてが 5 行に凝縮され、echo ステートメントの間に記事が挿入されます。私のページは次のようになります。
<?php
include('modules/moddefault.php'); //変数として設定されたサイト構造へのリンク
$title = "サンプルページ"; // ページのタイトルを定義します。これは、埋め込まれたタイトル ステートメントに挿入されます。echo "$modtop"; // 宣言、ヘッド、タイトルなど
echo "$precontent"; // プレコンテンツ構造
?><h1>ウェブ コンテンツをここに配置</h1>
<p>記事のコンテンツは素晴らしく整頓されたものにします。</p><?php echo "$postcontent"; // コンテンツ後の構造
?>
PHP 文字列変数内に CSS インクルードを埋め込む方法を知りたいです。PHP が既にページを処理しているため、PHP インクルードは登録されません。インクルード ステートメントは、php ステートメントとして処理されるのではなく、画面に出力されています。
前のコード ブロックでエコーする変数の 1 つのサンプルを次に示します。
$precontent = "<本文>";
$precontent .= "<div id='wrapper'>";
$precontent .= "<div id='header'>";
$precontent .= "<div>";
$precontent .= "include 'modules/header.inc'"; //ここが
問題です $precontent .= "</div>";
$precontent .= "</div>";
$precontent .= "<div id='navtop'>";
$precontent .= "<div>";
$precontent .= "include('modules/topnav.inc');"; //ここが
問題です $precontent .= "</div>";
$precontent .= "</div>";
$precontent . = "<div id='centerbox'>";
$precontent .= "<div id='article'>";
$precontent .= "<div id='innerarticle'>";
$precontent .= "<div>";
文字列内に別のphpステートメントを埋め込んでみましたが、
$precontent .= "<?php include('modules/topnav.inc';?>"; これはうまくいきませんでした。
ssi 形式も試してみましたが、ignore ステートメント内に記述されているため、php はこれらのステートメントを無視しているようです。
どんな助けでも素晴らしいでしょう。
java - 新しい文字列の追加の変調->メソッド呼び出し
次のことを行うプログラムがある場合:
将来的には、次のような別のコードを追加したいと思うかもしれません。
ご覧のとおり、同じ関数Xを使用して、別の条件付きの新しい'if'ステートメントを追加しています。将来のコードには、文字列とを比較するさまざまなIFステートメント(またはスイッチ)が多数含まれる可能性があります。文字列を実行してから関数を実行します。将来の拡張を考えると、同じ結果を達成するための「よりきれいな」、「モジュール式の」方法があるのではないかと思いました。
Javaのハッシュテーブル(String、method)でStringとMethod呼び出しを組み合わせることができないのは残念です。そうすれば、新しいプロシージャをハッシュテーブル内に格納して、その文字列に関連するメソッドを取得できます。
何か案は?
ありがとうございました
編集:みんなの解決策をありがとう。こんなに短い時間で届いた返事の量と質に驚きました。
jsp - プログラムでJSPファイルをレンダリングする方法は?
現在、柔軟性のために、JSP の代わりに Velocity を使用しています。何らかの理由で、Web モジュールをjar
アーカイブではなくアーカイブで配布する必要がありwar
ます。
ただし、サーブレットの仕様を読みましたが、jasper エンジンをプログラムで呼び出す方法が見つかりませんでした。
私の考えは、Webアプリケーションをいくつかのモジュールに分割することです:
- 、およびすべてのサードパーティの jar 依存関係を含む1 つの最上位
war
モジュール。web.xml
- 他の
jar
モジュールには http サーブレットが含まれています (jsp
は特殊な形式のサーブレットです)。
Velocity テンプレートをクラス リソースに埋め込むのは非常に簡単ですが、JSP でも同じことができるのでしょうか?
編集
Velocity の問題は、いくつかの taglibs、JSF などを使用してリッチな Web UI を作成する必要があることです。これは Velocity テンプレートでは実行できません。
python - MVCはGAEアプリの優れたデザインパターンですか?
私のGAEアプリは現在、次のファイル名でセットアップされています
- main.py(2つの主要なモデルとモデルを作成および更新するためのロジック)
- i18n.py(i18nでオブジェクトを表示する方法のユーザーインターフェイスロジック)
- reports.py(cronベースのレポートスクリプト)
名前は十分明確だと思いますが、model-view-controllerパターンに従うことを検討しているので、これら3つのファイルの名前をmodel.py view.py controller.pyに変更することは、より標準化された規則に従うオプションと考えています。この場合、MVC規則に向けたこのタイプのモジュール化が合理的な方法であることに同意しますか?私のアプリについての詳細情報が必要ですか?ユーザーに対して機能するコードがたくさんあります。これは私が感じるコードです。 MVC、パブリッシャー-サブスクライバー、ファクトリーなど、一般的に受け入れられているデザインパターンに従う方法でリファクタリングする権利。この場合、MVCデザインパターンが適切だと思います。他のコードやデータの取り扱いに同意または提案しますか?コメントと議論をありがとう。
java - OSGi の使用例 - 私は正しいですか?
私は OSGi テクノロジーに精通しています。使用したことはありませんが、何度も聞いたことがあります。「ダミー用」の記事をいくつか読みましたが、そのユースケースを完全に理解できていないと思います。私が正しく理解しているかどうかを確認できる人もいるかもしれません。
これが私がやりたいことの例です。Java Web アプリケーションを構築したいとします。シンプルな戦争。ただし、さまざまなモジュールが含まれるように編成されています。各モジュールには異なる機能が含まれます。おそらく、各モジュールは個別の jar としてパックされるでしょうが、わかりません。
さて、私が欲しいのは、関連するメニュー、アイテム、ページの一部などを表示する (または表示しない) ために、どのモジュールが展開されているかを確認できるアプリの UI 部分です...
では、この種の問題に対する OSGi テクノロジーのソリューションはあるのでしょうか? これは意図されたものですか、それとも私はトラックから外れていますか?
ご回答ありがとうございます。
ruby-on-rails - Rails アプリでモジュール化を実装するにはどうすればよいですか?
「大規模な」Rails アプリを構築するためのベスト プラクティス
大規模な Ruby on Rails アプリのモジュール化について簡単な質問があります。
設定:
人々に関する情報を保存するコアアプリを構築しています。また、その情報を非常に異なる方法で使用する「モジュール」もいくつかあります。(たとえば、人々に関する情報を表示したり、人々の間のつながりや共通点を見つけたりすることができます)。
質問:
このアプリを効率的にモジュール化するにはどうすればよいですか?
考えられる答え:
モジュールはモデルとビューをコア アプリ (および相互) と共有するため、それらを 1 つのアプリに結合することは理にかなっています。ただし、アプリが成長するにつれて、これは明らかに問題につながります。これは、コントローラーとモデルの名前空間「適度に大きなRailsアプリケーションでコントローラーを整理する方法」またはエンジンを使用する「Railsアプリケーションのモジュール化」のいずれかを示唆しています。
モジュールは活発に開発されているため、Rails ジェネレーターを使用すると非常に便利です。また、エンジンは Rails の観点からは完全にサポートされていますが、ジェネレーターのサポートとデータベースの移行の欠如に関しては、いまだにハッキリしているように見えます。エンジンの開発に成功した経験のある人はいますか? 動作中のアプリがあり、それをプラグインに移植したい (つまり、コードをコピーして貼り付ける) 場合、エンジンは優れたソリューションのように思えますが、積極的に開発している場合 (モデルの変更など) は難しいでしょう。
私が最後に見たのは、複数のアプリと 1 つのデータベースを使用していることです。この方法は、移行やモデルをまっすぐに保つなどの王室の苦痛のように思えますが、それについても考えてみようと思いました。
delphi - Delphi でのモジュラー プログラミングへの最良のアプローチ
これは、私がここで始めた議論の続きです。この分野の経験がないため、Delphi ソース コードをモジュール化する最善の方法を見つけたいと考えています。私はあなたのすべての提案に感謝します。
私がすでにそこに書いたことを投稿させてください。
私が働いている会社が開発したソフトウェアは、100 以上のモジュールで構成されています (そのほとんどは、さまざまなデバイスのドライバーのようなものです)。それらのほとんどは同じコード (ほとんどの場合クラス) を共有しています。問題は、これらのクラスが常に個別のスタンドアロン PAS ユニットに配置されるとは限らないことです。共有コードは、モジュール固有のコードを含むユニットに入れられることが多いということです。これは、共有クラスのバグを修正する場合、それが定義されている PAS ユニットをすべてのソフトウェア モジュールにコピーして再コンパイルするだけでは不十分であることを意味します。残念ながら、固定されたコードを各モジュールに 1 つずつコピーして、適切なユニットとクラスに貼り付ける必要があります。これには多くの時間がかかります。これは、正しいアプローチを選択することで、近いうちに排除したいものです。助けてください。
EXE と共に配布される BPL を使用することは良い解決策になると思いましたが、前の議論で述べたように、いくつかの欠点があります。最悪の問題は、各 EXE が複数の BPL を必要とする場合、テクニカル サポート担当者が、どの EXE がどの BPL を必要とするかを把握し、エンド ユーザーに適切なファイルを提供する必要があることです。ソフトウェア アップデーターがない限り、これは技術者とエンド ユーザーの両方にとって大きなメリットとなります。彼らは確かに迷子になり、怒るでしょう:-/.
また、互換性の問題も発生する可能性があります。1 つの BPL が多くの EXE で共有されている場合、その BPL の変更は、1 つの EXE には有効で、他の一部の EXE には無効になる可能性があります。
非常に多くのプロジェクトでバグ修正を迅速に行うにはどうすればよいでしょうか? 以下のいずれかの方法が考えられます。より良いアイデアがあれば、お知らせください。
- 共有コードを個別のスタンドアロン PAS ユニットに配置して、そのうちの 1 つにバグ修正があった場合、それをすべてのプロジェクトにコピー (古いファイルを上書き) し、すべてを再コンパイルするだけで十分です。これは、各ユニットが使用されているプロジェクトの数だけコピーされることを意味します。
めったに変更されないコードに関する限り、この解決策は問題ないようです。しかし、一般的な機能と手順を備えた pa ユニットもあり、これらはしばしば変更されます。誰かが新しい関数をこのファイルに追加するたびに、同じ手順 (非常に多くのプロジェクトをコピーして再コンパイルする) を行うことは不可能です。
- すべての共有コードの BPL を作成しますが、それらを EXE にリンクして、EXE がスタンドアロンになるようにします。
私にとっては、これが最善の解決策のように思えますが、いくつかの短所があります。BPL でバグ修正を行った場合、各プログラマーは自分のコンピューターで BPL を更新する必要があります。彼らがそれを忘れたらどうしますか?ただし、それは小さな問題だと思います。変更についてお互いに通知するように注意すれば、すべてがうまくいくはずです. どう思いますか?
- そして、CodeInChaos によって提案された最後のアイデア (正しく理解できたかどうかはわかりません)。プロジェクト間で PAS ファイルを共有する。おそらく、共有コードを別のフォルダーに保存し、すべてのプロジェクトでそのコードを検索する必要があることを意味しますよね? また、プロジェクトを変更する必要がある場合はいつでも、共有ファイル フォルダーと一緒に SVN からダウンロードする必要があると思います。共有コードを変更するたびに、そのコードを使用する各プロジェクトを再コンパイルする必要があります。
良い解決策を選択するのを手伝ってください。ソフトウェア開発への愚かなアプローチのせいで、会社がバグ修正のために必要以上に多くの時間とお金を失うことを望んでいません。これまでのところ、誰もそれを気にかけたことがなく、それがどれほど多くの問題を引き起こしているか想像できるでしょう.
どうもありがとうございました。
javascript - Ext JS を使用して記述されたコードのモジュール化と再利用
Ext JS を活用する JavaScript コードをモジュール化できるようにするための明確さが必要です。私の目的は、Ext JS ウィジェットを拡張するカスタム クラスを作成し、複数の JavaScript ファイル (.js ファイル) にコードを配布することです。
ドキュメントを調べましたExt.Loader
が、クラスの依存関係を確実に解決するためのアプローチには完全に従っていませんでした。コードのシーケンシャル化が依存関係に従っていることを考えると、単一の JavaScript ファイル内のコードは期待どおりに機能しています。しかし、いくつかの JavaScript ファイルでコードを分割し、複数のページで使用したい場合、すべてのページがさまざまな依存関係を持つ異なるクラスを必要とするため、依存関係が混乱します。
通常のバックエンド コーディングでは、コードの分離と再利用を非常に簡単に実現できることを考えると、これには困惑しました。入力にご協力ください。Ext JS 4.1.1 を使用しています