Skip to content
On this page

设计

WARNING

该部分需要完善。

我们追求的不仅是实现、完成功能,还是优雅地实现、完成功能。本章节主要关注代码和功能设计。

不要重复造轮子

社区内已经有大量优秀资源,99% 的问题都不需要自行造轮子解决或自己造的轮子不如已有的轮子。请优先使用社区优秀资源。

CSS / SCSS

Atomic CSS 原子化 CSS

CSS-IN-JS

JavaScript

TypeScript

Vue

UniApp

尽量避开 uni_modules 等非公共标准。

Nest

无需特意遵循 JSON-RPCRestful API,但可以参考 Restful 做目录划分。

TypeScript 优先

在实践中我们发现,通过正确书写 TypeScript 构建出来的程序要比通过正确书写 JavaScript 构建出来的程序要更健壮。得益于 TypeScript 的类型系统,程序维护、迭代也更为容易。

请阅读 TypeScript 入门教程TypeScript 中文教程深入理解 TypeScript,确保你有基本的 TypeScript 研发能力。

请不要在代码内做非必要的类型体操以炫耀技术,这会影响整体研发效率。

函数式编程优先

在实践中我们发现,函数式编程能有效减少问题出现。请阅读 JavaScript 函数式编程指南,确保你有基本的函数式编程能力。

组合优先

我们提倡组合优先。如果一个功能值得分成两个函数实现,那绝不要放在一个函数内实现。这有利于解除耦合,为函数做测试,同时也给予更强的组合性。

意图优先

我们提倡命名时优先使用意图,如 sumsub 等,不提倡使用描述,如 process 等。

注明意图使人更容易理解代码。在必要时,可以使用 JSDoc 作为补充。

适当抽象

在实践中我们发现,适当抽象有利于提高代码健壮性。

“适当抽象”本身就是一个抽象的描述,如果代码满足以下的规律,可尝试做适当抽象。

  1. 代码相对稳定,预计在一个月内不会出现完全推翻重做的情况。
  2. 代码已经重复出现 3 次或以上,且重复率在 60% 或以上。

参考

Released under the MIT License.