問題タブ [code-organization]
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.
php - クラスを作成するか、PHP で XML データに連想配列を使用しますか?
メンテナンスとコード編成の観点から、PHP5 では、Web サービスからの XML データのオブジェクトとクラスを作成/定義することは理にかなっていますか?
例としてTwitter の APIを使用すると、API メソッド (statuses、users、direct_messages など) ごとにクラスが作成されます。の場合statuses/public_timeline
、次のようなものがあります。
または、すべてを連想配列にダンプする方がよいので、アイテムは次のようにアクセスされます。
最初のデザイン:
- オブジェクト指向の原則に厳密に従う
- コンパイルされた言語により適したアプローチのようです
2 番目の設計:
- API が変更された場合、必要なメンテナンスは大幅に少なくなります。API が XML に属性を追加する場合、最初の設計で対応するクラスを更新する必要があります。
django - なぜdjangoはすべてのモデルクラスをmodels.pyに強制するのですか?
モデルクラスを異なるファイルに分割すると、django の組み込み機能の多くが壊れることを知りました。
私はJavaの背景から来ています。そこでは、非常に長いクラス ファイルを作成することは良い習慣として受け入れられていません。しかし、django がすべてのモデル クラスに対して単一ファイルを強制しているため、プログラマーは非常に長い models.py ファイルを作成することになるでしょう。これにより、プログラマーがドメイン モデル全体の構成を確認することが難しくなります。
では、なぜ django は単一のファイルにすべてのドメイン クラスを含めるよう強制するのでしょうか?
グーグルでこの問題の解決策を見つけました。しかし、これが適切に機能するかどうかはわかりません。この解決策を提案しますか?
python - Python でのコード編成:あいまいなメソッドを配置するのに適した場所はどこですか?
Path
専用モジュールで、約10個のメソッドが定義されているクラスが呼び出されましたPath.py
。最近、 用にさらに 5 つのメソッドを作成する必要がありましたがPath
、これらの新しいメソッドは非常に曖昧で技術的であり、90% の確率で無関係です。
それらのコンテキストが明確になるように、それらを配置するのに適した場所はどこでしょうか? もちろん、それらをクラス定義に入れることもできますが、重要なものをあいまいなものから分離しておくのが好きなので、それは好きではありません。
現在、私はこれらのメソッドを別のモジュールで定義された関数として持っていますが、それらを別々に保つために、それらをバインドされたメソッドとして持つ方が良いでしょう. (現在、Path
インスタンスを明示的なパラメーターとして受け取ります。)
誰か提案がありますか?
wcf - Silverlightで別のWCFプロジェクトを使用する
WCFを使用するSilverlightアプリケーションに取り組んでいます。SilverlightプロジェクトをホストするASP.Netアプリケーションとは別にWCFプロジェクトを用意する必要があります。ソリューションを整理し、デバッグと展開中に他の人が経験した落とし穴をリストする方法についてのガイダンスを探しています。
具体的には私の質問は
WCFサービスにはどのタイプのプロジェクトを使用する必要がありますか?(WCFプロジェクト、自己ホスト型WCFサービスを備えたASP.NETプロジェクト、その他)
F5キーを押したときに、SilverlightプロジェクトとWCFサービスの両方をデバッグできるようにするには、何をする必要がありますか?デバッグするためだけにクロスドメインポリシーが必要ですか?
私がこれをしたい理由に関するいくつかの背景情報:
徐々にSilverlightアプリケーションに変換しているレガシーWebアプリケーションがあります。これは大規模なWebアプリケーションであるため、その機能の一部は他の機能よりも先にSilverlightに変換されます。
従来のWebアプリケーションには、使用されなくなった多くのコードが含まれています。使用されなくなったコードの多くは、サードパーティのアセンブリを参照しています。これが、古いWebアプリケーションを削除したい理由です。したがって、将来のバージョンのために保持されるWCFサービスをホストしたくないことは明らかです。これが、WCFプロジェクトを分離したい理由です。
visual-studio - IDE で関数ブロックを整列するこの破線は何と呼ばれていますか?
私が Python コードに使用する SPE IDE は、関数ブロック (私が呼ぶもの) の位置合わせに縦の破線のように見えるこの「ビジュアル キュー」を使用します。Visual Studio 2008 でこのオプションを取得するにはどうすればよいですか?
これは次のようになります。
java - .NET で #region/#endregion に似たコードを整理する方法は?
コードが大きくなるにつれて、すべてを適切に整理することがますます難しくなっています。私が .NET で開発したときにとても気に入ったのは #region/#endregion でした。これにより、コードを論理的なグループに整理でき、さらに整理しやすくなりました。
Javaで同様のコード編成が可能かどうかを知っている人はいますか?
php - PHP でのクラスの編成
プロジェクトに次のクラスがあるとします。
- class Is //検証クラス
- class Math //数値操作クラス
さて、与えられた数の素数を検証したい場合、Prime() メソッドを挿入する論理的な場所はどこでしょうか? 次のオプションを考えることができます。
- Is_Math ::プライム()
- Math_Is ::プライム()
私はこれらのあいまいさが嫌いで、思考プロセスが遅くなり、しばしばエラーを引き起こします。いくつかの例:
- Is::Image() または Image::Is() ?
- Is_Image::PNG() または Image_Is::PNG() ?
- Is_i18n_US::ZipCode() または i18n_Is_US::ZipCode() または i18n_US_Is::ZipCode() ?
Image の例では最初の選択肢がより理にかなっていますが、i18n の例では最後の選択肢を好みます。標準がないと、コード ベース全体がごちゃごちゃしているように感じます。
クラスを編成するための聖杯のソリューションはありますか? 多分別のパラダイム?
code-organization - 本番サーバーでのデモ/ステージング/ライブ間のサイト展開の管理
現在、サーバーへのサイトのロールアウトを管理してから、サイトをデモ/アカウント/ライブの「モード」に切り替える方法は、少し危険であり、プロセス全体を改善したいと考えています.
自動展開ツールだけでなく、サーバーの構造も見直してきました。自動展開に関する質問は別の投稿に譲ります。ここでは、人々が運用サーバーでコードを整理する方法に興味があります。
現在、データ ドライブには「demo」、「acceptance」、「live」の 3 つの最上位フォルダーがあります。何かを「デモ」または「ACC」として分類するものの間にはわずかな違いがありますが、これについては触れませんが、すべての議論/あいまいさを取り除きたいと言えば十分です。
ロールアウト手順は次のとおりです。サイトが開発されたらacceptance.project-domain.com
、「acceptance」フォルダーの下などの「acceptance」ホスト ヘッダーの下にロールアウトします。クライアントはサイトをレビューし、すべての接続文字列/権限などが正しいことを確認するためにテストを行います. クライアントはライブへの OK を出します。この時点で、サイトを「ライブ」フォルダーの下に完全に再展開し、ライブ ホスト ヘッダーを指定します。もちろん、この時点では、サイトは展開された状態で完全にテストされていません (ここでは単体テストについては話していません。つまり、ファイルのアクセス許可、iis の設定ミスなど)。その後、サイトを再テストする必要があります:(
このような構造は、はるかに優れていると思います。
version1
このようにして、新しいサイトを"acc" ホスト ヘッダーの下のフォルダーに展開できます。クライアントが OK を返したら、ヘッダーを切り替えるだけで済みます。変更要求がある場合v1.1
は、受け入れヘッダーを持つことができる下に移動し、OK を取得したら、ヘッダーを交換すれば問題ありません。すすいで繰り返します。
このプロセスは、自動化された展開スクリプトの管理もはるかに簡単になります。サイトのすべてのコードを 1 つの親フォルダーの下に置くということは、アップロードのアクセス許可を 1 つのサイトに制限できることを意味します。そのため、別のサイトのコードを誤って上書きすることはありません。サーバー上にあるバージョン、プロジェクトを追跡するのがはるかに簡単になります。管理 wiki は簡単に維持できます... リストは続きます!
コード編成とロールアウト管理の方法は何ですか?
java - 小さなユーティリティ機能を整理する
何年にもわたるプログラミングの後、私たちは皆、ヘルパー ユーティリティとして使用される小さな関数のセットを持っています。それを組み込みにして、任意のプロジェクトで使用し、より多くの人々 (テストおよび最適化) に対応してもらいたいと考えています。
私はこれらの関数のかなりのコレクションを持っています。皆さんはどのように整理していますか?ヒントはありますか?
これが私のやり方です。私はそれを別のプロジェクト(Eclipseプロジェクト)に入れ、「MyUtils」と言って、他のプロジェクトから参照されました。これは機能しますが、utils コレクションがどんどん大きくなっているため、(小さなプロジェクトの場合) utils がプロジェクト コードよりも大きいのはちょっと奇妙です。また、Jar で出荷するには、それらをすべて手動で選択する (またはすべて含める) 必要があります。より良い方法はありますか?
また、Java ではすべての関数がクラスに含まれている必要があるため、ファイル名からテキスト ファイルを読み取る関数など、大量の静的関数 (OOP に適合しない関数) があります。このような:
そのため、すべての関数を含める必要がある場合は、使用されていません。
これを行うより良い方法はありますか?
とにかく特別なテクニックがある場合はLinuxでEclipseを使用しますが、他のツールのテクニックがある場合は自由に共有してください.
java - Mavenプロジェクトに複数の親を含めることはできますか?
JavaプロジェクトとFlexプロジェクトがあります。現在、両方のプロジェクトに使用する構成を含む1つのベースpomがあります。これに関する問題は次のとおりです。Flexプロジェクトはjavadoc
、pmd
プラグインなどの構成を継承しますが、これは望ましくありません。
私はそれをきれいにして、本当のベースpomを持っていて、それからajava-base-pom
とaを持ちたいですflex-base-pom
。しかし、これはFlex部分とJava部分の両方を持つマルチモジュールでどのように機能しますか?
次の構造を使用する独自のアプリケーションへのプラグインがあります。
- my-plugin
- my-plugin-client(flex)
- my-plugin-server(java)
my-plugin
pom.xml
with<modules/>
セクションが含まれているだけです。両方の親としてpom.xmlを使用しますmy-plugin
が、javabase-pomまたはflexbase-pomを親として使用することもできません。これに対する最善のアプローチは何でしょうか?