AutoIt 最佳实践/编码风格

     2023-02-16     143

关键词:

【中文标题】AutoIt 最佳实践/编码风格【英文标题】:AutoIt best practices / coding style 【发布时间】:2012-02-24 22:28:00 【问题描述】:

我维护 Autoit 项目,用于对 Swing 应用程序进行自动化测试。这些测试现在有大约 70 个文件。如果不遵循一些“最佳实践”,很难维护所有这些代码似乎还不够。

我一般有这几种功能:

一些通用功能(插入带有日志记录的文本、从组合框中选择或读取..) 一些特定于屏幕的功能(填写一张表格..) 一些数据/逻辑功能 - 测试应用逻辑和数据处理 测试用例函数 - 结合前 3 个实现一些测试场景

AutoIt 没有类 => 没有继承 => OOP 原则很难应用(:D 清楚)

有人对用 AutoIt 编写的大型应用程序有一些经验吗?我的看法是,AutoIt 适用于小于 500 行的脚本,对于这个大项目来说不是很好的选择。

很遗憾,AutoIt 没有一些有用的 IDE。

【问题讨论】:

【参考方案1】:

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 工作室http://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/

最后一个是相当新的,但它看起来非常有前途,它可能更适合您的项目。

最后,我有一个警告。您说“OOP 原则很难应用”,但即使是 OO 程序员,在学习 OOP 之前,您也应该对如何编写非 OO 代码有一个strong核心思想。大多数 OO 语言的核心都是命令式的,所以你应该已经是一个优秀的命令式编码器了。 AutoIt 也是必不可少的。

有用的 IDE 无法解决您的问题!但这会让它们稍微更容易管理。

我不知道您在哪里听说 AutoIt 仅在 500 行以下的脚本中表现良好,但每次您 #include 一个默认库时,您都会添加大约 10000 行代码。如果您可以编写正确的代码,您将构建自己的库,而不会增加其余代码的复杂性。

【讨论】:

