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

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

 
阅读更多

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

 

二、当我们修改源代码时,会引入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对象放到单独的文件中,这样对配置数据的修改可以完全和使用这些数据的代码隔离下来。

分享到:
评论

相关推荐

    浅谈如何实现PHP代码与页面显示分离

    在Web开发中,尤其是在使用PHP这种脚本语言时,如何有效地将业务逻辑代码与页面显示代码进行分离,是一项重要的任务。这不仅有助于提高代码的可维护性和可扩展性,还能使项目的分工更加明确。本文将探讨PHP代码与...

    Flex 页面与代码分离

    在Flex开发中,页面与代码分离是一种常见的最佳实践,它有助于提高代码的可维护性、可读性和可扩展性。Flex是一种基于ActionScript和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本资源“Flex ...

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

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

    界面代码和功能代码分离示例

    这个名为"界面代码和功能代码分离示例"的项目,就是为初学者提供了一个实践这一原则的实际案例。 首先,我们来理解一下界面代码和功能代码分离的概念。界面代码(UI Code)主要负责呈现用户交互的视觉元素,如按钮...

    SpringBoot+MybatisPlus多数据源配置,主从库读写分离完整例子

    本篇文章将详细讲解如何在SpringBoot项目中结合MybatisPlus实现多数据源配置,以及主从库的读写分离。 首先,我们要理解什么是SpringBoot和MybatisPlus。SpringBoot是由Pivotal团队提供的全新框架,其目的是简化...

    spring 动态多数据源配置代码

    下面将详细介绍Spring动态多数据源配置的相关知识点。 1. **为什么要使用多数据源**: 在实际项目中,可能需要连接到不同的数据库,例如,一个用于存储主业务数据,另一个用于日志记录或数据分析。通过多数据源...

    mp4文件分离器源代码

    MP4文件分离器源代码是一种专门用于处理MP4格式视频文件的工具,它基于DirectShow技术,能够将视频流和音频流从原始MP4文件中解复用出来,以便进行独立处理或进一步编辑。在多媒体处理领域,这种功能通常被称为...

    从VB中分离出来的MSCOMM串口通讯控件

    为了满足这种需求,可以将`MSCOMM`控件从VB环境中分离出来,制作成独立的动态链接库(DLL)或ActiveX控件,这样就可以在不安装VB的情况下在其他应用程序中使用它。分离`MSCOMM`控件使得开发者能更灵活地在不同的项目...

    springmvc-mybatis 整合druid多数据源配置读写实现读写分离,windows上mysql主从复制

    在SpringMVC和MyBatis中,我们可以通过配置多个数据源,分别对应主库和从库。Druid的多数据源配置可以方便地实现这一目标。以下是一个基本的配置示例: ```xml <!-- 配置主库连接信息 --> <!-- 配置从库连接...

    编写可维护的JavaScript(中文)

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

    让spring加载自己的properties配置文件,在代码中获得配置信息

    Spring提供了一种优雅的方式来加载`.properties`配置文件,使得开发者可以将配置信息与代码分离,提高应用的可维护性和灵活性。本文将详细介绍如何让Spring自动加载自定义的`.properties`配置文件,并在代码中获取...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    本文将深入探讨如何在Spring、Struts和iBATIS这三大流行框架的集成环境中实现数据读写分离以及事务控制。我们将不涉及具体的代码实现,而是侧重于理论背景和设计原则。 首先,让我们理解数据读写分离的概念。数据...

    java前后端分离快速开发 代码生成器

    在现代软件开发中,Java前后端分离是一种常见的架构模式,旨在提高开发效率和代码质量。在这种模式下,前端和后端开发独立进行,通过API接口进行数据交换。本项目聚焦于利用Java技术栈进行后端开发,Vue.js作为前端...

    SpringMVC基于代码的配置方式(零配置,无web.xml)

    本文将深入探讨如何在SpringMVC项目中实现基于代码的配置,以及如何在没有web.xml的情况下搭建一个完整的SpringMVC应用。 一、SpringMVC基础 SpringMVC是Spring框架的一部分,用于处理HTTP请求和响应。它提供了一...

    多数据源配置代码实例.zip

    在IT行业中,多数据源配置是一项重要的技术,尤其在大型企业级应用中,它能够帮助企业管理和处理来自不同来源的数据,实现数据库的分离、负载均衡、数据冗余等目标。本实例将通过代码来演示如何配置多数据源,帮助...

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

    本文将深入探讨“注解配置多数据源代码”,解释如何通过注解实现数据库的动态切换,以及如何实现数据库的读写分离。 首先,让我们了解“注解”(Annotation)的概念。注解是Java语言中的一个特性,它允许我们在代码...

    JNDI配置数据源在java web开发中的使用

    通过JNDI,开发者可以将资源的配置信息从代码中分离出来,放置在服务器的配置文件中,使得配置更加灵活和易于管理。 2. **数据源的概念** 数据源是用于管理数据库连接的容器,它可以缓存和复用数据库连接,避免...

    mysql主从同步,读写分离主要代码

    MySQL的主从同步和读写分离是数据库架构中常见的优化策略,用于提升系统性能和数据安全性。本资源提供的代码正是为了实现这一目标,通过详细解析这些代码,我们可以深入理解这两种技术的工作原理及其在实际应用中的...

    sharding jdbc 基于java代码的配置.zip

    Sharding-JDBC是一款轻量级的Java框架,它旨在解决大数据量下的数据库分库分表问题,无需修改数据库和业务代码,只需要通过配置或者注解就能实现数据的分布式处理。本压缩包“sharding jdbc 基于java代码的配置.zip...

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

    在Spring框架中,实现数据库的读写分离是提高系统性能的一种常见策略,它可以将读操作和写操作分散到不同的数据源上,减轻主数据库的压力。本文将详细介绍如何利用Spring配置动态数据源来实现这一功能。 首先,我们...

Global site tag (gtag.js) - Google Analytics