我是一名计算机科学专业的学生,正在设计一个项目,我开始想知道什么是优秀的例子或软件,甚至是硬件功能丰富,具有良好可用功能的硬件以及对于新用户过于恐吓用户。也有人可以推荐任何好的技巧/书籍来设计功能丰富但不“臃肿”的高质量应用程序吗?功能膨胀 - 多少太多?
回答
“让一切尽可能的简单,而不是更简单。” - “达到完美不在于无可添加,但时有没有什么可以拿走。”爱因斯坦
- 安东尼·德·圣艾修伯里
我并不想成为轻率,但这些报价真的是最好的建议。简单的设计应该是你的目标。不是简单实现简单!相反,这是相当困难的,但它是可能的。
尝试考虑事情有点不同。而不是
在这变得臃肿之前可以添加多少东西?
尝试
什么是最少的特征和要素,我可以包括同时仍然为我的用户提供卓越的体验?
下面是关于主题的演示文稿的一组很好的幻灯片: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与膨胀