功能臃肿 - 多少钱太多了?

时间:2009-04-28 20:41:35

标签: software-quality

我是一名设计项目的计算机科学专业的学生,​​我开始想知道什么是好的例子或软件,甚至是硬件,它们在为功能丰富且具有良好可用功能的常规用户与过于恐惧之间起到了作用。新用户。也有人可以推荐任何好的技巧/书籍来设计功能丰富但不“臃肿”的优质应用程序吗?

8 个答案:

答案 0 :(得分:8)

  

“让一切变得尽可能简单,但并不简单。” - 阿尔伯特爱因斯坦

     

“当没有任何东西可以添加,但没有任何东西可以带走时,达不到完美。” - Antoine de Saint-Exupéry


我并不想轻浮,但这些引用确实是最好的建议。设计的简单性应该是您的目标。并不是说简单易行!相反,这很困难,但有可能。

尝试稍微改变一些事情。而不是

  

在此变得臃肿之前,我可以添加多少东西?

尝试

  

在为用户提供卓越体验的同时,我可以包含的功能和元素数量最少?

答案 1 :(得分:1)

以下是关于该主题的演示文稿的一组很好的幻灯片:Rescue Princess 2.0

第一项业务应该是保持应用程序易于使用。除此之外,我可以说,谨防为想象中的用户编写功能:在开始编码之前确保有人确实需要它。

答案 2 :(得分:1)

作为您问题的直接答案:几乎所有Microsoft产品。我在这里表现出偏见,但是微软有强烈倾向于保留他们的代码库,并在功能之上添加功能,直到应用程序的原始功能几乎在大量累积的混乱中丢失。

例如,看看MS Word;虽然你仍然可以打开它然后开始打字,但是如果你想重新编写文档的一部分而不留下其他部分,那么上帝是禁止的。如果您想要生成包含对附录的引用的目录,则天堂禁止。这种东西对于Word处理器来说是一种特殊的东西,并且Word支持它,它只是支持它,如果没有手册,几杯咖啡和绷带来阻止你的流血,你就无法完成它。放在桌子上。

微软并不是唯一一个这样做的人;这种东西往往会随着各种产品而发生;但我发现他们是最严重的罪犯之一。

答案 3 :(得分:0)

1:您的用户需要什么,想要什么,以及

2:您有时间实施哪些功能?

你的问题很普遍。哪些功能构成膨胀?这取决于您是在编写防病毒扫描程序,操作系统还是文字处理程序。

答案 4 :(得分:0)

“好”和“太多”之间没有明显的障碍。 但是,这取决于你想做什么。

如果您正在开发SDK,我建议您将实现分成几个小型库(而不仅仅是一个大型SDL库,还有SDL核心,SDL_MixerSDL_Image等。)

如果您正在开发应用程序,请保留基于模块的系统和插件机制。 这样,可以更轻松地添加新功能,并且可以更轻松地检测膨胀。

您可能会在某些地方添加一些有些人会认为“很棒”而其他人会“膨胀”的新功能。否则,您的应用程序可能会达到一定程度,有些人会将其称为“功能不足”,而其他人则称之为“足够”。

答案 5 :(得分:0)

这不是一个确切的引用,但这个想法是这样的:

  

一个软件是完美的,当没有更多的东西可以添加,但没有更多的东西要删除。

从本质上讲,更简单,更重要的是软件越好。

要获得良好软件设计的示例,请查看当今流行的程序。谷歌应用程序将是一个不错的地方。 Skype也许吧。嘿,甚至是StackOverflow。 :)

如果您想要恐吓,请转到CAD世界。请查看示例Blender。这是一款免费的3D设计软件。我告诉好的工具,但UI有很多按钮/面板/菜单/等。它让宝宝兔子哭了。不幸的是,我不能说这是否是一个“坏”UI的好例子。 3D设计是一个非常复杂的过程,所有这些工具都可能在正确的位置。但它肯定是令人生畏的。 :)

通常可以使用随机硬件附带的propieritary软件找到糟糕的UI设计。不幸的是,我无法从头脑中给你任何例子。

答案 6 :(得分:0)

我总是倾向于设计我的项目,使得它们只是尽可能可扩展的骨架。限制因素包括性能,复杂性或第三方限制 这样,您可以在完成基本结构后添加其他功能。用户还可以添加他所需的功能。

这对于GUI应用程序来说可能效果不是很好,这些应用程序在没有太多配置的情况下应该具有良好的可用性,但是对于我开发的那些库,我很喜欢这种方法。 (他们被其他喜欢拥有高度可修改软件的程序员使用)

开发一个功能臃肿的应用程序/库并不是很难。但它是开发一个应用程序,可以很容易地被其他开发人员/用户扩展,以满足他们自己的需求。

答案 7 :(得分:0)

开发广泛的插件系统,以便随时添加和删除内容。问题解决了。如果只是像写意大利面条代码那么容易。 ;)