当前位置: 首页 > news >正文

平湖城乡规划建设局网站网站改手机版

平湖城乡规划建设局网站,网站改手机版,深圳网站建设网络推广公司,微信公众号平台登录入口2023.3.8#xff0c;我在组内进行工作汇报。内容记录如下#xff1a; 本次重构的特点 改动大影响后续开发 所以有必要进行工作汇报#xff0c;让组内同事了解代码的改动与现状。 为什么要重构代码#xff1f; 正在开发的数据报告模块包含大量 widget 功能#xff0c;…2023.3.8我在组内进行工作汇报。内容记录如下 本次重构的特点 改动大影响后续开发 所以有必要进行工作汇报让组内同事了解代码的改动与现状。 为什么要重构代码 正在开发的数据报告模块包含大量 widget 功能并且它和仪表板模块中已有的 widget 功能大部分是相同的。 当然数据报告模块会新增一些内容新增“维度标签”组件、“度量标签”组件等。也会有一些局部的修改。 那么需要复用widget 代码。但是现在的代码不能直接复用所以需要重构。 重构要解决的两个问题 widget代码的位置widget代码的内容 widget代码的位置 问题 原先 widget 代码是在 Dashboard 模块下需要把它挪出来。 解决方案widget 独立成包 首先要明确“widget 包对外只导出一个组件类似 echarts 的调用方式所有操作都在 widget 包内处理” 是无法实现的。 因为 WidgetView.vue 和 WidgetSettingsPanel.vue 是分开调用的。 所以 widget 包需要对外导出很多内容。使用的时候按需调用 templateWidget :datadata /WidgetSourceDataDialog :datadata :dialogVisibledialogVisible / /templatescriptimport { Widget } from bi/widget;import { WidgetSourceDataDialog } from bi/widget;import { updateRenderData } from bi/widget; /scriptwidget 独立成包。单独放在一个仓库中。 和主应用的代码分开存放这样独立性更高。代码耦合性降低有利于维护代码。 确定了方案开始施行。但是不到两天就进行不下去了遇到两个非常棘手的问题 麻烦1widget - a - b - c主应用中的很多内容也被迫独立成包 widget 包中引用了主应用的很多内容 commonUtils 工具方法globalConst 业务全局常量src/components/ui.vue 全局ui组件src/components/业务组件.vue 全局业务组件不止 widge 用到其他模块也会用到dataset/api.js 这些内容不应该放在 widget 包中。但是放在主应用中的话widget 又引用不到了。 可以把这些内容都当作参数调用 widget包的组件和方法时传参进去。但这样很不合理。 所以只能把这些内容也独立成包这样包和包之间可以互相调用了 But这是一个连锁反应如果 widget 依赖aa独立成包了。a又依赖了b同理b也需要独立成包。 这样一步步找下去主应用中的大部分代码都被提溜起来了主应用就不剩多少东西了。。 会出现这种情况是因为之前的代码之间互相引用比较随意导致现在重构难以进行。以后的开发要吸取教训 麻烦2少了一层 namespace 原先引用的时候可以把文件名看作命名空间。比如下面两个方法都叫 barHelper但是能知道一个是拼样式的bar工具类一个是拼数据的bar工具类。 import { barHelper } from ./styleUtils.js; import { barHelper } from ./dataUtils.js;widget独立成包后再调用的时候有统一的入口。这时候看到 barHelper就不确定是做什么的了。应该改成类似 barStyleHelper 的名字才合理 import { barHelper } from bi/widget;以上两个大麻烦都是我在设计方案之初没有预料到的。尤其是第一个麻烦工作量巨大相当于要把整个项目中的代码重新梳理一遍。而且改动不是渐进性的必须一次改完不然项目跑不起来。 我当初选中这个方案就是因为看中它分割的彻底性。现在不得不放弃这个方案也是因为它分割的太彻底了改动的工作量太大。 换一个方案 widget 代码还放在主应用中只是从 Dashboard 文件夹下挪出来直接放到 src 下 widget代码的内容 重构要解决的第二个问题widget代码引用了外部环境主要是仪表板 外层组件 provide/props 提供进来的的一些参数widget 组件本身主动调用 store 中的内容 dashboardPalette; dashboardTheme; dashboardWidgetBgColor; dashboardPermission dashboardIsReadonly; dashboardSize pageType;解决方案appType store中新增全局变量 appType标志 widget 当前环境的类型dashboard / dataWord。 在 widget 代码中统一使用 appXXX appXXX appType dashboard ? dashboardXXX : dataWordXXX;在 DashboardContainer.vue 的 created 中 setApptype(“dashboard”) 在 DatawordContainer.vue 的 created 中 setApptype(“dataWord”)
http://www.hkea.cn/news/14466185/

相关文章:

  • 二级学院英语网站建设通知优设网剪辑教程
  • 自己做博客网站好chaincd wordpress
  • 泰安网站制作推广七米网站开发
  • 针对网站做搜索引擎做优化郑州设计院排名
  • 去菲律宾做网站网络的推广
  • 东莞网站制作公司是什么个人网页设计与制作学年论文
  • 速成网站怎么做大连网站制作多少钱
  • 网站开发 策划是干嘛的wordpress文章找不到
  • 长春高端品牌网站建设搜房网房天下官网
  • wordpress怎么关注站点沧州模板建站平台
  • 网站被黑刚恢复排名又被黑了网站的推广方式
  • 烟台网站建设开发目前网站建设主流技术架构
  • 东莞网站制作网站网络销售有哪些
  • 利津网站建设找兼职工作在家做哪个网站好
  • 设计网站账号如何做网站横幅
  • 帝国cms地方门户网站模板网站设计团队
  • 企业网站建设 南通中国建设银行网站多少
  • 风格 特别的网站wordpress个人云盘
  • 深圳西丽网站建设公共交通公司网站建设方案
  • 网站建设策划实施要素用php建设一个简单的网站
  • 广告联盟怎么建设网站建设银行上海分行网站
  • 怎么找人做网站啊网络营销推广方法选择
  • 网站建设公司muyunke建筑行业征信查询平台官网
  • 招工做的网站松阳县建设局网站公示
  • 基层建设是哪个网站的wordpress 域名使用
  • 网站建设用的什么语言灌南网站开发
  • 中国电建市政建设集团有限公司网站地方性手机平台微网站
  • 局域网下怎么访问自己做的网站关键词词库
  • 不干净的软件下载网站如何制作自己的作品集
  • 美妆网站源码asp最便宜的免费建站