# 说明

## 说明

作为中国电子商务全面解决方案的先行者，商派技术团队通过十八年的实践，积累了大量的电子商务前后端的架构模式和中间件设计经验，正是通过这些积累，保证了商派在国内电商业界的领先地位。

从公司ShopEx 4.8系列产品开始，商派一直在探索一种行之有效的方式，既能够降低研发成本和研发工作的复杂性，又能够快速地跟进业务的发展变化，在这种方式下，可以省去很多基础性的研发工作，复用八年来获得的经验，同时使研发周期大幅缩短，提高研发效率。

自2009年立项开始，商派投入了30余名工程师，用将近一年的时间打造出了开源的电子商务业务架构平台，幵将其命名为ECOS，寓意电子商务操作系统。

在经过 10 年发展后，我们基于 ECOS 做出了大量电商产品，于此同时开源框架也发展迅速，在新零售来临时，我们决定采用开源框架来重构我们的产品，在重构过程中，我们对商派多年的开发经验和开源社区经验进行总结，形成了此开发开发规范。

## 目的

规范有以下目的：

* 高效编码 - 避免了过多的选择造成的『决策时间』浪费；
* 风格统一 - 最大程度统一了开发团队成员代码书写风格和思路，代码阅读起来如出一辙；
* 减少错误 - 减小初级工程师的犯错几率。
* 代码可被生成 - 通过统一的规范，可以编写脚手架来生成重复性的代码。

## 开发哲学

因为篇幅原因本规范无法涉及到项目里每一块代码的编写标准，所以此处重点说明下此规范遵循的『开发哲学』，开发中请把其当做指明灯，来指引你做决策：

* DRY –「Don't Repeat Yourself」不写重复的逻辑代码；
* 约定俗成 - 「Convention Over Configuration」，优先选择框架提倡的做法，不过度配置；
* KISS - 「Keep it Simple, Stupid」提倡简单易读的代码，不写高深、晦涩难懂的代码，**不过度设计**；
* 主厨精选 - 让有经验的人来为你选择方案，不独创方案；
* 官方提倡 - 优先选择官方推崇的方案。

## 设计理念

以下是一些优秀的『程序设计理念』：

* MVC - Model, View, Controller ，以 MVC 为核心，新增 [Repository 模式](https://espier.gitbook.io/espier/kuang-jia/jia-gou-si-xiang/architecture-repository) 和 [Service 模式](https://espier.gitbook.io/espier/kuang-jia/jia-gou-si-xiang/architecture-service)，来控制 Controller 和 Model 代码行数；
* Restful - 利用『资源化概念』和标准的 HTTP 动词来组织你的程序；

在此规范中，我们会将使用这两套理念作为程序设计基础。这些设计理念为我们设计程序提供了依据，遵循这些理念，能让程序变得清晰易读。
