按键精灵吧 关注:500,115贴子:1,026,124
  • 5回复贴,共1

{编程技巧] 一起交流交流,有哪些值得借鉴的编程习惯

只看楼主收藏回复

写出优秀的代码是一门艺,要想如此,就必须在一开始就养成良好的编程习惯,这不仅有助于脚本初期的设计(如模块化),还可以使你编写的代码更易于理解,从而使脚本的维护工作更轻松、更省力。不好的编程习惯则会造成代码 bug,并且会使以后的维护工作困难重重。
那么,如何才能写出一手规范的、让人一看就觉得像是出自高手之手的脚本呢?


IP属地:广东1楼2022-04-02 13:18回复
    一、变量命名
    对于变量命名,禁止取单个字符(如a 、b 、c... ),除了要有具体含义外,还能表明其变量类型、数据类型等,但i 、j 、k 作局部循环变量是允许的。
    二、单行单条语句
    不允许把多个短语句写在一行中,一行中只写一条语句。
    三、勤做注释
    源程序有效注释量必须在20 %以上,注释应与其描述的代码相近。
    对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
    注释与所描述内容进行同样的缩排。
    四、注意运算符优先级
    注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
    五、避免使用难理解语句
    不要使用难懂的技巧性很高的语句,除非很有必要时。


    IP属地:广东2楼2022-04-02 13:23
    回复
      2025-06-05 18:26:02
      广告
      六、合理嵌套循环语句
      在多重循环中,应将最忙的循环放在最内层 (减少CPU切入循环层的次数)
      七、避免子程序/函数代码过长
      绝大多数子程序/函数的代码在1-20行之间,子程序/函数名称需要能看出它做什么,名字不怕长,就怕短。
      一个方法只能完成一个任务。即使该任务非常小(很多方法很有可能是一句话,不要嫌麻烦)。
      绝大多数方法的圈复杂度不能超过10,如果超过必须进行分解。
      八、避免子程序间过多的嵌套调用
      九、变量使用前先定义
      按键精灵处理Q语言代码可能会非常宽容,但还是建议不要太过依赖它的解析能力,因此养成懒散的编码习惯,变量使用前先作定义,子程序或者函数内的变量就在其内完成定义。
      十、总是检查数据
      要检查你的输入框输入的所有数据,一方面是为了安全性,另一方面也是为了可用性。用户随时随地都会输入错误的数据。这不是因为他们蠢,而是因为他们很忙,并且思考的方式跟你不同。用VarType 函数来检测你的输入框的输入是否合法。


      IP属地:广东3楼2022-04-02 13:35
      回复
        十一、避免全局变量
        全局变量跟环境变量非必要情况尽量少用。因为在一个脚本中包含的所有代码都在同一个域中运行。所以如果你的代码中声明了全局变量的话,后面的脚本代码中的同名变量和函数会修改该变量,子程序/函数中使用的变量只在子程序中定义。
        十二、避免使用GOTO语句
        //超混乱的代码结构
        Rem 弹琴
        n = 1
        Delay 500
        KeyPress "1", 1
        Delay 18000
        FindColor 750,490,839,505,"FFFFFF",intX,intY
        //以下是条件判断;如果返回的坐标大于0,那么就说明找到了。
        While intX < 0 And intY < 0
        n=n+1
        Goto 弹琴
        Wend
        改成这样思路就清晰多了
        While intX < 0 And intY < 0
        Delay 500
        KeyPress "1", 1
        Delay 18000
        FindColor 750,490,839,505,"FFFFFF",intX,intY
        Wend


        IP属地:广东4楼2022-04-02 13:45
        回复
          十三、优化循环
          循环遍历一个数组
          这段代码会在每次进入循环的时候都计算一次维数的最大可用下标。
          Dim A
          A = Array(10,20,20,50,40)
          For i = 0 To UBound(A)
          TracePrint A(i)
          Next
          这样写就只计算一次了
          Dim A,len
          A = Array(10, 20, 20, 50, 40)
          len=UBound(A)
          For i = 0 To len
          TracePrint A(i)
          Next
          十四、用尽量简短的代码
          同样是定义数组并给其赋值,后者明显比前者简短得多。
          Dim A
          A(0) = 10
          A(1) = 20
          A(2) = 20
          A(3) = 50
          A(4) = 40
          一条语句就完成了数组赋值。
          Dim A
          A = Array(10, 20, 20, 50, 40)
          有关于脚本代码编写规范性更好建议的话,欢迎补充!


          IP属地:广东5楼2022-04-02 14:11
          回复