江湖开发平台代码规范

12002

1、为什么要对代码进行规范

  • 不进行代码规范会造成的情况

    • 可读性差: 缺乏规范的代码难以阅读和理解,增加了维护和修改的困难度,尤其对于团队合作来说,统一的规范可以提高代码的可读性。
    • 维护困难: 缺少规范会导致代码结构混乱、命名不一致、风格不统一,使得代码的维护变得复杂和困难。
    • 代码质量低: 不遵循规范可能会导致代码冗余、重复、难以扩展和测试。代码可能会存在逻辑错误、性能问题和安全隐患。
    • 可维护性差: 规范的缺失会影响代码的可维护性。当代码规模增大时,缺乏规范将导致更多的问题,使得维护成本飙升。
    • 团队合作困难: 缺乏统一的规范会增加团队成员之间的沟通成本,不同的编码风格可能会产生冲突。
    • 可移植性差: 缺少规范可能导致代码在不同环境下难以移植和重用。
    • 安全隐患: 代码规范可以减少一些安全隐患,比如良好的命名规范可以避免因为拼写错误引起的问题。
  • 代码规范的优点

    • 提高代码可读性:代码规范可以统一代码的格式、命名规则、注释等,使代码更易于阅读和理解,从而提高代码的可读性。
    • 提高代码质量:代码规范可以强制执行最佳实践,例如在代码中使用有意义的命名、避免重复的代码、优化代码结构等,从而提高代码的质量。
    • 便于合作开发:代码规范可以使不同开发人员之间的代码风格一致,降低开发人员之间的沟通成本和学习成本,从而提高开发效率和代码质量。
    • 降低维护成本:代码规范可以使代码更易于维护,例如标准的缩进和注释,可以使代码更易于排版和理解,从而降低维护成本。

以上代码规范是为了使代码更加可读、易维护和易于合作开发而制定的一系列约定和规则。总体来说,不遵循代码规范会影响代码的质量、可读性、可维护性和可扩展性,增加开发和维护的成本,降低软件项目的整体质量和稳定性。因此,制定并遵循适当的代码规范对于软件开发项目来说是至关重要的。

2、async function

使用async await解决异步callback嵌套问题。async function是语言层面提供的语法糖,在 async function 中,我们可以通过 await 关键字来等待一个 Promise 被 resolve(或者 reject,此时会抛出异常), Node.js 现在的 LTS 版本(8.x)已原生支持。

  1. const fn = async function () {
  2. const user = await getUser();
  3. const posts = await fetchPosts(user.id);
  4. return { user, posts };
  5. };
  6. fn()
  7. .then((res) => console.log(res))
  8. .catch((err) => console.error(err.stack));

3、html

  • Page代码规范-doUiAction

基于"统一中转链式操作",其核心思想是将不同的操作以一种可重复使用的方式封装在一起,从而提高代码的可读性和可维护性。通过doUiAction("uiActionId", uiActionParamObj) 来链式执行方法(function),其易于维护和修改。

  1. // doUiAction定义与实现
  2. methods: {
  3. // 定义doUiAction
  4. async doUiAction(uiActionId, uiActionData) {
  5. switch (uiActionId) {
  6. case 'startCreateItem':
  7. await this.prepareCreateFormData();
  8. await this.openCreateDrawer();
  9. break;
  10. default:
  11. console.error("[doUiAction] uiActionId not find", {uiActionId});
  12. break;
  13. }
  14. },
  15. // ---------- startCreateItem uiAction >>>>>>>>>> --------
  16. async prepareCreateFormData() {
  17. //do something...
  18. },
  19. async openCreateDrawer() {
  20. //do something...
  21. },
  22. // ---------- <<<<<<<<<<< startCreateItem uiAction ---------
  23. }
  24. //调用
  25. <v-btn @click="doUiAction('startCreateItem')">新增</v-btn>
  • Resource代码规范之施工方案

不同端之间所传递的数据,江湖JS所做的规范与设计在应用协议的设计上,进行了统一和简化,能够做到在不同通讯通道间无缝切换。

在江湖JS里,一个HTTP请求/Socket请求对应数据库_resource表中的一行数据。

我们把请求resource 分成两类:

  • sql resource:后端根据请求组装出sql,执行并将结果返回给前端。
  • service resource:后端根据请求找出/app/service下对应的service,执行对应的方法并将结果返回给前端。
  1. const rows = (await window.jianghuAxios({
  2. data: {
  3. appData: {
  4. pageId: 'albumManagement',
  5. actionId: 'viewAlbumArticleList',
  6. actionData: { albumId, offset: 10000 },
  7. }
  8. }
  9. })).data.appData.resultData.rows;

4、数据库

  • 清理多余的数据
  • 表字段要符合Jianghu表的风格