开发模块化的初步理解

因为业务需求的变更,做了很多模块化处理,为了便于记忆学习,给未来的自己提个醒,特来get此刻的感悟。

场景需求:

一开始父级下面可能有好几个小模块,但是有一个小模块做的很出色,远远的超出的其他模块。为了利益

最大化,那么就有请偶们把这个模块独立出来,且不能影响其他任何模块。

需求分析:

既然独立出来,首先要考虑的域名地址也要变换,比如以前该模块地址为:xxx.test1.com/module1/index.do

那么现在就变成了xxx.test2.com/index.do;这样,也就实现了域名的独立。对于域名的独立,每个框架的处理方式

不一样。比如laravel框架的路由中可以进行简单的配置一下,意思就是当域名为xxx.test2.com时候,下面的所以路由

就走这里的,这样我们就可以从视觉上实现了模块的对了。

1//模块的独立
2 Route::group([‘domain‘ => ‘xxx.test2.com‘,‘middleware‘ => [ ‘api.auth‘]], function () {
3   //这里就是你自己的路由
4 });

当然如果你不想在框架配置也行,可以在服务器中进行配置,以配置Apache为例子

1 <VirtualHost *:80>
2         ServerName xxx.test1.com3         ServerAlias xxx.test2.com5         DocumentRoot "/var/www/html/xxx.test1.com/sites/b/"
6         <Directory "/var/www/html/xxx.test1.com/sites/b/">
7 Alias /static/ "/var/www/html/xxx.test1.com/sites/static/"
8 Alias /conquer/ "/var/www/xxx.test2.com/sites/static/"

好吧,结束上面一堆配置的废话。下面开始讨论一下,如何进行逻辑的分离。恩,既然说到逻辑上的分离,就我目前的

个人经验来看,最简单粗暴的方法,就是在数据表中,建立多个所谓冗余字段,当入库的时间,区分一下添加一下字段

这个是哪个模块的;读库的时候也在多个判断条件即可。如下图:

当然这样做前期是方便了,满足了当前需求,当时后期你会发现会越来越乱,越来越冗余,维护起来比较麻烦。第二种方法,

就是分表。对,就是分表。所谓的分表就是,以前的查询展示数据的方法一点都不变,不要去改动它。区别就是,数据入库

的时候新建一张原来一模一样的表,然后进行入库操作到新建的这张表中。把这些数据慢慢的挪到新的数据库中。恩,暂时

就是理解这么多吧。

个人小结

无论你构思的多么好,代码写的有多么优秀,代码实际环境的运行才是检验的唯一标准。我虽然走的很慢,但我从未放弃,

前进依然在继续,不积跬步无以至千里,不积小流无以成江海,依然fighting。。。

时间: 2024-07-30 07:11:20

开发模块化的初步理解的相关文章

初步理解require.js模块化编程

初步理解require.js模块化编程 一.Javascript模块化编程 目前,通行的Javascript模块规范共有两种:CommonJS和AMD. 1.commonjs 2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用于服务器端编程,这标志”Javascript模块化编程”正式诞生. 在浏览器环境下,没有模块也不是特别大的问题,毕竟网页程序的复杂性有限:但是在服务器端,一定要有模块,与操作系统和其他应用程序互动,否则根本没法编程. node.j

CSS (一)初步理解

通过牛腩新闻发布系统,接触了CSS,也感受到了它在做Web前台开发时简单方便易更改的优点. 尤其是后边对于CSS盒子的学习和认识,更加让人体会到网页设计和很多事物一样蕴含着深刻的思想和设计技巧,融于生活,表现生活. 本篇文章主要是对CSS内容概况的一些个人理解. CSS,即级联样式表.它真正做到了使网页表现层与内容分离的一种样式设计语言,做到了代码控制界面,简单易修改的解耦效果. 通过CSS,我们可以精确控制对象位置精确到像素级,还可以随心设计对象样式和风格,达到最优的美观度. 下面是CSS的一

前端开发模块化高效重构

