2011-01-10 1 views
4

本 - 私はそれがEric S. Raymonds "Unixプログラミングの芸術"だと思います - 私はsthを読んでいます。複数の小さなツールを組み合わせてアプリケーションを構築する必要があります。複数の.exeでアプリケーションを作成することをお勧めしますか?

Windowsアプリケーションを開発することをお勧めします。例えば、すべてのタスクに小さな.exeを1つ作成するなどの方法がありますか?例えば

:あなたが文書管理システムを持っている:

これは以下のようにまとめることができます:文書を検索し、表示するための.EXE(GUI)

    • インデックスのための.exeファイルを文書(データベースに文書を置く)
    • .exeの文書
    • を削除するなど

    これは良いアイデアだと思いますか、それとも複数のDLLを持つ1つの大きな.exeに入れられるべきですか(これは、ほとんどのアプリケーションがビルドされた方法です)。

    賛否両論は何ですか?

  • +0

    あなたは完全にこの分離のポイントがありません。これはすべて自動化に関するもので、上位レベルのソリューションを構成する手段(スクリプト言語など)がない場合は、特にGUIについて言及すると、これらのプログラムを分離するのは無意味です。 – AraK

    答えて

    1

    私の意見では:

    はい、いいえ。異種の.exeを作成するかどうかを決定するには、いくつかの要素があります。物事の壮大な計画では、実行されているタスクが自分のファイルを保証するかどうかを判断する必要があります。大きな要素は、中央アプリケーションから独立した目的を果たすかどうかということです。これに続いて、アプリケーションが1つのパッケージにローカライズされているのか、それとも独立して利用できる一連のユーティリティであるのかを判断する必要があります。

    ユーザーの観点から見ると、複数のプログラムを一度に開くのが好きではありません。あなたの例に戻ると、ここで私はそれをやるでしょう。私はのためのメインプログラムとして1つの.exeファイルを持っているでしょう:

    * an .exe for searching and displaying documents (GUI) 
    * an .exe for deleting documents 
    * etc. 
    

    そして、あなたが記載されている第二の機能を実行し、バックグラウンドのインデクサとして機能し、別の.exeを持っています。

    本当に、インテリジェントなUI設計を複数の視点から念頭に置いて、ケースバイケースで評価する必要があります。

    編集:私たちはの粒度を考える際にも、あなたは

    2

    は長所と短所がたくさん確かにあります分離の代替手段がより適している状況(すなわち、タブ、ダイアログボックスなど)に自分自身を見つけることが

    従来のコマンドラインでは、テキストファイルの形式でデータを操作しました。各行はレコードであり、フィールドはカンマやタブやスペースで区切られています。それで、たくさんのユーティリティを開発することができました。私たちは、 "カット"、 "参加"、 "tr"、 "grep"、 "sed"、 "head"などで大いに楽しみました。個人的には、私のWindows環境では

    なぜこれはうまくいくのですか?基本的なファイル形式は、行と列です。我々は新しいユーティリティを追加することができますを知って統合されます。新しいユーティリティを追加したため、古いユーティリティを変更する必要はありません。GUIもなく、コマンドラインで作業する予定です。私たちは仕事のパイプラインを立ち上げ、仕事を終わらせるだけです。

    さらに複雑になるときはどうしますか? GUIを提供したいとき。シンプルなアプローチ:弾丸を1つのアプリケーションから解放するビット。新しい機能、新しいアプリのバージョン。それほど悪くはないかもしれませんが、UIのいくつかの面を変更したり、ファイル形式やAPIを変更したりする必要があります。単一の、一貫性のある、(多分)テストされた全体を解放する方がはるかに簡単です。

    しかし、UIの範囲が拡大するにつれて、すべてをリリースするのはかなり混乱しています。したがってEclipseで開発されたOSGiなどのコンポーネント・モデルが登場し、単一のUIを個別に開発され進化している多くの部品から組み立てることができます。

    関連する問題