编程规范

轻语言是一门编程语言、有自己特定的语法结构、为了养成良好的编程习惯、以及培养编程思维、使用轻语言编写程序时,遵循良好的编程规范可以提高代码的可读性、可维护性和一致性。

以下是轻语言编程中官方定义的常见的编程规范:

命名规范

好的命名规范、有助于让代码逻辑更清晰,代码分工更明确,代码中的变量、函数、模块、窗口命名时的规范:

变量

  • 变量名称不能使用纯数字或数字开头、只能使用中文或字母开头

  • 组件名称按照类型名称加下划线加功能命名、例如:按钮_登录 也可不加下划线、直接使用类型加功能、例如:按钮登录

  • 窗口成员变量按照注释即功能做简约命名、例如:变量 用户名 为 文本型 ;严禁随意命名 a、b、c 或 与业务功能逻辑无关的名称。

  • 局部变量按照 局加下划线 命名、例如:变量 局_结果 为 文本型、也可直接使用符合上下文语义的名称、例如:变量 登录结果 为 文本型 ;严禁使用 a b c 或与业务逻辑无关的名称。

  • 全局变量按照全局加下划线命名、或使用符合上下文语义的名称,例如:变量 全局_站点域名 为 文本型

函数

  • 函数名称不能使用纯数字或数字开头、只能使用中文或字母开头
  • 遵循注释即名称的规范、根据上下文语义命名、例如:获取账号信息
  • 函数名称建议限制在32个字符内、不能超过125个字符
  • 一个窗口文件或模块中不能包含两个相同名称的函数

窗口

  • 窗口名称不能使用纯数字或数字开头、只能使用中文或字母开头
  • 窗口名称按照窗口功能命名、不加任何前缀、但应该对不同功能类的窗口进行分组、例如:与用户有关的窗口、登录窗口注册窗口个人中心等应该放在用户分组中。

代码格式规范

缩进

换行时使用 4 个空格进行缩进,或一个 Tab 键缩进。

行长度

  1. 每行代码不超过 120200 个字符。

  2. 一个函数或事件内不超过 80120 代码。

  3. 一个窗口或类模块中总代码行数不超过 8001000 行,超过时应该对其代码做功能性拆分、将功能放到不同模块中。

语句块

  1. 含有结束标志的语句、例如:如果、判断、函数、事件、循环类代码体等等,结束行与开始行必须独占一行、且开始,结束标记必须匹配。

  2. 使用 “判断” 或 “如果” 语句的时候、最大分支不超过 30 个、如果超过30个分支或条件、应该考虑更换其功能实现的思路。

  3. 使用“判断”或“如果”语句时、内部嵌套“否则 如果”不超过 3 层、超过3层应该考虑使用返回语句、策略模式、状态模式等来实现。

空格

  1. 在运算符两侧添加空格,例如:变量 sum 为 整数型 = a + b

  2. 关键字右侧有括号的,关键字与括号之间不能含有空格;例如:如果(变量循环(判断(判断循环(

注释

  1. 注释符与注释内容之间设置一个空格,例如:' 这是注释内容

  2. 多行注释使用注释模板。

窗口与模块规范

单一职责原则

每个窗口或模块只负责一个功能。模块负责具体功能的实现,窗口负责功能的展示。将指定功能封装到模块中,窗口调用模块,窗口本身不负责复杂的功能业务。

代码复用

  1. 避免重复代码、将重复代码提取到方法或工具类中。

  2. 将程序中通用功能封装到工具类中。

异常处理规范

在容易发生错误的代码处、捕获程序发生的异常错误信息。

视窗示例:

事件 按钮1.被单击(来源对象 为 对象,事件对象 为 鼠标事件)
    异常捕获首
        变量 ary1 = {1, 2, 3}
        ' 数组总共只有3个元素,获取其第6个元素、将触发异常信息
        调试输出("元素:" + ary1[5])
    异常被捕获(异常信息 为 对象)
        调试输出("异常信息:" + 异常信息)
    异常捕获尾
结束 事件

运行上方代码将输出:

异常信息:java.lang.ArrayIndexOutOfBoundsException: 5

多线程编程规范

  1. 严禁在子线程内更新窗口组件内容
  2. 不应滥用线程、应该根据自身业务逻辑做出功能型评判后再使用。
  3. 耗时操作、或让程序产生卡顿、无响应操作的代码必须放在子线程中

其它规范

  1. 在不确定文本变量或对象是否为空的情况下、必须先检测对象是否为空、避免引发空指针异常。
  2. 在使用 判断循环 代码语句体时、必须保证判断条件有假、即可以退出的情况;否则会造成程序死循环直接崩溃。
  3. 在使用一般循环体代码时、针对循环取数组成员变量、或取集合数据时、必须判断其索引是否小于成员数、例如:假设一个数组中只有5个元素、当使用下标5或超过5的索引去取数据时、程序将因为超出数组索引发生崩溃。
  4. 严禁在循环遍历中对数组或集合做删除操作。