说起模块化,也许我们首先想到的是编程中的模块设计,以功能块为单位进行程序设计,最后通过模块的选择和组合构成最终产品.把这种思想运用到页面构建中,也已经不是什么新鲜事.相信很大一部分页面构建工程师都经历了这样几个阶段:第一阶段是在一个css文件中把多个页面按自己的习惯顺序从上往下编写样式,基本不考虑有无公用样式,以完成设计呈现为首要目的:第二阶段是提取不同页面中的通用样式,如公用颜色.图标.按钮等,实现一些基本元素的复用:第三阶段是提取公用功能模块,如导航.版权信息等,实现部分公用模块的复用. 刚

node.js module初步理解,exports与module.exports的区别

在开发一个复杂的应用程序的时候,我们需要把各个功能拆分.封装到不同的文件,在需要的时候引用该文件.没人会写一个几万行代码的文件,这样在可读性.复用性和维护性上都很差,几乎所有的编程语言都有自己的模块组织方式,比如Java中的包.C#中的程序集等,node.js使用模块和包来组织,其机制实现参照了CommonJS标准,虽未完全遵守,但差距不大,使用起来非常简单. 在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块,文件内容可能是我们封装好的一些JavaScript

对于中国剩余定理(CRT)的初步理解

以前觉得用中国剩余定理来求同余方程组很鸡肋,因为可以用拓展欧几里得算法来构造出一种更加强大(可以处理取模的数(默认为mi)不互质的情况)的算法. 今天查了点资料,发现我太天真了. 首先讲讲中国剩余定理: 即 : x ≡ a[i] (mod m[i]) 1<= i <= r (m[i] 两两互质) 求这个同余方程组可以快速算: x = ∑M/m[i] * Inv(M/m[i], m[i]) * a[i] (mod M) 其中M = m[1]*m[2]*m[3]...m[r]  , Inv(x,

CSS初步理解

最近在学习牛腩的时候遇到了网页的制作,挺新鲜的.当中涉及到了有关CSS的知识,于是乎自己也就花费两个小时的时间,找了本浅显易懂的书来看了一遍,从宏观上来了解CSS的相关内容.有关CSS的基础知识详见下链接. CSS基础知识 以下是对CSS理解的导图 通过上图我们也发现,CSS也很难,也容易.容易是说,学起来很快就可以上手,这中语言简单易懂,只要你具备小学英语的知识量就可以了.困难是在指学好它并不容易,因为它需要你耐心.就好比我们对word文档的排版,哪里需要主体鲜明一点,哪里需要着重突出一下,哪

Spring学习笔记--环境搭建和初步理解IOC

Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hibernate等其他众多的框架. 下面介绍环境的搭建,首先下载好spring的完整包,我下载的是4.2.5版本的,在elipse中,新建java项目: 1,导入核心jar包: 2.在src目录下,创建spring配置文件(名称可以自定义,一般写为beans.xml): <?xml version="1.

初步理解socket

近期研究下socket,发现自己还是有非常多不明确的地方,索性沉下心来,从最基础開始学习,開始看起,如今对自己的学习做下小小总结,以便和大家分享,如有谬误,敬请指正. 原创文章,转载请注明出处:http://blog.csdn.net/jessonlv TCP/IP 在学习socket之前,先回想下TCP/IP协议. TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机怎样连入因特网及数据怎样再它们之间

通过阅读Oracle Enterprise Asset Management User Guide,我对Oracle eAM的初步理解

通过阅读Oracle Enterprise Asset Management User Guide,我对Oracle eAM的初步理解 Oracle eAM是Oracle EBS套件的一部分,解决资产密集的组织的综合的和常规的设备维护需求.在设备层面追踪所有的维护成本和工作历史,来衡量绩效和最优化维护操作. eAM为组织提供了工具给资产和可重建的库存物料创建和应用维护程序.eAM让用户可以最大化地计划和安排维护活动,同时对组织的运作或生产中断最小.重要的是,它能提高资源有效性,增强维护质量,跟踪