编程规范

由于轻舟是一门新的语言、有自己特定的语法结构、为了养成良好的编程习惯、以及培养编程思维、同时也有助于快速解决相关问题、针对使用轻舟进行软件开发时、我们制定了一些可以让编程工作变得更好、更方便的编程规范;请大家在进行开发时遵循以下规范:

注:本文仅用作轻舟(LightChar)语言在使用中文编码情况下使用、由于轻舟本身也支持英文编码、如果你习惯于使用英文或字母表编码、可忽略本文部分规范。

  • 命名

  • 代码格式

  • 多线程操作

  • 注释规约

  • 安全规约

  • 数据库规范

命名

  • 变量

    • 变量名称不能使用纯数字或数字开头、只能使用中文或字母开头
    • 组件名称按照类型名称加下划线加功能命名、例如:按钮_登录 也可不加下划线、直接使用类型加功能、例如:按钮登录、或 登录按钮
    • 窗口成员变量按照注释即功能做简约命名、例如:变量 用户名 为 文本型 ;严禁随意命名 a、b、c 或 与业务功能逻辑无关的名称。
    • 局部变量按照 局加下划线 命名、例如:变量 局_结果 为 文本型、也可直接使用符合上下文语义的名称、例如:变量 登录结果 为 文本型 ;研究使用 a b c 或与业务逻辑无关的名称。
    • 全局变量按照 全局加下划线命名、或使用符合上下文语义的名称。
  • 函数

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

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

代码格式

  1. 轻舟采用换行符结尾一条语句、开发时必须严格按照一行代码即一条语句的格式
  2. 含有结束标志的语句、例如:如果、判断、函数、事件、循环类代码体等等 结束行与开始行必须独占一行、且开始结束标记必须匹配。
  3. 针对较复杂或上下文语义不清晰的函数或变量、必须添加注释内容。
  4. 函数名称与左括号不能含有空格。
  5. 含有缩进的代码必须严格按照4个空格的长度进行向内缩进、且同个层次的缩进长度必须保持一致、严禁上一行代码缩进3个空格、本行代码缩进5个空格、下一行代码又缩进1个空格的混乱情况。
  6. 一个函数内部的行数一般不得超过80行、超过80行应该将其代码功能进行拆分、或对功能实现重新设计。
  7. 一个窗口或类模块文件的代码行数不得超过800行、超过800应该对其代码做功能性拆分、将功能放到模块中。
  8. 使用 “判断” 或 “如果” 语句的时候、分支不应该超过30个、如果超过30个分支或条件、应该考虑更换其功能实现的思路。
  9. 使用“判断”或“如果”语句时、内部嵌套“否则 如果”不得超过3层、超过3层应该考虑使用返回语句、策略模式、状态模式等来实现。
  10. 从代码可维护性方面来说,良好的语义化代码有利于后期的迭代,函数或代码太长很难读懂,逻辑比较乱、会对后期维护更新造成很大影响。

多线程操作

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

注释规约

  1. 含有特定功能或处理重要业务逻辑的函数或代码必须添加注释
  2. 注释中必须能够准确反应实现思想和代码逻辑
  3. 注释中必须描述业务含义、在后期维护或更新时、能够快速让自己或其他程序员了解到代码背后的信息
  4. 注释中应该力求精简准确、表达到位、避免出现注释的一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

安全规约

  1. 在不确定文本变量或对象是否为空的情况下、必须先检测对象是否为空、避免引发空指针异常。
  2. 如果组件存在"销毁对象"或"释放资源"的函数、在退出程序前、必须调用该方法
  3. 及时清理不再使用的变量或函数、避免程序过度臃肿,代码冗余
  4. 对于暂时注释掉的代码、应该在上方打上暂时注释原因
  5. 在使用 判断循环 代码语句体时、必须保证判断条件有假、即可以退出的情况;否则会造成程序死循环直接崩溃。
  6. 在使用一般循环体代码时、针对循环取数组成员变量、或取集合数据时、必须判断其索引是否小于成员数、例如:假设一个数组中只有5个元素、当使用下标5或超过5的索引去取数据时、程序将因为超出数组索引发生崩溃。
  7. 严禁在循环遍历中对数组或集合做删除操作。
  8. 当需要处理多个相同类型的变量时、应该首先使用数组

数据库规范

数据库一般不属于前端开发的工作;这里只针对一般开发时操作数据库相关的注意事项和规范;其规范如下:

  1. 数据库的编码格式必须设置UTF-8、如果设置为GBK、虽然也能支持中文、但不支持其他特殊符合、对后期的升级和维护可能会造成不可逆的影响。
  2. 表名非必要情况下、可以使用妥玛式拼音、如果会英文则使用英文、不建议使用中文作为表名。
  3. 字段与表名一样、非必要情况下、不建议使用中文。
  4. 如果使用云端数据库、例如:MYSQL 如果支持PDO引擎、必须以PDO方式操作数据库。
  5. 非必要情况下、严禁使用直链方式操作数据库、严禁将数据库远程地址、端口、直接以明文写在APP中。
  6. 除了主键以外、如果表中含有作为查询条件的字段、应该为其添加索引