`
qiannianhua
  • 浏览: 17901 次
社区版块
存档分类
最新评论

将配置数据从代码中分离出来

 
阅读更多

一、代码无非是定义一些指令的集合让计算机来执行;

 

二、当我们修改源代码时,会引入bug风险,且当你只修改一些数据值也会带来一些不必要的风险,因为数据是不应当影响指令的正常运行的,因此,应用应当将关键数据从主要的源代码中抽离出来;

 

三、代码分析:

抽离配置数据-----将配置数据从代码中抽离出来的第一步是将配置数据拿到外部,即将数据从JavaScript代码之中拿掉;

将配置数据保存在了config对象中,config对象的每个属性都保存了一个数据片段,每个属性都有前缀,用以表明数据的类型(MSG表示展现给用户的消息,URL表示网络地址,CSS表示这是一个className):

var config = {
      MSG_INVALID_VALUE:"Invalid value",
      URL_INVALID:"/errors/invalid.php",
      CSS_SELECTED:"selected" 
};

 定义一个validate函数,当不为value值的时候弹出MSG_INVALID_VALUE;

function validate(value){
     if(!value){
              alert(config.MSG_INVALID_VALUE);
              location.href = config.URL_INVALID;
     }
}

  所有的配置数据都从函数中移除,并将换为config对象中的属性占位符:

function toggleSelected(element){
     if(hasClass(element,config.CSS_SELECTED)){
          removeClass(element,config.CSS_SELECTED);
     }
     else{
          addClass(element,config.CSS_SELECTED);
     }
}

 

四、总结:将配置数据抽离出来意味着任何人都可以修改它们,而不会导致应用逻辑出错。同样,我们可以将整个config对象放到单独的文件中,这样对配置数据的修改可以完全和使用这些数据的代码隔离下来。

分享到:
评论

相关推荐

    致远A6数据库分离代码,历史数据部署,文件配置要点

    根据服务器配置,整个工程时间至少需要两天,其中大部分时间用于数据备份,数据库分离代码执行时间预计12个小时(我这个数据很大,所以.....)。分离之后的数据库,用来部署为在用服务器。分离前的数据库用来部署历史...

    编写可维护的JavaScript(中文)

    第9章 将配置数据从代码中分离出来 9.1 什么是配置数据 9.2 抽离配置数据 9.3 保存配置数据 第10章 抛出自定义错误 10.1 错误的本质 10.2 在JavaScript中抛出错误 10.3 抛出错误的好处 10.4 何时抛出错误 ...

    编写可维护的javascript(英文)

    第9章 将配置数据从代码中分离出来 9.1 什么是配置数据 9.2 抽离配置数据 9.3 保存配置数据 第10章 抛出自定义错误 10.1 错误的本质 10.2 在JavaScript中抛出错误 10.3 抛出错误的好处 10.4 何时抛出错误 ...

    【项目实战源代码】一个基于 Spring Boot + Vue 前后端分离的导航网站

    参数管理:对系统动态配置常用参数。 通知公告:系统通知公告信息发布维护。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 登录日志:系统登录日志记录查询包含登录异常。 在线用户:...

    Spring配置动态数据源实现读写分离的方法

    主要介绍了利用Spring配置动态数据源实现读写分离的方法,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,藕需要的朋友可以一起学习学习。

    C#数据库备份、还原、附加和分离(源代码)

    本程序用于对sql数据进行备份、还原、附加和分离,它可以作为一个单独的数据库管理工具加入您的应用程序中。 要使用本工具,必须进行必要的设置,包括:1、在windows中防火墙的设置例外(sqlserver程序例外和1433...

    springboot+mybatis+mysql实现读写分离.zip

    springboot+mybatis+mysql实现读写...先在建好mysql主从数据库的配置,然后在代码中根据读写分离或强制读取master数据库中的数据 mysql数据库设置主从,参考: https://my.oschina.net/zhangmaoyuan/blog/3120556

    注解配置多数据源代码.zip

    注解形式多数据源动态切换代码,数据库读写分离,连接多种数据库切换,亲测有效

    Java开发基于微服务架构的前后端分离的博客系统源码.zip

    前后端分离,通过 Json 进行数据交互,前端无需关注后端技术 引入RabbitMQ 消息队列,用于邮件发送、更新 Redis 和 Solr 采用Minio搭建对象存储服务,同时引入七牛云对象存储 引入ElasticSearch 和 Solr 作为全文...

    毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的动漫商城管理系统,内含Java完整源代码,数据库脚本

    毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的动漫商城管理系统,内含Java完整源代码,数据库脚本 基于Springboot+vue的动漫商城管理系统(源代码+数据库) 一、系统介绍 权限认证使用Jwt,支持多终端认证...

    基于SpringBoot+Vue前后端分离的健身房系统源码.zip

    参数管理:对系统动态配置常用参数。 通知公告:系统通知公告信息发布维护。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 登录日志:系统登录日志记录查询包含登录异常。 在线用户:当前...

    一二三应用开发平台-企业级通用低代码开发平台V1.0,前后端分离架构,vue3+elementplus+SSM

    低代码配置模块:模块、实体、模型、视图,可快速配置实体元数据,基于元数据生成entity、dao、service、controller、vo及前端vue页面。基于该平台可快速构建企业应用。 内含数据库初始化脚本;平台整体架构图;平台...

    YII2数据库MySQL复制和读写分离配置

    关于YII2代码配置那一部分,给出的是官方的链接,如果想要这部分,请不用下载,直接去官方阅读,以免浪费资源分哦

    vue加springboot前后端分离架构.zip

    可直接拿去做前后端分离项目的底层架构,包含3个部分,应用springboot框架的java后端代码,vue前端代码,mysql数据库脚本,已完成反向代理,跨域,数据库连接等基础参数配置,可进行登录操作(项目配置完成的登录...

    springboot+mybatis多数据源+动态数据源配置(连接池)

    springboot+mybatis多数据源+动态数据源配置(连接池),mysql数据库,代码实现了简单的读写分离,但是不建议这种操作,建议使用数据库中间件进行读写分离,例如使用mycat进行读写分离主从热备,使用该代码对于多个...

    项目管理-Mybatis学习源码(三)

    其核心思想是将 SQL 语句从 Java 代码中分离出来,在 XML 或注解中进行配置,从而实现了 SQL 与 Java 代码的分离。 以下是 MyBatis 的一些主要特点和功能: SQL 映射配置:MyBatis 使用 XML 文件或注解来描述 SQL ...

    项目管理-mybatis学习源码(二)

    其核心思想是将 SQL 语句从 Java 代码中分离出来,在 XML 或注解中进行配置,从而实现了 SQL 与 Java 代码的分离。 以下是 MyBatis 的一些主要特点和功能: SQL 映射配置:MyBatis 使用 XML 文件或注解来描述 SQL ...

    项目管理-Mybatis学习源码(一)

    其核心思想是将 SQL 语句从 Java 代码中分离出来,在 XML 或注解中进行配置,从而实现了 SQL 与 Java 代码的分离。 以下是 MyBatis 的一些主要特点和功能: SQL 映射配置:MyBatis 使用 XML 文件或注解来描述 SQL ...

    前后端分离博客项目.zip

    然后数据层,我们常用的是Mybatis,易上手,方便维护。但是单表操作比较困难,特别是添加字段或减少字段的时候,比较繁琐,所以这里我推荐使用Mybatis Plus(mp.baomidou.com/),为简化开发而生,只… CRUD 操作,...

    毕业设计,基于SpringBoot+LayUI+MySql开发的前后端分离的环境监测数据管理系统,内含完整源代码,数据库脚本

    毕业设计,基于SpringBoot+LayUI+MySql开发的前后端分离的环境监测数据管理系统,内含完整源代码,数据库脚本 本科毕业设计,基于Springboot的可扩展(用户可自主构建数据库表)的数据管理系统,前端基于Layui框架,...

Global site tag (gtag.js) - Google Analytics