問題タブ [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.

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

python - Python 開発用のフォルダーとファイルの構成

Python 開発環境で同じプロジェクトに属するコードを整理する最良の方法は何ですか? Python プロジェクトの編成ですべきこととすべきでないことは何ですか? ファイル内の各クラスを分離しますか?

助言がありますか?ああ、それと、各タイプの組織の (考えられる) 問題を説明してください。

Python コードを整理するためのベスト プラクティスと見なされるものは何ですか?

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

php - ajax アクション ファイルを整理するにはどうすればよいですか

私のphpプロジェクトをajaxActionsファイルで整理する最良の方法を知りたいです。

現時点では、次の./process/ajaxAction_pagename.phpようなアクションを含むいくつかのファイルがあります。

それを行うためのより良い(またはより標準的な)方法があるかどうか疑問に思っています。

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

javascript - OO js コードをファイルに整理する方法は? ローカル ネットワーク アプリケーション

現在、 B2B 環境のローカル ネットワーク上で実行されるアプリケーションを開発しています。したがって、ハードウェアは安く、プログラマーは高価なので、帯域幅を節約するという点でのマイクロ(ミニ?)最適化についてはほとんど忘れることができます。

プロジェクトには適切に構造化されたオブジェクト指向の js コードがあり、明らかに多くの js クラスがあります。すべてのクラスが別々のファイルに保存される場合、このコードをナビゲートして維持するのは非常に簡単です。

しかし、これにより、ブラウザーが数十のHTTP 要求を生成して、ページで必要なすべての js ファイル/クラスを取得するようになります。ローカル環境でも、最初のロード (キャッシュが空の場合) では超高速ではなく、後で変更してキャッシュを無効にする必要があります。

可能な解決策:

しかし、これに YUI コンプレッサーを選択した場合 (開発環境では縮小アクションなし、本番環境では縮小)、任意の js ファイルを変更するたびに、この大きな js ファイルをリロード/再コンパイルする必要があります。

この問題を解決するために何をお勧めしますか?

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

python - 共有パッケージを使用したPythonプロジェクトの整理

1つ(または複数)の大きなPythonライブラリを共有する多数の小さなスクリプトで構成されるプロジェクトを編成および開発するための最良の方法は何ですか?

リポジトリには、同じリポジトリに保存されている同じライブラリを使用するプログラムがたくさんあります。つまり、次のようなレイアウト

プログラムの公式実行が完了したら、使用されたコードのバージョンを記録します。C ++実行可能ファイルの場合、コンパイル時に作業コピーがクリーンである限り、すべてが正常であるため、処理は単純です。(そして、プログラムでバージョン番号を取得するので、エクスポートではなく、作業コピーである必要があります。)Pythonスクリプトの場合、状況はより複雑になります。

問題は、多くの場合、1つのプロジェクト(projAなど)が実行され、projBを更新する必要があることです。これにより、実行時に作業コピーのリビジョンがprojAに混在して表示される可能性があります。(コードの実行には数時間かかり、実行に数日かかるプロセスの入力として使用できるため、強力なトレーサビリティの目標があります。)

私の現在の回避策は、必要に応じて、トランクの別のコピーを別の場所にチェックアウトし、そこで実行することです。ただし、最初のツリーではなく、lib/pythonの2番目のバージョンを指すようにPYTHONPATHを変更することを忘れないでください。

完璧な答えはないでしょう。しかし、もっと良い方法があるはずです。

データユーザーがファイルをエクスポートできるようにするリビジョン番号を保存するためにsubversionキーワードを使用する必要がありますか?virtualenvを使用する必要がありますか?パッケージ化とインストールのメカニズムにもっと取り組むべきですか?Setuptoolsは標準ですが、私はそれについてさまざまなことを読んだことがあり、開発者以外のエンドユーザー向けに設計されているようです(私たちにはありません)。

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

python - Pythonソースコードをどのように整理する必要がありますか?

私はPythonを使い始めており(試してみる時期が来ています)、いくつかのベストプラクティスを探しています。

私の最初のプロジェクトは、複数のスレッドでコマンドライン実験を実行するキューです。非常に長いmain.pyファイルを取得し始めたので、それを分割したいと思います。一般的に、私は探しています:Pythonプログラマーはどのようにして複数のソースファイルを整理しますか?あなたのために働く特定の構造はありますか?

私の具体的な質問は次のとおりです。

  1. 各クラスは別々のファイルに入れる必要がありますか?
  2. ソースコードに関連する単体テストをどのように整理する必要がありますか?
  3. ドキュメントコメント、特にコマンドライン操作用のコメントはどこに置くべきですか?
  4. 複数のディレクトリを使用している場合、それらの間でクラスをインポートするにはどうすればよいですか?

ここでは試行錯誤で自分の結論を引き出すことができるかもしれませんが、何か良いものから始めたいと思います。

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

php - コントローラーを整理して最適な構造を得る方法 (MVC)

コントローラーを整理する最良の方法は何ですか。ユーザーコントローラーと登録アクションがあるとしましょう。データを検証して処理する process_registration アクションも必要です。または、登録アクション自体の中ですべての処理を行う必要があります。それを必要とするすべてのアクション(登録、process_registrationなど)に対して検証/処理アクションが必要ですか?

また、多くの人が情報の検証と処理のためだけにモジュールとコントローラーを持っていることにも気付きました (おそらく、すべての検証ロジックとルールを 1 か所に保持すると思いますか?)。

私の質問は、物事をどのくらい離す必要があるかということだと思います。この質問は、モデルとビューにも当てはまります。

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

ruby-on-rails - 複数ファイルの Ruby プログラムを整理するためのシステム?

複数ファイルのRubyプログラムを編成するための標準または従来のシステムはありますか? Ruby で最初の大規模な「プロジェクト」に着手しました。これは、複数のファイルとディレクトリに論理的に編成された検索プログラムです。潜在的な構造を以下に概説しました。

  • メインファイル. このファイルは、検索クラスと一般的な検索プロトコルを実装します。
  • アルゴリズム分析ファイル。このファイルは、検索結果を解釈する関数を実装します。
  • プロトコル ディレクトリ
    • 検索するプロトコルごとに 1 つのファイルが含まれます。
  • フィード ディレクトリ
    • プログラムの目的の一部は、アーカイブされたニュース フィードを検索することです。この機能のファイルは、このフォルダーに格納されます。

ただし、コードには現在、各プロトコルの検索クラスが継承するクラス (Searcher と呼びましょう) があります (GoogleSearcher < Searcher)。これを管理するには、これらのプロトコル ファイルにメイン ファイルを含める必要があります (そうですか?)。私の理想的な構造では、これは不可能に思えます。

私の具体的な例は別として、「ファイルを減らすのではなく増やす」、「ファイルの論理的な構造化は不要」などの規則があるかどうか疑問に思っていました。「ヘルパー」関数のファイルを用意するのは一般的ですか (Rails など)?どのレベルの抽象化が適切と考えられますか?

最後に、いつかこれをライブラリとして Rails に統合する予定です (プラグインではなく、スタンドアロンでも動作するようにしたい)。これが組織に影響を与えるかどうかはわかりません。

これはかなり自由回答の質問であることは承知していますが、それは、関連性の低いアドバイスをいただければ幸いです。前もって感謝します。

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

c++ - C++ プロジェクトでコードを整理する方法

現在、コードをより良い方法で整理しようとしています。

そのために名前空間を使用し、コンポーネントごとにクラスをグループ化し、それぞれが定義済みの役割といくつかのインターフェイス (実際には抽象クラス) を持っています。

特にコンポーネント全体を書き直す必要があり、他のコンポーネントにほとんど影響を与えずに書き直さなければならなかった場合は特にそうでした。(クラスとメソッドが混在していると、もっと大変だったと思います)

それでも、100% 満足しているわけではありません。特に、インターフェイス、コンポーネントの公開面、およびその背後にある実装をより適切に分離したいと考えています。コンポーネント自体の「インターフェース」はもっと明確であるべきだと思います。つまり、新参者は、どのインターフェースを実装する必要があるのか​​、どのインターフェースを使用できるのか、何が実装の一部なのかを簡単に理解できるはずです。

すぐに、最大 5 人の開発者が関与するより大きなプロジェクトを開始する予定です。

それで、あなたはどうですか?どのようにしますか?コードをどのように整理しますか?

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

python - テストされたモジュールが姉妹フォルダーにある場合、それらをインポートするためにPythonユニットテストを作成するにはどうすればよいですか?

私はまだimport声明に頭を悩ませています。同じレベルに2つのフォルダがある場合:

  1. src
  2. テスト

でモジュールをインポートするpyファイルを作成するにはどうすればよいですか?より良い解決策はありますか(フォルダを別のフォルダの中に置くなど)testsrc