zoukankan      html  css  js  c++  java
  • 开发模块化的初步理解

    因为业务需求的变更,做了很多模块化处理,为了便于记忆学习,给未来的自己提个醒,特来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.com
    3 ServerAlias xxx.test2.com
    4 DocumentRoot "/var/www/html/xxx.test1.com/sites/b/" 5 <Directory "/var/www/html/xxx.test1.com/sites/b/"> 6 Alias /static/ "/var/www/html/xxx.test1.com/sites/static/" 7 Alias /conquer/ "/var/www/xxx.test2.com/sites/static/"

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

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

    的模块;读库的时候也就是多了个where判断条件即可。如下图:

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

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

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

    就是理解这么多吧。

    个人小结

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

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

  • 相关阅读:
    Spring课程 Spring入门篇 5-6 introductions应用
    Spring课程 Spring入门篇 5-5 advice应用(下)
    Spring课程 Spring入门篇 5-4 advice应用(上)
    Spring课程 Spring入门篇 5-3 配置切入点 pointcut
    Spring课程 Spring入门篇 5-2 配置切面aspect
    Spring课程 Spring入门篇 5-1 aop基本概念及特点
    Spring课程 Spring入门篇 总结
    Spring课程 Spring入门篇 4-9 Spring bean装配之对jsr支持的说明
    Spring课程 Spring入门篇 4-8 Spring bean装配之基于java的容器注解说明--基于泛型的自动装配
    Spring课程 Spring入门篇 4-7 Spring bean装配之基于java的容器注解说明--@Scope 控制bean的单例和多例
  • 原文地址:https://www.cnblogs.com/qwgshare/p/6908121.html
Copyright © 2011-2022 走看看