---
order: 4
navTitle: 应用文件组织
---
# 应用文件组织

一个实际业务项目中会包含数据录入、数据查询、可视化分析等，需要用到较多文件资源，使用规范的、清晰的文件组织来管理这些文件资源能帮助项目成员快速了解相关业务、维护资源以及内容的扩充和移植，本文讲述低代码应用开发过程中的文件组织管理的规范。

## 应用文件总体组织规范{#rules}

应用模块中，根据展示业务不同可新建多个应用，应用命名规则为简短小写英文名称，如`oa`。在一个应用中，应用资源面板会默认存在**文件**、**数据**、**API**三个目录，该目录不可删除与重命名，只可在对应目录下新建应用资源，如下图是一个典型的业务应用的资源目录示例：

![总体组织规范](./images/2021-08-08-21-45-55.png)

- **文件**：相关业务资源以及可视化页面等存放与文件目录下，可新建SuperPage、仪表板、脚本文件等，名称统一小写简短英文字母，减号`-`分割，对url友好，更多规范可查看[资源文件组织](#resource)
- **数据**：只会被当前应用用到的数据可以存放在数据目录下，模型文件名统一大写英文字母，下划线`_`分割，文件描述可以使用中文，如`FACT_LEAVE_APPLY-请假申请表`，文件较多，按照业务模块管理目录，更多规范可查看[数据模型组织](#data)
- **API**：程序流以及后端脚本存放于API目录下，如后端脚本`custom.action`放于该目录下，名称使用小写简短英文字母，更多规范查看[程序流和后端脚本组织](#api)

:::tip
系统中新建文件，可以填写文件的**名称**和**描述**，新建成功后，名称和描述以`-`连接，如下图效果：

![名称-描述](./images/2021-08-08-21-59-02.png)
:::

## 资源文件组织{#resource}

在**文件**目录中可新建业务文件、图片文件、脚本文件以及开放文件等，这些文件的存放目录规范如下：
![资源文件组织](./images/2021-08-05.png)

- **业务文件**：可新建SuperPage等文件，先按照移动端、PC端显示形式分别存放对应目录，再按照业务模块存放对应业务目录中，统一小写简短英文，减号`-`分割，如`qjsq`请假申请页面
- **图片文件**：数量较少，可统一放到`images`目录中，数量较多，可分业务模块放到对应业务目录的`images`目录中，统一使用小写英文
- **开放文件**：即不需要权限或登录就能访问的文件，统一存放于`public`目录中，使用小写简短英文命名
- **工作流文件**：执行流程的工作流文件，具体可查看[工作流](./workflow/README.md)，统一存放与`workflow`文件使用小写简短英文命名
- **脚本文件**：大部分脚本文件存放于`scripts`目录中，统一小写命名，部分脚本文件有约定位置，如下所示：
  - 前端脚本：名称为`custom.ts`，存放与`文件`目录下，新建该文件自动生成`custom.js`文件，详见[前端脚本开发](../dev/script/frontend/custom-ts.md)
  - 样式脚本：名称为`custom.less`，存放与`文件`目录下，新建该文件自动生成`custom.css`文件，详见[前端自定义样式开发](../dev/script/styles/custom-less.md)

## 数据模型组织{#data}

:::warning

只在内部使用的数据模型建议放到应用中的数据目录下，如果数据可能会被其他地方用到，比如其他业务、分析、可视化等，则建议放到元数据项目的[数据](../data-gov/README.md)模块中。

:::

在**数据**目录中，可新建数据模型，只在内部使用的数据模型建议放到该目录下。该目录下文件规范如下：

![数据模型组织](./images/2021-08-08-23-05-55.png)

- **业务目录**：模型文件若较多，可以考虑按业务板块新建一级子目录分目录管理，目录名建议大写英文字母，业务描述放到文件名的描述中，如目录为`LEAVE-请假`
- **事实表**：放入对应业务目录中，统一大写英文字母，下划线`_`分割，文件描述可以使用中文，如`FACT_LEAVE_APPLY-请假申请`
- **维表**：公共的维表可以发放到独立的`DIM`目录，业务维表可以放到对应业务目录中，文件名命名以`DIM_`开头，如`DIM_SQLX-申请类型`
- **物理表**：大写英文字母，下划线`_`分割，尽量与模型表名保持一致，如`FACT_LEAVE_APPLY`、`DIM_SQLX`

以下列举一些文件命名规则以供参考：

|种类|名称规则|举例（名称-描述）|
|--|--|--|
|业务文件夹|具有含义的简短英文名称或描述首字母缩写|`LEAVE-请假`、`KQGL-考勤管理`|
|事实表|FACT+上级目录名称+表信息英文名称或描述首字母缩写|`FACT_LEAVE_APPLY-请假申请表`、`FACT_KQGL_DKXXB-打卡信息表`|
|维表|DIM+业务英文名称+维表描述信息首字母大写|`DIM_LEAVE_QJLX-申请类型`|
|通用维表|DIM+GEN+表信息首字母缩写|`DIM_GEN_XZQHFZ-行政区划父子`|
|部分通用维表|DIM+项目名称或业务文件名称+表信息首字母缩写|`DIM_OA_SPZT-审批状态`|
|数据表|大写英文名称，与模型表名称保持一致|`FACT_LEAVE_APPLY`、`DIM_LEAVE_QJLX`|

## 程序流和后端脚本组织{#api}

在**API**目录中可新建程序流和后端脚本文件，文件名约定为小写英文，减号`-`分割或驼峰命名，可直接存放与该目录下，如后端脚本`custom.action.ts`直接存放于当前目录下，新建该文件会自动生成`custom.action`文件，详见[后端脚本开发](../dev/script/backend/README.md)。

![程序流和后端脚本组织](./images/2021-08-08-23-11-13.png)
