zoukankan      html  css  js  c++  java
  • 系统架构调整(概述)

    以下仅为个人整理结果,如果其中有不合理或不规范的地方,请各位随时拍砖~

    最近一年整理公司的项目结构,到目前为止,情况很糟糕,各种无阻止无计划的代码,各种显而易见的安全问题,各种…已经无力,理了一下调改优化放下大致为以下几点:

    1. 数据库连接池优化、采用阿里巴巴开源druid进行调改,并开放性能监控功能

    原因:数据库连接信息明文放入项目中有很大的安全隐患,若服务器被攻破,数据库服务器也将沦陷;目前采用的jdbc已经无法满足日益增加的业务量,而且开发人员对自身编写的sql性能没有非常直观的概念,druid提供的性能监控将大大提供开发人员对性能的概念,在没有dba的协助下可以初步通过优化语句来检验性能结果。

    2. 调整框架,在现有spring框架基础上,加入mybatis

    原因:现有的所有相关数据库操作均写入java代码中,对后期维护及管理都非常不利,最大的不利在于sql的复用性几乎等于0;另,总结数据库执行结果,可分为Map<Object,Object>、List<Map<Object,Object>>,String,Int四种,目前现状是每次均需额外编写相同的的数据处理方法,虽然封装了工具包,但是仍然存在个性化问题。采用mybatis可以大大的提升开发效率,易上手、xml统一配置管理sql,解除了sql与代码之间的强关联,提供了映射标签可自定义也可转为通用结果集,直接动态编写sql。mybatis也有它自身的缺点,但是在目前的情况下,它所带来的利大于弊,后期在做研究调整。~

    3. 大型项目采用maven模块化管理

    原因:现在就存在一个项目,其中整合了各个子系统的代码,导致项目超过100M,不说开发人员,单前端每次调试小功能都要buid好久,中间的时间都消耗在了等待上,若开发机器性能再low点,就只能看白屏了,所以目前的想法就是利用maven,分析系统的代码,抽出各子系统相关代码作为一个module进行管理,公共工具再单独封装或做一个commonmodule,这样每个职能的人员可以只维护指定模块,提高效率。

    4. 采用dubbo进行分布式服务化

    暂无

    5. 系统日志处理

    暂无

    6. 自动化工具

    ansible

    7. …

  • 相关阅读:
    Redis cluster学习 & Redis常识 & sort操作
    【Todo】【转载】JVM学习
    【Todo】【转载】Java中的锁机制2
    【转载】git命令和svn的对比
    【Todo】抽象渗漏法则 & 找到理想员工 & 软件开发成功 12 法则 & Joel on Software
    【转载】Java中的锁机制 synchronized & 偏向锁 & 轻量级锁 & 重量级锁 & 各自优缺点及场景 & AtomicReference
    JS里面匿名函数的调用 & 变量作用域的实验
    【Todo】深入理解Java虚拟机 读书笔记
    poj 2503 Babelfish
    hdu4493 Tutor
  • 原文地址:https://www.cnblogs.com/inncho/p/5175133.html
Copyright © 2011-2022 走看看