我是一名計算機科學專業的學生,正在設計一個項目,我開始想知道什麼是優秀的例子或軟件,甚至是硬件功能豐富,具有良好可用功能的硬件以及對於新用戶過於恐嚇用戶。也有人可以推薦任何好的技巧/書籍來設計功能豐富但不「臃腫」的高質量應用程序嗎?功能膨脹 - 多少太多?
回答
「讓一切儘可能的簡單,而不是更簡單。」 - 「達到完美不在於無可添加,但時有沒有什麼可以拿走。」愛因斯坦
- 安東尼·德·聖艾修伯裏
我並不想成爲輕率,但這些報價真的是最好的建議。簡單的設計應該是你的目標。不是簡單實現簡單!相反,這是相當困難的,但它是可能的。
嘗試考慮事情有點不同。而不是
在這變得臃腫之前可以添加多少東西?
嘗試
什麼是最少的特徵和要素,我可以包括同時仍然爲我的用戶提供卓越的體驗?
下面是關於主題的演示文稿的一組很好的幻燈片:Rescue Princess 2.0。
業務的第一順序應該只保持易用的應用程序。除此之外,我只能說,小心爲虛構用戶編寫功能:在開始編碼之前確保有人真的需要它。
1:什麼做你的用戶需要,並希望和
2:哪些功能會讓你有時間來實施?
你的問題是相當一般的。哪些特徵構成膨脹?這種情況取決於您是否正在編寫防病毒掃描程序,操作系統或文字處理程序。
之間不存在明顯的障礙「好」和「太多」。 但是,這取決於你想要做什麼。
如果你正在開發一個SDK,我推薦幾個小圖書館分裂你的實現(而不僅僅是一個大的SDL庫,還有就是SDL核心,SDL_Mixer
,SDL_Image
等)
如果」重新開發一個應用程序,保持一個基於模塊的系統和一個插件機制。這樣,可以更輕鬆地添加新功能,並且可以更容易地檢測到膨脹。
你可能會得到一個點要在其中添加新的功能有些會考慮「偉大」和其他「膨脹」。否則,你的應用程序可能會達到某些人稱之爲「功能差」的程度,而其他人會稱之爲「恰到好處」。
這不是一個確切的報價,但當時的想法是這樣的:
一個軟件是不完美時,有沒有更多的補充,但是當有什麼更多的去除。
從本質上講,更簡單和更切合實際的是軟件越好越好。
爲了獲得優秀的軟件設計實例,看看今天是受歡迎的節目。谷歌應用程序將是一個很好的看看。 Skype也許。嘿,甚至StackOverflow。 :)
如果你想恐嚇,去CAD的世界。請查看例如Blender。這是一款免費的3D設計軟件。我聽說過很好的工具,但用戶界面有很多按鈕/面板/菜單/等等。它會讓寶寶兔子哭泣。不幸的是,我不能說這是否會是一個糟糕的用戶界面的好例子。 3D設計是一個複雜的過程,所有這些工具可能都在正確的位置。但它絕對是令人恐懼的。 :)
一個糟糕的UI設計,能夠經常與自帶propieritary硬件propieritary軟件被發現。不幸的是,我無法給你任何例子,從我的頭頂。
直接回答你的問題:幾乎所有的微軟產品。我在這裏顯示了我的偏見,但微軟保留其代碼庫的強烈傾向,並在功能之上添加功能,直到應用程序的原始功能幾乎在增殖泥濘的下方丟失。
以MS Word爲例,雖然你仍然可以打開它並開始打字,但如果你想要將文檔的一部分重新編號,而讓其他人獨立,上帝則禁止打字。如果要生成包含對附錄的引用的目錄,天堂禁止。這種東西對於文字處理器來說是一種冒險的東西,而Word支持它,它只是以一種不用手動,幾杯咖啡和繃帶就能完成的方式來支持它,以阻止流血衝擊頭在桌子上。
微軟並不是唯一這樣做;這件事情總是發生在各種各樣的產品上;但他們是我發現的最糟糕的罪犯之一。
我總是傾向於設計我的項目的方式,他們只是骨架,其儘可能擴展。限制因素是性能,複雜性或第三方限制。
通過這種方式,您可以在完成基本結構後添加其他功能。用戶還可以添加他需要的功能。
這可能不工作的,應具有沒有太多配置的良好的可用性GUI的應用程序非常好,但我堅持好這一方法對於那些我開發庫。 (他們使用誰喜歡有一個高度modifable的軟件等編碼器)
這不是很難開發一個應用程序/ lib下是臃腫的特點。但它是開發一個應用程序,可以由其他開發人員/用戶輕鬆擴展以適應他們自己的需求。
開發一個廣泛的插件系統,以便隨時添加和取出內容。問題解決了。如果只是這樣寫意大利麪代碼一樣簡單。 ;)
- 1. 是否可能膨脹更多佈局?
- 2. 的WebView膨脹太慢
- 3. 多少是太多?
- 4. 在CRM的WebAPI膨脹多級
- 5. 在水平LinearLayout上膨脹多個TextViews
- 6. 多少javascript太多
- 7. 不能膨脹的片段InflateException錯誤膨脹的類
- 8. 膨脹異常 - 錯誤膨脹textview
- 9. 限制太多了多少?
- 10. Codefluent tablediff.sql膨脹
- 11. 功能太多的參數
- 12. 減少std :: bind模板代碼膨脹?
- 13. 軟件膨脹 - 在Java和性能
- 14. 表達膨脹
- 15. 有多少個EJB太多?
- 16. 有多少任務太多?
- 17. Webservices:多少數據太多?
- 18. 有多少NSTimers太多?
- 19. JSON有多少JSON太多?
- 20. 多少Javascript太多了?
- 21. (Java)重載:多少太多?
- 22. 多少CSS太多CSS?
- 23. 有多少層太多?
- 24. cpu佔用多少太多
- 25. 多少表開銷太多?
- 26. 有多少查詢太多?
- 27. STL有多少太多?
- 28. 多少時間太多?
- 29. AlarmManager膨脹佈局
- 30. WPF與膨脹