开课吧孤尽T31训练营学习笔记-DAY8-工程结构

172 阅读3分钟

工程结构规约

今天开始,逐步进入工程实操阶段。

一、作业评审

首先孤尽老师对上周的作业做了讲解,对集中图的用途做了进一步的阐述。

1.1 用例图

关注角色和角色要做的事情,事情之间有extend关系和include关系。

extend是继承关系,可以理解成选做(选择其中一种方式做);

include是包含关系,用户可以做其中的所有事情。

image.png

1.2 类图

关注用例描述中识别出的业务对象,他们的属性和行为,以及他们之间的关系。

学习类之间的六种关系:实现、继承、组合、聚合、依赖、关联。

1.3 时序图

关注一个业务流程中,有哪些对象在协作,随着时间的推进,系统在做什么。

1.4 状态图

关注状态和状态迁移条件。

image.png

1.5 活动图

活动图(UML家族)和流程图之间的关系,活动图多了泳道、并发等。

活动图关注由多少系统参与了协作,每个业务活动瞬间判断,循环是怎么进行的。

二、应用分层

2.1 分层的意义

可扩展、可维护。

2.2 MVC

重点在于M,M包括数据和数据的处理逻辑(大家理解会不一样)。

2.3 分成异常处理

这个我先做个记录,在项目中如何落地,需要考虑一下。

image.png

2.4 分层领域模型

DO、DTO、BO、Query、VO如何去用,也是在项目中落地的事情,如果每一层都这么去搞,项目中来回转,会降低开发效率。

三、深入理解MAVEN

3.1 maven主要功能

依赖管理:基于仓库

规范目录结构: 约定优于配置

完整的项目构建阶段: task组合

支持多种插件

MAVEN依赖仲裁

  1. 按照DependencyManager版本声明进行仲裁
  2. 如无仲裁声明,则按照依赖最短路径确定版本
  3. 若相同路径,则按照第一声明优先原则

依赖冲突解决方案

image.png

依赖resolve

可以使用mvn:resolve来看一下发布jar包所有的依赖情况。

TCP/IP

了解协议后,对服务器配置,具有很好的指导意义。

服务器配置最佳实践

高并发服务建议

实践指导:调小TCP协议的time_wait超时时间

原理说明:TCP协议的time_wait超时时间操作系统默认是240s, 过长,可能端口资源被占满,无法建立新的连接。

调大服务器最大句柄数

实践指导:调整最大句柄数为65535

原理说明:linux一个连接对应一个fd,而默认最大配置为1024,连接数很大时,无法建立新的连接。

JVM环境参数配置

实践指导1:配置XX:+HeapDumpOnOutOfMemoryError参数 原理:JVM碰到OOM时,可以输出dump信息

实践指导2:JVM的Xms和Xmx设置一样大 原理: 避免在GC后调整堆大小带来的压力