2009-04-28 56 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

开发一个广泛的插件系统,以便随时添加和取出内容。问题解决了。如果只是这样写意大利面代码一样简单。 ;)