2009-04-28 106 views
2

我是一名計算機科學專業的學生,​​正在設計一個項目,我開始想知道什麼是優秀的例子或軟件,甚至是硬件功能豐富,具有良好可用功能的硬件以及對於新用戶過於恐嚇用戶。也有人可以推薦任何好的技巧/書籍來設計功能豐富但不「臃腫」的高質量應用程序嗎?功能膨脹 - 多少太多?

回答

8

「讓一切儘可能的簡單,而不是更簡單。」 - 「達到完美不在於無可添加,但時有沒有什麼可以拿走。」愛因斯坦

- 安東尼·德·聖艾修伯裏


我並不想成爲輕率,但這些報價真的是最好的建議。簡單的設計應該是你的目標。不是簡單實現簡單!相反,這是相當困難的,但它是可能的。

嘗試考慮事情有點不同。而不是

在這變得臃腫之前可以添加多少東西?

嘗試

什麼是最少的特徵和要素,我可以包括同時仍然爲我的用戶提供卓越的體驗?

1

下面是關於主題的演示文稿的一組很好的幻燈片:Rescue Princess 2.0

業務的第一順序應該只保持易用的應用程序。除此之外,我只能說,小心爲虛構用戶編寫功能:在開始編碼之前確保有人真的需要它。

0

1:什麼做你的用戶需要,並希望和

2:哪些功能會讓你有時間來實施?

你的問題是相當一般的。哪些特徵構成膨脹?這種情況取決於您是否正在編寫防病毒掃描程序,操作系統或文字處理程序。

0

之間不存在明顯的障礙「好」和「太多」。 但是,這取決於你想要做什麼。

如果你正在開發一個SDK,我推薦幾個小圖書館分裂你的實現(而不僅僅是一個大的SDL庫,還有就是SDL核心,SDL_MixerSDL_Image等)

如果」重新開發一個應用程序,保持一個基於模塊的系統和一個插件機制。這樣,可以更輕鬆地添加新功能,並且可以更容易地檢測到膨脹。

你可能會得到一個點要在其中添加新的功能有些會考慮「偉大」和其他「膨脹」。否則,你的應用程序可能會達到某些人稱之爲「功能差」的程度,而其他人會稱之爲「恰到好處」。

0

這不是一個確切的報價,但當時的想法是這樣的:

一個軟件是不完美時,有沒有更多的補充,但是當有什麼更多的去除。

從本質上講,更簡單和更切合實際的是軟件越好越好。

爲了獲得優秀的軟件設計實例,看看今天是受歡迎的節目。谷歌應用程序將是一個很好的看看。 Skype也許。嘿,甚至StackOverflow。 :)

如果你想恐嚇,去CAD的世界。請查看例如Blender。這是一款免費的3D設計軟件。我聽說過很好的工具,但用戶界面有很多按鈕/面板/菜單/等等。它會讓寶寶兔子哭泣。不幸的是,我不能說這是否會是一個糟糕的用戶界面的好例子。 3D設計是一個複雜的過程,所有這些工具可能都在正確的位置。但它絕對是令人恐懼的。 :)

一個糟糕的UI設計,能夠經常與自帶propieritary硬件propieritary軟件被發現。不幸的是,我無法給你任何例子,從我的頭頂。

1

直接回答你的問題:幾乎所有的微軟產品。我在這裏顯示了我的偏見,但微軟保留其代碼庫的強烈傾向,並在功能之上添加功能,直到應用程序的原始功能幾乎在增殖泥濘的下方丟失。

以MS Word爲例,雖然你仍然可以打開它並開始打字,但如果你想要將文檔的一部分重新編號,而讓其他人獨立,上帝則禁止打字。如果要生成包含對附錄的引用的目錄,天堂禁止。這種東西對於文字處理器來說是一種冒險的東西,而Word支持它,它只是以一種不用手動,幾杯咖啡和繃帶就能完成的方式來支持它,以阻止流血衝擊頭在桌子上。

微軟並不是唯一這樣做;這件事情總是發生在各種各樣的產品上;但他們是我發現的最糟糕的罪犯之一。

0

我總是傾向於設計我的項目的方式,他們只是骨架,其儘可能擴展。限制因素是性能,複雜性或第三方限制。
通過這種方式,您可以在完成基本結構後添加其他功能。用戶還可以添加他需要的功能。

這可能不工作的,應具有沒有太多配置的良好的可用性GUI的應用程序非常好,但我堅持好這一方法對於那些我開發庫。 (他們使用誰喜歡有一個高度modifable的軟件等編碼器)

這不是很難開發一個應用程序/ lib下是臃腫的特點。但它是開發一個應用程序,可以由其他開發人員/用戶輕鬆擴展以適應他們自己的需求。

0

開發一個廣泛的插件系統,以便隨時添加和取出內容。問題解決了。如果只是這樣寫意大利麪代碼一樣簡單。 ;)