代码可读性和UI设计平衡

时间:2010-11-14 23:28:14

标签: objective-c cocoa

我在改进我的代码运行方式(以及它的“美丽”)方面做了很多工作,但是什么时候停止修复,并开始使用UI?

微软(在我看来)似乎采用了漂亮的代码,而Apple则采用了不错的用户界面(尽管Apple的开发人员示例确实有非常好的代码)。

我不善于平衡,什么时候在一个或另一个上工作?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

如果用户不喜欢该程序,则代码的质量无关紧要。一旦用户喜欢该程序,代码质量就变得更加重要。而“喜欢”是指一个良好的用户体验,程序不会崩溃,满足用户的需求并遵守最低惊喜原则。

注意我说“更重要”因为代码不是用户看到或感兴趣的东西。代码质量和“美”对开发人员很重要,因为这是他们对程序的看法以及他们交给其他开发人员的东西。

我记得前段时间读过一些比较(一般来说)为Windows平台开发的软件和为OS X开发的软件。一般而言,它说Windows程序往往是由不花太多钱的开发人员开发的。在UI上的时间或考虑用户体验。他们专注于获得他们可以想到的每一项功能,而不需要考虑它是否有意义。另一方面,Mac OS X倾向于由人们首先关注用户体验并解决他们的问题而开发。因此它不一定具有那么多的功能,但它所具有的功能与用户需要的东西直接相关并且易于使用。

那么什么时候停下来思考用户界面?您提出这个问题的事实让我觉得现在是时候停下来了。如果有什么我建议甚至在编写任何代码之前你应该已经绘制出一个基本的用户界面并找出你的程序将提供什么样的用户体验如果你不能解决这个问题,你不想浪费时间写作代码,因为你永远不会使用它。

这不是说我认为代码“美”是无关紧要的。我花时间确保我的代码写得很好,易于理解并且看起来很“好”。但那是在我弄清楚用户界面之后,因为我在清理其他人的代码方面有很多经验: - )

答案 2 :(得分:1)

这是一个非常广泛的问题,答案完全取决于你正在建设什么,为什么以及为谁做。

我同意的一些传统智慧的随机内容:

  • 如果您正在构建广泛适用的消费者软件(例如,适用于Mac或iOS),则UI是应用程序的关键组件。花很多时间在上面。 :)与设计师合作。如果您的软件看起来像废话,没有人会想要使用它。 (假设没有人会这样做:见下一点。)
  • 如果您正在构建内部或企业工具,UI润色可能不那么重要。
  • 即使您是单人(或女性)操作,也要将工程视为与“产品管理”截然不同。产品管理是决定软件应该做什么以及它应该如何工作(和外观)的思维过程。工程创造了现实,但有不同的权衡。这些有时是冲突的,如果你是一个人,这很难处理,但试着戴不同的帽子。
  • 在所有情况下,您的代码都应该有效,以便对工作进行合理的定义。
  • 如果因为它被黑客攻击而丑陋,那么你可能会比有条不紊地构建它更快地遇到准确性/正确性问题。它也将更难维护。这里的权衡几乎永远不值得。随着经验的积累,你可以从一开始就自然地编写干净的代码,即使它是“划痕”代码。从长远来看,你可以节省时间,而不是为了改善它的美丽而进行大规模的尝试。
  • 如果您是团队成员,或与他人合作,清洁代码就更为重要。了解是否存在任何“本地”编码约定,并与同事密切合作。
  • 就改进“代码如何运行”而言,如果你的意思是性能优化,在你确定需要之前不要做任何事情。首先编写更简单的代码,即使它更慢。重要的是它不会慢到很慢。
  • 特殊情况:如果您正在编写游戏,那么长期可维护性就不那么重要了,因为它们往往在某种程度上是“一次性”。 YMMV。