問題タブ [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.
python - Pythonアプリケーションに最適なプロジェクト構造は何ですか?
Pythonで重要なエンドユーザーデスクトップ(Webではない)アプリケーションを開発したいとします。プロジェクトのフォルダ階層を構造化するための最良の方法は何ですか?
望ましい機能は、メンテナンスのしやすさ、IDEの使いやすさ、ソース管理の分岐/マージへの適合性、およびインストールパッケージの簡単な生成です。
特に:
- ソースはどこに置きますか?
- アプリケーション起動スクリプトはどこに置きますか?
- IDEプロジェクトの要点はどこにありますか?
- ユニット/受け入れテストはどこに置きますか?
- 設定ファイルなどのPython以外のデータはどこに置きますか?
- pyd / soバイナリ拡張モジュール用のC++などのPython以外のソースをどこに配置しますか?
python - PyGTK デスクトップ アプリケーションのモジュールを首尾一貫して整理するにはどうすればよいですか?
私は PyGTK でデスクトップ アプリケーションに取り組んでおり、ファイル編成のいくつかの制限にぶつかっているようです。これまでのところ、プロジェクトを次のように構成しました。
- application.py - プライマリ アプリケーション クラス (ほとんどの機能ルーチン) を保持します。
- gui.py - 疎結合の GTK gui 実装を保持します。シグナルのコールバックなどを処理します。
- command.py - アプリケーション クラスのデータに依存しないコマンド ライン自動化機能を保持します。
- state.py - 状態データの永続性クラスを保持します
これはこれまでのところかなりうまく機能していますが、この時点で application.py がかなり長くなり始めています。私は他の多くの PyGTK アプリケーションを見てきましたが、同様の構造上の問題があるようです。ある時点で、プライマリ モジュールが非常に長くなり始め、明確さとオブジェクト指向を犠牲にすることなく、コードをより狭いモジュールに分割する明確な方法はありません。
GUI を主要なモジュールにし、ツールバー ルーチン、メニュー ルーチンなどに個別のモジュールを用意することを検討しましたが、その時点で、OOP の利点のほとんどを失い、すべてを参照するすべてのシナリオになってしまうと思います。 .
非常に長い中央モジュールを持つことに対処する必要がありますか、それともクラス ブラウザーにあまり依存する必要がないようにプロジェクトを構造化するためのより良い方法はありますか?
編集私
わかりましたので、すべての MVC に関するポイントを取り上げました。私のコードには MVC の大まかな概算がありますが、モデルとコントローラーをさらに分離することで、ある程度の距離を稼ぐことができることは確かです。しかし、私は python-gtkmvc のドキュメントを読んでいます (ちなみに、これは素晴らしい発見です。参照していただきありがとうございます)。私のアプリケーションは 1 つのグレード ファイルで、通常は 1 つのウィンドウです。したがって、モジュールの MVC ロールをどれだけ厳密に定義しても、1 つのコントローラー モジュールでほとんどすべてを実行することになります。確かに、私は適切な MVC の実装について少し曖昧であり、調査を続けますが、そうではありません。
ウィンドウの個別のセクション (ツールバー、メニューなど) に対して個別のコントローラー/ビューのペアを検討する必要がありますか? おそらくそれが私がここで見逃していることです。これは、S. Lott が 2 番目の箇条書きで言及していることのようです。
これまでの回答に感謝します。
filesystems - アップロードしたファイルをファイルシステムにどのように保存しますか?
ユーザーがアップロードしたファイルをファイルシステムに保存するための最良の方法を見つけようとしています。ファイルの範囲は、個人ファイルからwikiファイルまでです。もちろん、DBは私がまだ理解していない何らかの方法でそれらのファイルを指し示します。
基本要件:
- 人々がファイル名を推測できないようにかなりまともなセキュリティ(Picture001.jpg、Picture002.jpg、Music001.mp3は大したことではありません)
- 簡単にバックアップとミラーリングが可能(バックアップするたびにHDD全体をコピーする必要がない方法が好きです。最新のアイテムだけをバックアップするというアイデアは好きですが、ここでのオプションには柔軟性があります。 )。
- 必要に応じて、複数のサーバー上の数百万のファイルに拡張可能。
c++ - 別のヘッダー ファイルのクラスからどのように継承しますか?
依存関係の問題があります。と の 2 つのクラスがGraphic
ありImage
ます。それぞれに独自の .cpp および .h ファイルがあります。私はそれらを次のように宣言しています:
Graphic.h
:
Image.h
:
コンパイルしようとすると、次のエラーが発生します。
Graphic
fromの前方宣言を削除するとImage.h
、次のエラーが発生します。
svn - これは、複数のプロジェクトやベンダーでSVNリポジトリを作成するための正しいステップバイステップおよび組織ですか?
私はRedBeanSoftware SVN Bookをかなり読んだことがあり、SOに関するいくつかの質問も読んだことがありますが、これを最初にステップバイステップで正しい方法で実行していることを確認したいと思います。使い始めました。これは正しいです?
- SVNをインストールします。
/ usr / local/svnにSVNリポジトリを作成します。ディレクトリ構造は次のようになります。
/li>リポジトリ編成(プロジェクトとベンダーを含む)のコマンドラインからフォルダーを作成します。
/li>ベンダーコードを正しいプロジェクト名でベンダーフォルダにチェックアウトします。
- ベンダーコードを正しいプロジェクト名でトランクにエクスポートします(プロジェクトトランクファイルがまだないため、マージは必要ありません)。
- /svnroot/conf/passwdおよび/svnroot/conf/svnserve.confにusers/permissionsを作成します。
- svnserveが実行されていることを確認し、ローカルSVNクライアント(TortoiseSVN)で、必要なプロジェクトのトランクをチェックアウトします。
これをパブリックURLで提供する必要がないため、Apache用に構成していません。サーバーは私たちのネットワークにはありませんが、私たちが借りている専用のCentOSボックスです。考えやアドバイスをありがとう。
編集:
そもそもコードやプロジェクトがないので混乱していると思いますので、ベンダーのコードから始めています。ベンダー、トランク、ブランチ、タグのサブフォルダーを含むproject_nameを含むディレクトリ構造をサーバー上のどこかに作成し、それをリポジトリにインポートしてから、ベンダーからベンダーフォルダーにコードをインポートする必要がありますか?ベンダーから更新を取得し、それらの更新をトランクに加えた変更とマージできるという考え方です。
open-source - 組織でのオープン ソース ソフトウェアの採用
組織にオープン ソース ソフトウェアを採用することの長所と短所は何ですか? これを行った人はいますか? 彼らが採用したソフトウェアのいくつかの例と、それがどのように使用されているかについて、どれくらいうまく機能していますか?
通常、貢献は人々が趣味として行うためにもたらされます。私見ですが、プロプライエタリなソフトウェアの場合、組織 (お金) にはインセンティブがあり、ソフトウェアが利益を上げている限り、開発を続けるために人を雇い続けます。私が間違っている場合は修正してください。オープン ソース ソフトウェアを使用するという提案に反対する可能性のあるマネージャーから期待される議論は何ですか?
c++ - C++クラスヘッダーファイルの編成
複数のソースファイルとヘッダーファイルにまたがる多数の相互依存クラスを処理する必要がある人々に提案するC++コーディングとファイル編成のガイドラインは何ですか?
私のプロジェクトではこのような状況にあり、いくつかのヘッダーファイルにまたがるクラス定義関連のエラーを解決することは非常に頭痛の種になっています。
organization - 混乱後の軌道修正
過去数週間、トレーニング クラスの受講に加えて、古いプロジェクトのメンテナンス タスクによってかなり中断されたようです。現在のプロジェクトで前進する勢いをすべて失ったように感じます。中断する前に自分が何をしていて、何を考えていたのかわからないため、コーディングを開始することさえ困難です。
現在のプロジェクトから数時間または数日離れて中断した後、簡単に再開できるようにするためのヒントやテクニックは何ですか?
file - ファイルをどのように管理および整理していますか? (スクリプト、リポジトリ、ダウンロード、pdf など)
多くの人と同じように、ソース コード、バイナリ ダウンロード、スプレッドシート、pdf、ワード ドキュメント、画像、メモ ファイル、クイック スクリプトなど、大量のファイルを処理する必要があります。
これらのファイルは、多くのカテゴリに分類できます。
- 最終的に削除する必要のある一時ファイル
- アーカイブする必要がある重要または有用な参照ファイル
- 特定の雇用主の特定のプロジェクトに関連付けられたファイル
- 休日のスケジュール、医療計画、旅行申請書などの一般的な雇用主の書類
- 特定の雇用主に結び付けられていない専門文書
- サイドプロジェクト
- 個人文書(税金、重要な領収書、メモなど)
特にコマンドライン経由で頻繁にアクセスするファイルについては、巨大なフォルダー階層を避けたい
アーカイブされたファイルの場合、インデックス付きのタグベースの分類システムは、フォルダー アプローチよりも適しているようです。
ファイルを効果的に管理するための推奨ツールまたはシステムはありますか? ダウンロード フォルダを一種の「受信トレイ」に変えて、GTD アプローチを採用することを検討しています。また、Hazel のようなプログラムも役立つかもしれません。
私は Mac ソフトウェアに焦点を当てていますが、すべてのアプローチを聞くことに興味があります。
ファイルの管理にどのようなフォルダ構造、システム、およびツールを使用していますか?
linux - Linux でのドキュメント管理
整理されていないドキュメントの海を何年もナビゲートした後、物事を整理し、ワークフローをより適切に実施するために、仕事のドキュメントを構造的に分類するための安価で無料の方法を探し始めています..プロジェクト、顧客、使用するコンポーネントなどに従ってドキュメントにタグを付けます。
たとえば、次のドキュメントを想像してください。
- 「ビジネス要件」、タグ: projectX
- 「プロジェクト レイアウト」、タグ: projectX、appserverZ
- 「クラス図」、タグ: projectX、ビジネスロジック
- 「見積もり」、タグ: projectX、customerY
...など..
このようにして、ドキュメントをタグでフィルタリングできます。たとえば、特定のプロジェクトのすべてのドキュメント、特定の顧客のすべての見積もり、または特定のアプリケーション サーバーを使用するすべてのプロジェクトを取得できます。M-files の
ようなものは完璧ですが、Linux ベースのソリューションを好む.. :) (可能であれば Web ベースでなくても)
Freshmeat と Wikipedia で見つけた DMSes を試すのに一日中費やしましたが、私はM-ファイルのように機能するものを見つけることができませんでした.. :/
ヒント/ポインタをいただければ幸いです。