我们公司的软件有很多表单,迄今为止我们是用手写代码(MVC方式)。
我们正在考虑开始使用GUI构建器。
使用构建器存在一些问题:
- 部分代码不易于阅读。
- 部分代码不易于编辑。
- 以后编辑代码将更困难。
- 我们将不得不继续使用构建器,即使我们想要替换构建器或手写代码,而且没有人能保证该工具在未来可用和受支持。
我想从别人的经验中学习:
- 您是否建议使用工具,还是应该继续手写代码?
- 哪个构建器更好?
- 他如何解决这些问题?(还有其他问题吗?)
我们公司的软件有很多表单,迄今为止我们是用手写代码(MVC方式)。
我们正在考虑开始使用GUI构建器。
使用构建器存在一些问题:
我想从别人的经验中学习:
如果只需要制作几个表单,我建议使用构建器。这样可以更快完成。然而,如果您有很多需要长期维护的表单,我建议不要使用构建器。因为你花费在阅读代码和维护上的时间比初始设计时间要长得多。因此,虽然构建器可以在初始阶段节省时间,但它会使代码阅读和维护变得更加困难。此外,即使是从一个表单复制粘贴到另一个表单中,代码的重用也更加困难。
我不知道您是指网络应用程序还是桌面应用程序,但通常我没有找到一个能够产生优美输出的Java Gui构建器。例如,Netbeans Swing生成的代码非常混乱。也许,如果有一个好的构建器可用,我会改变我的想法。我使用Visual Studio的表单设计器没有问题 - 它可以生成易于阅读和理解的漂亮代码。
对于桌面应用程序,请看看MiGLayout。这是一个布局管理器,不是构建器,适用于Swing和SWT,可以使您的工作更加轻松。
通过使用一个好的构建工具,开发速度会更快。
你对无法修改代码的焦虑可能是因为你把很多逻辑放在了视图中,这是不应该的。实际上,这种改变可以帮助你将逻辑从视图中移出来,这样就可以在不破坏代码的情况下更改可视化元素。
关于“难以阅读”,你应该考虑使用更好的 GUI 生成器。我听说过 NetBeans 只有积极的评价,而我使用的 IntelliJ GUI 构建器的代码非常干净。
在这两个构建工具中,源代码都是可读和可编辑的,但只适用于小的调整。对于大的调整,最好使用 GUI 构建工具。
我认为,如果只有少量表单,手动进行没有问题,但是由于你刚才提到有“很多”,使用这些工具将是最有益的。
MigLayout
,但自从写完这篇文章后,我已经使用了。现在我用过了,比以往更坚定了。MigLayout
是非常出色的,极其适用于动态GUI(根据条件需要改变的接口),并且显然是最好的手工编码布局管理器......但对于静态GUI,GroupLayout
和Netbeans编辑器要优秀得多。我希望人们能给它更多的机会。 - ryvantage我多年来使用过许多GUI设计工具(用于不同的编程语言):Delphi、Visual Studio、JBuilder和Netbeans。
它们产生的代码质量和数量都很重要。Delphi非常出色,相对于窗体大小,它产生的代码量很小,易于理解,并且双向工具使您可以有信心地更改生成的代码。这得益于一个简单易懂的GUI库。VS则会产生大量代码,您可能会害怕更改它。
Java的问题部分在于语言本身,没有委托或闭包,因此基于事件的代码可能会快速变得杂乱无章。
我通常会使用Netbeans Matisse来创建简单的东西,一旦自信,就手动编写它们。对于复杂的东西,最好进行规划和手动编码,以便定义好您的模型。
如果您构建自己的GUI组件库并将其重复使用,则会有所帮助。这适用于所有带有GUI库的编程语言。
对于有大量简单表单的系统,我倾向于采用XML方法:
您可以使用XForms及其实现,但通常我在工作场所中的经验是,购买解决方案需要比构建自己的简单XSLT更长的时间。如果表单中没有太多专业小部件,则通常需要一周左右即可使所有内容正常运行。如果您制作自己的代码生成器,则可以完全控制整个过程。如果您发现希望将所有表单从垂直滚动更改为以列形式呈现,则只需更改一个位置,而不是更改每个表单的实现(尽管您可以使用Java中的框架来将表单信息从表现形式中抽象出来,但它不适合这种申明性编程)。
就我个人而言,我喜欢将 GUI 布局与代码分离(否则你就会遇到刚才提到的问题)。这也似乎是一种趋势:Microsoft 有他们的 XAML,你会听到不同的 MVC 视图引擎等等。
为什么不使用基于 XML 的 GUI 设计呢? 你可以尝试一下 JFormDesigner 这样的工具,它可以处理 XML 和代码生成的布局。