ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
91 lines (55 loc) • 3.81 kB
Markdown
---
order: 90
title:
en-US: Style Guide
zh-CN: 编码规范建议
type: Advance
---
Angular CLI 构建的项目就其目录结构而言已经非常棒了,同时官网也有一份 [Angular Style Guide](https://angular.io/guide/styleguide)([中文版](https://angular.cn/guide/styleguide))风格指南,建议好好阅读几遍。除此之外,ohayojp 也有一部分编码风格,如下说明可能对于你阅读代码时有用。
## 风格指南
### 区域
将一组相同属性使用 `// #region ` & `// #endregion` 自由折叠代码预处理指令(限VSCODE),以 `shared.module.ts` 文件为例:
```ts
// #region third libs
import { NzSchemaFormModule } from 'nz-schema-form';
const THIRDMODULES = [ NzSchemaFormModule ];
// #endregion
```
将所有第三方模块放在 `third libs` 区域当中,并统一将注册模块放进 `THIRDMODULES` 变量中。你无须再关心导入和导出的问题,因为 `THIRDMODULES` 数组默认加入导入和导出行列中。
当我们在阅读一个比较长文件时,可以在VSCODE里折叠部分代码,更有助于阅读。
### API文档
应用总是免不了业务组件的开发,我们无法保证若干时间之后你还能记得这些,因此务必在每一个业务组件附带 `README.md` 文档,并描述API、DEMO等信息,例如:
```markdown
## 何时使用?
略
## DEMO
略
## API
成员 | 说明 | 类型 | 默认值
----|------|-----|------
src | 图片地址 | `string` | -
```
### 模块注册
请参数[模块注册指导原则](/docs/module)。
## 辅助项
`ohayojp` 配置了一些针对 CLI 选项,以便更好进行编码工作。
### CLI
vscode 是编写 Angular 最佳的选择,你可以在项目的任何目录里输入:`ng g c list` 生成组件的相应的文件。
`ohayojp` 默认配置了不生成样式文件&单元测试,因此,你会看到生成的只有 `.ts`、`.html`。这是因为 `ohayojp` 提供了非常丰富的样式API,在大多数页面中自定义样式并不是刚需的;同时,单元测试也是如此。
当然,你可以很容易在 `angular.json` 中调整默认配置。
### vscode snippets
vscode 是编写 Angular 最佳的选择,自然 ohayojp 也制作了相应 snippets 扩展插件:[ng-zorro-vscode](//marketplace.visualstudio.com/items?itemName=cipchk.ng-zorro-vscode) 和 [ohayojp-vscode](//marketplace.visualstudio.com/items?itemName=cipchk.ohayojp-vscode)。
## 一致的代码风格
ohayojp 使用 [Prettier](https://prettier.io/) 来优化代码风格,并且使其结果符合 `tslint.json`。
推荐安装几个插件在 vscode 中更友好的开发:
- [ng-zorro snippets](https://marketplace.visualstudio.com/items?itemName=cipchk.ng-zorro-vscode)
- [ohayojp snippets](https://marketplace.visualstudio.com/items?itemName=cipchk.ohayojp-vscode)
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)
- [Document This](https://marketplace.visualstudio.com/items?itemName=joelday.docthis)
> 可以通过配置 `.vscode/settings.json` 的 `formatOnSave` 在文件保存时自动修复代码风格。
## Git
### pre commit
`lint` 可以非常有效的帮助我们更早发现bug、更高的可读性;如果我们能够保证团队开发过程中每一次 commit 前都自动做一次 staged 中文件的 lint 的话,那不是非常酷吗?
ohayojp 配置了每次对 staged 进行 commit 时会预先做 lint,若发现错误则无法提交。
默认开启了 `*.ts`、`*.less` 的提交过程中强制对代码进行格式化,你可以通过修改 `package.json` 的 `husky` 节点来改变些规则(例如:`prettier --write`)。