目录
介绍
万维网(World Wide Web)是基于互联网的信息系统,由超文本文档和超链接构成。用户可以通过浏览器访问并浏览各种类型的内容,如文本、图像、音频和视频。万维网的核心技术是超文本标记语言(HTML),它改变了人们获取信息、交流和共享知识的方式,成为全球范围内最重要的信息资源网络之一。
一、开发环境
-
JDK安装
①也可使用idea自带jdk,可能与open jdk存在一些区别
②傻瓜式安装,完成后配置环境变量 -
Intellij IDEA安装
傻瓜式安装,完成后在“文件→设置→插件”中搜索①Alibaba Java Code Guidelines②Gitee并安装 -
克隆项目
①Fork教学项目
②在非中文目录下clone项目“git clone https://gitee.com/xxx/api-practices.git” -
安装mysql-installer-community-8.0.22.0
①仅安装Server即可(Server only)
②检测安装,可能会有一些依赖安装,按提示安装即可
③安装完会有配置,其中密码验证方式,必须选择传统验证(Legacy),强密码方式navicat无法连接
④root根用户密码要牢记,开发环境建议使用123456或654321,生产环境不要使用易于猜测的密码
⑤其他配置一般按默认即可
参考:https://www.modb.pro/db/53520 -
安装Navicat,并打补丁
①安装完成后打开navicat,点击连接输入root用户密码并连接到mysql
②创建practices数据库。字符集utf8 -- UTF-8 Unicode,排序utf8_bin -
接口测试工具
①一般的接口测试,请在Edge或Chrome上安装postwoman插件
②涉及到文件上传,需要安装和使用postman应用
③要测试接口需要提交复杂json作为参数时,可使用>>>在线json编辑器<<<
二、搭建项目框架
1、项目开发流程
①.需求分析和规划阶段
- 确定项目的目标用户和功能。
- 进行市场调研和用户需求分析,了解目标用户群体的需求。
②. 互设计阶段
- 进行系统架构设计,包括数据库设计、后端服务和前端界面设计。
- 确定项目的技术架构和技术栈(如前端框架、后端框架、服务器等)。
- 设计项目的数据库结构和数据模型,以便于存储和管理数据。
③. 开发阶段
- 根据原型设计和交互设计文档,使用前端、后端框架和工具,如React、Vue.js、Node.js、Django等,进行Web应用程序的前端、后端开发。
- 设计和创建项目的数据库结构和数据模型。
- 编写数据库的存储过程、触发器等操作,以便于管理和查询数据。
④. 测试阶段
- 进行负载测试,以测试项目在高并发和高负载情况下的性能。
- 进行安全测试,以确保项目能够防范各种安全漏洞和攻击。
- 进行兼容性测试,以测试项目在不同浏览器、操作系统和设备上的兼容性。
⑤. 发布和部署阶段
- 部署项目到服务器或云平台上,并spring boot内置了web容器,jar包直接运行;若已存在外部web容器可使用war打包配置Web服务器、数据库、域名等。
⑥. 运营和维护阶段
- 处理项目的错误和漏洞,并进行定期更新和维护。
- 针对项目需求和市场变化,不断开发和更新Web应用程序的功能和特性。
2、创建项目
①使用Spring Initializer创建项目,建议使用IDE创建
若官网start.sprint.io无法链接,可切换到阿里云镜像start.aliyun.com,但spring boot的版本可能存在差异
可在官网页面创建,并无本质区别,IDE可检测jdk
②构建工具:Maven
对于构建Java程序,Maven出现时间早,支持范围更广,使用xml编码更易阅读;Gradle支持增量构建,性能更强,使用groovy或kotlin语言,对于初学者有一定的要求
③JDK版本,根据个人安装的情况选择
高级的语言版本具有更多的语言特性,尤其是集合API上,更方便易用,但新版本对于反射增加了限制
④打包方式Jar(官方推荐)
spring boot内置了web容器,jar包直接运行;若已存在外部web容器可使用war打包
⑤spring boot版本,根据个人安装的情况选择,在官网当时提供的版本中选择,尽量选择发行版本
⑥选择依赖,根据个人安装的情况选择
3、相关配置文件
①pom.xml
- 项目对象模型(Project Object Model)是Maven工程的基本工作单元,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖。若需要添加其他依赖,可在pom中添加。
- pom文件中指定源码文件编码为UTF-8
- pom中配置maven打包跳过测试,或忽略测试失败
②application.yml
- application.properties→application.yml,应用程序配置文件的格式由properties修改为yml,yml文件的结构更为清晰
- yml中配置数据源,包括驱动类、数据库地址、用户名、密码等
- yml中配置数据库架构变化时的更新策略为update:必要时才更新。其他还有全部删除后更新、每次会话删除更新等。开发时配置为update;在项目部署后,可将该项配置为none,避免在生产数据库中更新造成数据丢失
- yml中配置jpa的show-sql为true,方便开发时在控制台查看和定位问题
③为不同的环境添加个性化的应用程序配置文件
- 比如开发环境下的application-dev.yml和生产环境下的application-prd.yml,将共同的配置留在application.yml中
4、启动应用测试
①可在控制台看输出,出现Started XXXApplication in xxx seconds,表示运行成功
②可在yml中配置日志级别,开发时输出详细信息,生产环境根据需要记录关键信息
③应用启动并测试成功后,将创建的项目框架推送到远程仓库
三、业务分析
1、分析业务绘制流程图
①什么是业务流程图
进行需求分析时,要明确某一业务,除了识别涉及的业务对象、业务对象各种职能外,还要分析业务的运转过程,在实际业务信息化的过程中,分析当前存在的不合理的流程,帮助用户优化业务流。
②业务流程图的类型、规范及组成要素
类型:基本业务流程图、泳道图、活动图
规范:开始符号、结束符号、流程/活动、流程线、分支
③该项目的参与者
④该项目的参与者各自流程/活动的名称,及相应的顺序
2、使用用例图描述功能需求
①什么是用例图
- 用例图(use case)是表述用例、参与者以及它们之间关系的图,从用户的角度来描述对信息系统的功能需求,分析产品的功能和行为
- 通过用例图,可以明确系统的用户有哪些、用户需要系统提供的服务有哪些、用户为系统提供哪些服务
- 用例建模的一般方法:识别参与者→识别用例→建立用例关系→编写用例描述
②用例图的构成及规范
- 参与者actor:角色、系统的用户,以人形符号表示
- 用例use case:用户期望系统所能提供的服务或功能,用例名为动词+名词,符号为椭圆并在内部显示用例名。用例名要使用业务语言而不是技术语言,比如可以说上架商品,而不能是插入一条商品数据
- 用例关系:描述参与者、用例之间的连接线,有包含、扩展、泛化等
③识别用例
从业务中寻找用例是非常关键的一步,需要关注以下几个问题:
- 系统有哪些参与者(使用者、维护管理者、接入设备如扫码枪等、外部API等)
- 各参与者希望的功能(参与者角度主动做的事情,可询问业务人员或代入角色)
- 系统主动做的事(比如微博禁言72小时自动解禁功能),仅2)则会遗漏
- 外部事件引发的系统需要做的事(比如应急指挥系统中引用天气API)
- 定时自动操作(比如货运18点统计),不涉及某个业务人员,也容易遗漏//对照业务回答完以上问题,基本就不会遗漏用例
④撰写用例描述
用例图没有描述系统行为的细节,所以需要文字对其进行详细描述。主要包括:
- 用例编号:最好能从编号识别出子系统、模块。比如以S表示电商子系统C表示购物车模块,则编号可以类似S-C-01、S-C-02
- 用例名称:即use case图中的名称
- 用例概述:描述用例的用途,包括执行用例的用户、执行可该用例起到了什么作用
- 前置条件:本用例必须满足的条件。如要求另一个用例已经执行或用户有运行本用例权限。并非每个用例都有前置条件
- 基本事件流:从用户角度描述执行本用例的具体步骤
- 扩展事件流:可执行也可不执行的事件,比如加入购物车,可以先登录,也可以不登录匿名加入
- 后置条件:用例执行完成之后,可能的结果,比如登录系统,后置条件就是登录成功进入系统或登录失败提示错误
- 优先级:用例的优先次序,如果是被依赖的用例,其优先级则高于依赖它的用例
⑤分析用例关系
- 参与者之间的关系基本是泛化关系(一般与特殊),以空心箭头表示;参与者与用例之间基本就是关联关系,一般用单箭头表示
- 包含关系:一个用例的行为包含了另一个用例,要完成此用例则必须执行所包含的用例,比如在ATM上取款,取款这个用例与输入卡密码这个用例就是包含关系,因为不输入卡密码就无法取款。包含关系使用虚线箭头表示,箭头指向被包含的子用例,线上标注<<include>>
- 扩展关系:一个用例本来是完整的用例,即使没有扩展用例的参与,业务也是完整的,只有在特定情况下扩展用例才执行。比如在ATM上取款,取款这个用例和打印凭条这个用例就是扩展关系,取款可以打印也可以不打印凭条。扩展关系同样使用虚线箭头表示,箭头指向基本用例,线上标注<<extend>>
- 泛化关系:泛化关系如同继承,子用例继承了父用例的所有结构、行为和关系,是其特殊形式。比如电商系统用户结账,可以通过支付宝花呗支付、也可以通过银行卡支付。泛化关系的表示形式与参与者的表示形式一致
四、Web项目开发的基础知识点
1、前端开发
- HTML(超文本标记语言):用于构建网页结构和内容。
- CSS(层叠样式表):用于设置网页的样式和布局。
- JavaScript:用于实现网页的交互和动态效果。
2、后端开发
- 服务器端语言(如Python、Java、PHP等):用于处理服务器端的逻辑和数据。
- Web框架(如Django、Flask、Spring等):用于简化后端开发流程,提供各种工具和功能。
- 数据库(如MySQL、MongoDB等):用于存储和管理数据。
3、网络通信
- HTTP(超文本传输协议):用于客户端和服务器之间的通信,包括请求和响应等。RESTful
- API:一种设计风格,用于创建可靠、灵活和易于扩展的Web服务。
4、前后端交互
- AJAX(异步JavaScript和XML):用于在不重新加载整个页面的情况下,与服务器交换数据并更新部分页面内容。
- JSON(JavaScript对象表示法):一种轻量级的数据交换格式,常用于前后端数据传输。
5、版本控制
- Git:用于对代码进行版本控制和团队协作,能够有效地管理代码的变更和历史记录。
6、安全性
- 跨站脚本攻击(XSS):一种常见的Web安全漏洞,需要采取相应的防范措施。
- CSRF(跨站请求伪造):需要了解并实施有效的CSRF保护机制。
7、其他工具和技术
-
前端框架(如React、Angular、Vue.js等):用于构建复杂的前端应用。
-
包管理工具(如npm、yarn等):用于管理和安装项目依赖的软件包。
-
构建工具(如Webpack、Gulp等):用于自动化构建、打包和优化前端资源。
-
测试工具(如Jest、Mocha等):用于编写和运行测试用例,确保项目的质量和稳定性。