# PDD Framework

> PDD⭐ - 是数企官方开发的纯前端容器框架，在Typescript赋能下基于IOC开发出的OOP框架，同时通过内置模块可快速实现AOP开发。

### PDD能带来什么：

- 统一代码，规范化。
- 更好的拓展、易于维护。
- 提升开发效率，开发只需考虑解决具体功能即可。

### 为什么要做PDD：
- 1.由于前端只有Vue/React/NG等MVVM框架，缺少像Spring、Laravel、Django这类架构更清晰、生态更完善的框架 [**当然现在有了像Nest.js、Midway.js这类Node.js服务端框架**] ，导致绝大多数纯前端对开发项目的认知不足。
- 2.前端缺少较为完整的开发方案，导致整体项目“乱”-高耦合、低聚合。PDD给前端项目开发整体规范化约束。
- 3.提升可维护性，目前PDD从整体配置到应用层面的拓展都有着明确的规定。大家都怕见到“宝藏代码”，“千人千面”这些给开发者造成的困扰无异乎抛出异常缺没有指出异常具体位置，很难维护。

### 如何使用：
```shell
# 通过npm方式安装
npm i pdd
# 通过cnpm方式安装 
cnpm i pdd 
# 通过yarn方式安装
yarn add pdd 
# 通过pnpm方式安装，推荐
pnpm add pdd 
```
> 更多使用方法参照 [官方文档]: https://jxbse4s2oz1.feishu.cn/wiki/wikcnX8DSYtb1agME6mxb6NRfrQ
> 集成到现有框架中，以Vue3+TS项目为模板来说
```typescript
// main.ts
/********** PDD Start **********/
import Application from 'pdd'
// PDD AppConfig 获取App配置文件
import AppConfig from './app/config/AppConfig'
// PDD Setting Config
Application.setAppConfig(AppConfig)
// PDD Run
Application.run()
// 如需使用日志系统
import { Log } from 'pdd'
// 日志初始化配置
Log.init({
	// 使用web-sql方式存储
	storage:'WEB_SQL',
	// 存储的总条数，再超出范围后会将最先存储的日志给替换，请参照日志系统文档
	total:10000,
	// 控制台打印的级别，error及以下的级别在控制台打印，默认为debug级别，设置为false时则全部级别不在控制台打印
	console:'error'
})
// 如需使用任务系统
import { Job } from 'pdd'
// 启动任务系统，具体细节请参照任务系统文档
Job.boot()
```
