我注意到一种模式,当我做C ++和后端编程(用C#或任何语言)时,我所有的课都干净整洁。最近我注意到我的所有代码都在一个类中,我确实有> 50个函数。我现在意识到它,因为我在做UI。如果我要通过页面或表单/对话框将它们分开,我会有更多的文件,更多的代码行和更长的代码行。如果我将它们分开,我会遇到同样的问题(更多的文件,行,更长的行)。显然,线越少越好(代码越少=在维护期间调试,更改或中断越少)。
这个特定的项目是5k行,其中2k来自网络或图书馆。我所有的.cs文件都是< 1k行。即使我在一个班级中有50多个函数,这是否可以接受?
奖励:我注意到大多数这些功能只被调用一次。并且将某些代码块(例如一个函数对数据库进行两次调用)作为它们自己的函数使我更难编辑,因为它们在文件和此气球函数计数之间划分。所以,我有点不知道该怎么做。我是否创建了更多的类来减少函数计数(每个类,它会增加整个函数调用,而且大多数只调用一次)?我如何设计前端/ UI的类?
答案 0 :(得分:1)
我经常发现我的UI内容比纯类要复杂得多。想一想 - 你的“纯粹”类(在很大程度上)基本上是机器指令,并且可以(或应该能够)假设纯粹的,经过预先验证的输入和输出,而不必适应人类行为的变幻莫测。
另一方面,用户界面受到人类谬误的影响 - 并且需要以人类可以理解的方式以人类可预测的方式作出反应。这就是复杂性的来源。考虑 - 在你的漂亮,清晰定义的类中,每个函数对已知类型的输入执行固定操作,没有很多随机BS可以预测或处理。
UI必须能够接受用户的各种不正确,不一致或意外的输入和操作。虽然我们作为设计师可以预先考虑其中的一部分(甚至可以通过组合框和命令按钮等来最小化它)。所有这些都需要额外的后端代码,并且b)所有这些事情也可以以不同的方式进行交互。
在我们的课程中,WE决定某些方法/功能等如何相互作用和相互影响。在UI上,我们可以尽力将用户指向正确的方向,但仍然存在随机元素。如果用户在从列表中选择项目之前按下按钮会怎样?处理该场景有几种不同的方法,所有这些方法都需要另一行(或十或100)代码才能正常处理。
最后,项目越复杂,UI可能就越复杂,而且必须继续进行。
管理机器的动作,给定我们作为程序员明确定义的输入和输出,与预测,管理和处理用户强加给我们的东西的随机怪癖相比是很容易的。如果只是他们会注意,对吧?
无论如何,我相信所有这些都是为什么UI的代码变得更大,更复杂。至于如何以可维护的方式打破它,上面的人覆盖了它。摘要二。我设计了一个表格。我为用户定义了menas以输入数据,和/或指明他们接下来想要发生什么。然后我定义了这种形式可以通过我清晰,干净的后端课程来传达这些内容的方式。然后,我提供验证机制,以及帮助控制用户全部导航的方法(例如,在用户从列表中选择项目之前,不启用按钮......)。
复合。