2011-01-10 61 views
4

在一本書中 - 我認爲它是Eric S. Raymonds「unix編程的藝術」 - 我讀了一些東西。例如應該通過將多個小工具放在一起來構建應用程序。通過多個.exe編寫應用程序是否是一種好的做法?

因此,我想知道是否開發Windows應用程序是一個好主意,例如,通過爲每個任務創建一個小的.exe文件?

例如:您有一個文檔管理系統:

這可以放在一起,如:

  • 用於搜索和顯示文檔(GUI)
  • 索引一個.exe的.exe文檔(文檔放置到一個數據庫)
  • 一個.exe的文件刪除

您是否認爲這將是一個好主意,或者應該將它放入一個帶有多個DLL的大型.exe(這將是我看到大多數應用程序構建的方式)?

什麼是利弊?

+0

你完全錯過了這種分離的觀點。這完全是關於自動化,如果你沒有手段(例如腳本語言)來編寫更高級別的解決方案,那麼分離這些程序是毫無意義的,尤其是在談論GUI時。 – AraK 2011-01-10 13:14:20

回答

1

在我看來:

是的,沒有。決定是否應該製作完全不同的.exe的幾個因素。在事物的宏偉計劃中,您必須決定正在執行的任務是否保證自己的文件。決定這一點的一個重要因素是它是否從中央應用程序提供獨立的用途。在此之後,您還必須決定您的應用程序是本地化爲一個包還是更多可以獨立使用的一系列實用程序。

從用戶角度來看,人們不喜歡一次打開多個程序。回到你的榜樣,我將如何做到這一點。我將有一個.exe文件作爲主要程序:

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

,然後有一個單獨的.exe充當背景索引,執行你列出的第二個功能。

真的,它應該根據具體情況進行評估,從多個角度記住智能UI設計。

編輯:此外,你可能會發現自己在分離的替代手段更適合的情況下(即標籤,對話框等)

2

網上確實有大量的優點和缺點,當我們考慮的粒度組件,服務,可部署單元等。

在傳統的命令行unix世界中,我們以文本文件的形式操作數據,每行都是記錄,並且可能帶有由逗號,製表符或空格分隔的字段。然後可以開發許多小小的utiliies,我們對「剪切」,「加入」,「tr」,「grep」,「sed」,「頭部」等有很大的樂趣。就我個人而言,我仍然確保我有這些工具在我的Windows環境中。

爲什麼這項工作如此順利?基本的文件格式agreemnt:行和列。我們可以添加新的公用事業和知道他們將整合。從來沒有需要改變舊的工具,因爲我們添加了一個新的工具。也沒有GUI,我們期望在命令行上工作。我們只是啓動任務的管道來完成工作。

現在當事情變得更加複雜時,你會怎麼做?當你想提供圖形用戶界面。簡單的方法:子彈發佈一個單一的應用程序。新功能,新應用版本。這可能並沒有那麼糟糕,你改變了UI的某個方面,需要改變一些文件格式或API,所以其他部分也會改變。發佈一個單一的,一致的(甚至可能)測試整體更容易。

但隨着用戶界面的增加,發佈所有內容都具有相當的破壞性。因此,Eclipse等組件模型(例如OSGi)的出現使得單個UI可以由許多獨立開發和發展的組件組裝而成。

相關問題