我不同意你的观点,即有用的 IDE 将使我的代码稍微更易于管理。由于 CTRL+(单击函数)和 CTRL+SPACE 代码帮助(这部分适用于 scite(仅适用于本机函数),我必须承认,像 eclipse 这样的 IDE 将对所有已编写的代码(不是我编写的)的方向产生巨大影响,程序化编程不是我最强的能力,但继承会立即解决我的问题。 除了官方的 AutoIt 标准页面,还有this page 稍微详细一些,并在某些方面进行了扩展。编辑:补充一下,我亲自编写了 5000 行左右的 AutoIt 项目,其他人写的甚至更大。 +1 ISN AutoIt 看起来真不错。 @UltraMaster 你应该看到 ISN AutoIt 是在多少行中制作的。它纯粹是在 AutoIt 中制作的!【参考方案2】:

由于 AutoIt 没有(如您所提到的)OO 语言的启用特性,我认为这里的部分答案是看看 AutoIt 有什么以及最适合它的范式。我很清楚 AutoIt 是一种旨在使用过程编程方法完成的语言。对我来说,回到那种思维方式的那些方法实际上有点有趣。我的大型程序最终,重点是正确定义计算模块,传递到模块(并返回)的内容。如果您严重错过了 OO 的好处,我认为接下来要关注的是范围界定——尽量保持范围紧凑。

最后一点,我认为使用过程式编程技术通常最终会在功能启动并运行后创建一个单独的重构任务。

A place to start...but this was the dominant paradigm for decades

【讨论】:

【参考方案3】:

你说得对 AutoIt 不是 OOP 语言。它可能不是你要找的东西,但它可能会给你一些想法。看看这里: https://autoit-gui-skeleton.github.io/

AGS - Autoit Gui 骨架

AGS 建议提供一种架构和工具,以使用 AutoIt 高效构建桌面应用程序 Windows。我已经认为它可以让我在维护几个 AutoIt 应用程序时变得更轻松,并且让我免于执行生成 Windows 设置等重复性任务。

尚未发布稳定版本。最后一个版本是v1.0.0-alpha (2018.07.10)

主要特点

Autoit 源代码组织:AGS 建议使用约定和标准化架构来简化代码组织,从而简化其可维护性

Autoit 依赖管理器:为了管理依赖,AGS 使用 NodeJS 生态系统及其依赖管理器 npm 和 Yarn。

生成设置:AGS 提供了一个过程和功能,以促进基于 InnoSetup 解决方案生成 Autoit 应用程序的 Windows 安装程序(设置)。

AGS 架构概述

应用程序的所有 AutoiT 源代码都存储在 ./src 目录中。后者有目录和特殊文件。

见https://autoit-gui-skeleton.github.io/documentation/code-organization

【讨论】:

c++最佳实践|2.代码风格(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第二篇。C++最佳实践:1.工具2.代码风格(本文)3. 安全性4. 可维护性5. 可移植性及多线程6. 性能7. 正确性 查看详情

对 className 风格技术做出反应的最佳实践

】对className风格技术做出反应的最佳实践【英文标题】:BestpracticeinreactwhencometoclassNamestyleTechnique【发布时间】:2020-12-2221:23:40【问题描述】:我是react.Js的新手,通常我在vue.js或vanilla(pureHTML,CSS,JS)做我的造型。我对React中的ClassNa... 查看详情

Swift 风格:函数返回您需要的类型的可选类型以便继续,处理此问题的最佳实践是啥?

...数返回您需要的类型的可选类型以便继续,处理此问题的最佳实践是啥?【英文标题】:Swiftstyle:Functionreturnsoptionaloftypethatyouneedinordertocontinue,what\'sthebestpracticetohandlethis?Swift风格:函数返回您需要的类型的可选类型以便继续,处... 查看详情

链接到 Microsoft 编码标准/最佳实践文档?

】链接到Microsoft编码标准/最佳实践文档?【英文标题】:LinktoMicrosoftcodingstandard/bestpracticesdocumentation?【发布时间】:2010-11-2415:04:00【问题描述】:任何人都可以发布指向Microsoft开发最佳实践和指南的链接吗?我为此搜索了高低... 查看详情

c++最佳实践|6.性能(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第六篇。C++最佳实践:1.工具2.代码风格3. 安全性4. 可维护性5. 可移植性及多线程6. 性能(本文)7. 正确性 查看详情

c++最佳实践|1.工具(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第一篇。C++最佳实践:1.工具(本文)2.代码风格3. 安全性4. 可维护性5. 可移植性及多线程6. 性能7. 正确性 查看详情

c++最佳实践|1.工具(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第一篇。C++最佳实践:1.工具(本文)2.代码风格3. 安全性4. 可维护性5. 可移植性及多线程6. 性能7. 正确性 查看详情

在 JSON 中编码日期的最佳实践是啥?

】在JSON中编码日期的最佳实践是啥?【英文标题】:WhatistheBestPracticeforEncodingDatesinJSON?在JSON中编码日期的最佳实践是什么?【发布时间】:2011-06-0814:23:00【问题描述】:在设计将JSON返回到浏览器(或服务器端JS)的服务时,在... 查看详情

编码最佳实践——单一职责原则(代码片段)

SOLID是一组最佳编码实践的首字母缩写S单一职责原则O开放与封闭原则LLiskov(里式)替换原则I接口分离原则D依赖注入原则同时应用这些最佳实践,可以提升代码适应变更的能力。但是凡事要有度,过度使用虽然可以让代码有很... 查看详情

c++最佳实践|3.安全性(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第三篇。C++最佳实践:1.工具2.代码风格3. 安全性(本文)4. 可维护性5. 可移植性及多线程6. 性能7. 正确性 查看详情

c++最佳实践|4.可维护性(代码片段)

...程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第四篇。C++最佳实践:1.工具2.代码风格3. 安全性4. 可维护性(本文)5. 可移植性及多线程6. 性能7. 正确性 查看详情

__repr__() 函数的最佳输出类型和编码实践?

】__repr__()函数的最佳输出类型和编码实践?【英文标题】:Bestoutputtypeandencodingpracticesfor__repr__()functions?【发布时间】:2011-04-0708:49:12【问题描述】:最近,我在__repr__()、format()和编码方面遇到了很多麻烦。__repr__()的输出应该编... 查看详情

您对一组编码标准或最佳实践有啥好的建议/链接可以遵循吗?

】您对一组编码标准或最佳实践有啥好的建议/链接可以遵循吗?【英文标题】:Doyouhaveanygoodadvice/linkstoasetofcodingstandardsorbestpracticestofollow?您对一组编码标准或最佳实践有什么好的建议/链接可以遵循吗?【发布时间】:2009-02-2009:... 查看详情

三分钟彻底了解restful最佳实践

REST是英文representationalstatetransfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想Res... 查看详情

IOS 最佳 Web 视频编码实践 (FFMpeg)

】IOS最佳Web视频编码实践(FFMpeg)【英文标题】:BestWebVideoEncodingPracticesforIOS(FFMpeg)【发布时间】:2012-06-2302:43:51【问题描述】:我正在为客户开发一个在线视频存储系统,主要用PHP编写。目前我正在构建我们桌面网站的移动版本。... 查看详情

bson.json_util 日期时间编码和解码最佳实践

】bson.json_util日期时间编码和解码最佳实践【英文标题】:bson.json_utildatetimeencodeanddecodebestpractice【发布时间】:2015-04-2003:30:32【问题描述】:我正在尝试使用pymongo的bson工具对python日期时间对象进行编码和解码。这里的最佳做法... 查看详情

restful最佳实践

https://blog.csdn.net/chenxiaochan/article/details/73716617      REST是英文representationalstatetransfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准 查看详情

创建数据模型的最佳实践 [关闭]

】创建数据模型的最佳实践[关闭]【英文标题】:Bestpracticesforcreatingadatamodel[closed]【发布时间】:2011-10-2900:57:11【问题描述】:对于当前项目,我正在创建一个数据模型。是否有任何来源可以找到良好数据模型的“最佳实践”?... 查看详情