我维护Autoit项目用于swing应用程序的自动测试。那些测试现在有大约70个文件。在没有遵循一些“最佳实践”的情况下维护所有这些代码变得相当困难我正在尝试创建尽可能多的函数(因为重复的代码)和常量(频繁的更改)芽它没有'似乎已经足够了。
我通常有这类功能:
AutoIt没有class =>没有继承=> OOP原则很难解释(明确地说:D)
有人对使用AutoIt编写的更大应用程序有一些经验吗?我的观点是,AutoIt用于脚本< 500线,这不是一个大项目的好选择。
令人遗憾的是,AutoIt没有一些有用的IDE。
答案 0 :(得分:13)
AutoIt开发人员希望确保以AutoIt编写的任何属于核心库(简称:UDF)的函数都遵循某种代码样式。您可以在此处找到此标准:http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm社区中的许多程序员都会在此标准中编写所有AutoIt代码。
关于IDE的主题。 SciTE是经过时间考验的代码编辑器,但作为IDE,它的性能足够。社区开发和维护了另外两个IDE:
图形化调试器(F10步骤下一个功能)http://www.autoitscript.com/forum/topic/21834-graphical-autoit-debugger/
ISN AutoIt studio http://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/
最后一个是相当新的,但它看起来非常有前途,它可能对你的项目更好。
最后,我有一个警告。你说“OOP原则难以应用”,但即使作为一个OO程序员,你应该有一个强大的核心思想,在你学习OOP之前如何编写非OO代码。大多数OO语言都是必不可少的,所以你应该成为一个优秀的命令式编码器。 AutoIt也是必不可少的。
有用的IDE无法解决您的问题!但它会让他们稍微更容易管理。
我不知道你在哪里听说AutoIt只对500行以下的脚本表现良好,但每当你#include其中一个默认库时,你会添加~10000行代码。如果您可以编写正确的代码,那么您将构建自己的库,而不会增加其余代码的复杂性。
答案 1 :(得分:0)
由于AutoIt没有(如您提到的)OO语言的启用特性,我认为这里答案的一部分是研究AutoIt具有什么以及最适合它的范式。对我来说很明显,AutoIt是一种使用过程编程方法完成的语言。对我来说,回到那种思维方式实际上是很有趣的。最后,我的大型程序着重于正确定义计算模块,并将什么传递到模块中(并返回)。如果您严重错过了面向对象的好处,我认为接下来要重点关注的是范围界定-尝试保持尽可能紧密。
最后一点,我认为使用过程编程技术通常确实会在功能启动并运行后创建一个单独的重构任务。
A place to start...but this was the dominant paradigm for decades
答案 2 :(得分:0)
您对AutoIt不是OOP语言。它可能不是您想要的,但可能会给您一些想法。在这里看看: https://autoit-gui-skeleton.github.io/
AGS建议提供一种体系结构和工具,以使用AutoIt有效地构建桌面应用程序Windows。我已经想过,这将使我在维护几个AutoIt应用程序时的工作变得更轻松,并使我免于重复执行诸如生成Windows安装程序之类的任务。
稳定版本尚未发布。最后一个版本是v1.0.0-alpha(2018.07.10)
自动源代码组织:AGS建议使用约定和标准化体系结构以简化代码组织,从而简化其可维护性
Autoit的依赖性管理器:要管理依赖性,AGS使用NodeJS生态系统及其依赖性管理器npm和Yarn。
生成安装程序:AGS提供了一种过程和功能,可基于InnoSetup解决方案来促进Autoit应用程序的Windows安装程序(安装程序)的生成。
该应用程序的所有AutoiT源代码都存储在./src目录中。在后者中,有目录和特殊文件。
参见https://autoit-gui-skeleton.github.io/documentation/code-organization