项目实战-药品采购系统-day01

目标:项目背景,需求,环境的搭建

难点:环境的搭建

1.学习方法:

      一个项目:架构师、高级程序员、一般程序员

            难度很大但是普通的程序员做很简单

      所以自己对自己的定位要准确(一般程序员)。

                也就是独立模块开发

                  (企业最需要的人)培养的是独立模块开发的人:根据需求去编码实现,实现符合客户需求的功能

      要求:1,记笔记(开会中也需要记笔记)

         2.遇到问题要去总结(问同事):工作日志。

2.项目背景:

      工作中首先要了解项目的背景:为什么产生的,项目的作用,解决了什么问题。

      医药采购:

            医疗行业的问题:药价贵

                        早期监管部门没法去监管医院和供应商,都是医院和供应商之间线下交易。

            解决的办法:创建以省为单位的医药招标平台:录入药品的信息:药品名称、通用名,价格.....

                  药品监管单位查询药品信息,货比三家,从中挑选中标药品,确定中标药品目录,确定中标价格(统一价)

                  

                  还包括了省级的采购平台:把招标平台的中标目录引导了该平台,医院和供应商在该平台交易

                              监管部门只需要通过该平台监管即可。

                    现在要求所有卫生室、医院都可以上网采购。

3.项目概述:

      理解项目背景要去画图理解该项目是怎么回事。

4.分析开发该系统:

          如何去分析需求呢:

                    1.找到用户的角色:

                            1.监管单位

                                  市卫生局(药政科、卫生院(负责审核医药的采购单)):负责通过采购平台进行监管,主要监管医院和供货商的业务交易情况。

                            2 医院:(采购方):通过平台进行药品的采购

                              卫生室:最小的医疗单位

                            3.供货商:通过平台进行商品的销售

                            4.系统管理员(任何系统至少有一个):整个系统的维护,配置,备份。

                      每一个角色可能还有子账号。

5.业务流程(角色在系统中干什么):

                 不同用户共同完成一个业务的流程(画图):各自在业务流程中需要做什么

5.业务功能模块(开发的时候分的是系统架构模块和这个无关)

      将相似或一致的功能组成一个模块。

        采购单管理模块:

                1.创建采购单

                2.提交采购单

                ........

        模块集成完了后,明确各个模块中的功能是谁用的。

6.外部接口(来源于外部系统的数据):

      1.省级药品目录接口

      2.系统管理接口:通过单点登录系统进行用户认证,将第三方系统中的区域管理,系统参数配置等功能接入。

7.需求的分析:

      1.用户的需求分析:

              进行需求调研,一份用户需求报告及用户需求文档。

      2.系统的需求分析:

              依据用户需求文档,进行系统需求分析,编写“系统规格需求说明书”。

      3.系统需求规格说明书:

              描述:

              需求用例:功能描述,功能接口,前置条件(功能的约束条件(达到什么条件才能使用该功能),后置条件)、事件流(功能的操作流程),可选事件流。

8.项目的配置与设计:

      1.企业中最常用的采用模型是增量模型。

      2.搭建数据库

      3.模块的划分方法:

      4.系统设计:

            系统概要设计(必须要做):

                    1.设计内容:

                              1.主要系统框架

                           2.系统内外部的接口:

                                    内部接口:本平台各个子系统的的接口,模块之间的接口

                                    外部接口:和其他系统的接口

                                    网络部署:

              成果:系统概要设计文档

            系统详细设计(不是必须):

              成果:系统详细设计文档

              设计内容:类、接口、及方法的描述

              程序员参考此文档进行编码

      系统的模块划分:

              系统技术架构的模块:依据业务模块进行划分。

              划分的方法:

                    1.以技术架构的纵向拆分方法

                        优点:分层清晰,方便程序员开发。

                      企业中常见的是将系统功能进行抽取组成一个子系统,让其他系统公用该子系统

                      缺点:需要去各层拷贝代码,如果有其他功能依赖该功能抽取代码,系统报错。

                    2.以业务模块的横向拆分方法

                        将相同业务模块的代码抽取出

                        优点:按照模块分包更加的清晰,方便开发维护,适合大中项目

                        缺点:虽然按照模块将包创建,但是模块共存于一个工程,每个模块的运行都必须将其他模块同时进行编译部署。开发效率低。
                    3.以maven作为架构进行模块的划分

                        maven是一个项目的管理工具:maven提供规范的依赖管理。

                                      1.将每个模块作为一个maven工程。

系统的架构:

       1.技术架构:

              springMVC+mybatis+spring+mysql

       2.搞清那些子系统可以以后复用。

     

1.base系统基础模块

   1.包括系统管理功能,其他业务都依赖于该base模块。

   2.base模块依赖于技术架构模块

2.系统业务模块:

    依赖于base模块

3.常用工具类模块

    将常用的工具抽取出来组成一个单独的maven工程。

    base模块依赖于工具类模块。

  架构图绘制

 

  最终要创建的maven工程:

              1.系统主工程模块

              2.系统工具类模块

              3.技术架构模块

9.配置maven环境

        

              

转载于:https://www.cnblogs.com/zhaogot/p/10234505.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《深入理解Java虚拟机》-读书笔记(第一、第二部分)

大家好,我是烤鸭: 《深入理解Java虚拟机》-读书笔记(第一、第二部分)。 第一部分:走进Java 第1章 走进Java 1.1 概述 摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想;…

BZOJ1189: [HNOI2007]紧急疏散evacuate(二分答案,最大流)

Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域。每个格子如果是.,那么表示这是一块空地;如果是X,那么表示这是一面墙,如果是D,那么表示这是一扇门,…

[vue]vue渲染模板时怎么保留模板中的HTML注释呢?

[vue]vue渲染模板时怎么保留模板中的HTML注释呢&#xff1f; <template comments>... </template>个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

redis设置为null问题

查看源码后发现&#xff0c;redis没有删除方法&#xff0c;本想给他设置为null,但是redis报错&#xff0c;所有仔细想了一下&#xff0c;发现redis提供了一个时间限制方法&#xff0c;所有可以让redis的时间限制为1s&#xff0c;就想当于删除redis中的这个K。 转载于:https://w…

nacos 返回 403 unknown user 太他么坑了 源码解析

大家好&#xff0c;我是烤鸭&#xff1a; nacos 真的是有点意思&#xff0c;有时候哪怕某个jar包版本冲突了都可能导致莫名其妙的错误&#xff0c;源码走一波吧。 当前版本 <dependencies><dependency><groupId>org.springframework.boot</groupId>&…

[vue] Vue.observable你有了解过吗?说说看

[vue] Vue.observable你有了解过吗&#xff1f;说说看 让一个对象可响应。Vue 内部会用它来处理 data 函数返回的对象。返回的对象可以直接用于渲染函数和计算属性内&#xff0c;并且会在发生改变时触发相应的更新&#xff1b;也可以作为最小化的跨组件状态存储器。个人简介 …

[vue] 你知道style加scoped属性的用途和原理吗?

[vue] 你知道style加scoped属性的用途和原理吗&#xff1f; 在标签上绑定了自定义属性&#xff0c;防止css全局污染 但是很多时候使用ui框架如果加scope就不能覆盖&#xff0c;这个时候一般写sass 会在最外层包裹该组件名的id 就可以不使用scoped 了个人简介 我是歌谣&#x…

研发效能提升 maven依赖扫描 版本统一 漏洞版本提醒

大家好&#xff0c;我是烤鸭&#xff1a; 整点干货&#xff0c;代码级别的版本统一&#xff0c;以及漏洞版本的扫描。 背景 两个方面吧。 项目整体的架构不统一&#xff0c;springboot/cloud 配置/注册中心也用的不统一&#xff0c;版本更是五花八门&#xff0c;怎么快速的找…

[vue] 你期待vue3.0有什么功能或者改进的地方?

[vue] 你期待vue3.0有什么功能或者改进的地方&#xff1f; 用尤大的话说就是各种速度提升n倍。我希望在依赖node_modules能够做出调整&#xff0c;文件数目太多&#xff0c;开启项目每次都要下载个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&…

Spring boot actuator端点启用和暴露

1.启用端点 默认情况下&#xff0c;除了shutdown端点是关闭的&#xff0c;其它的都是启用的。配置一个端点的启用&#xff0c;使用management.endpoint..enabled属性&#xff0c;下面的例子是启用shutdown端点&#xff1a; management.endpoint.shutdown.enabledtrue如果你个人…

java执行sql慢 navicat不慢 见鬼了

大家好&#xff0c;我是烤鸭&#xff1a; 有点意思的问题&#xff0c;代码提示接口超时(10s)&#xff0c;接口逻辑很简单&#xff0c;就一个sql查询。本来也想是sql慢&#xff0c;可是拿sql去Navicat执行下&#xff0c;一点不慢(50ms)。 环境 DB&#xff1a;SqlServer 连接池…

[vue] vue边界情况有哪些?

[vue] vue边界情况有哪些&#xff1f; 访问根实例、访问父组件、子组件个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

函数的基础

函数的初识&#xff1a; 封装一个功能。 def 函数名(): 函数体 函数的返回值&#xff1a;return 1,结束函数。 2&#xff0c;返回给执行者&#xff08;函数名()&#xff09;值。 return ----> None return 单个值----> 单个值 return 多个值----> &#xff08;多…

windows docker mongodb

大家好&#xff0c;我是烤鸭&#xff1a; 今天翻博客&#xff0c;发现4年前的一篇草稿&#xff0c;抽空给完善下。原本草稿写的是linux下mongo使用&#xff0c;还有java的一些api&#xff0c;现在就用容器实现下。 容器部署 官方网站&#xff1a; https://www.mongodb.com/ w…

[vue] 如何在子组件中访问父组件的实例?

[vue] 如何在子组件中访问父组件的实例&#xff1f; this.$parent拿到父组件实例 this.$children拿到子组件实例&#xff08;数组&#xff09;个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录…

[vue] watch的属性用箭头函数定义结果会怎么样?

[vue] watch的属性用箭头函数定义结果会怎么样&#xff1f; 因为箭头函数默绑定父级作用域的上下文&#xff0c;所以不会绑定vue实例&#xff0c;所以 this 是undefind个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢…

tensorflow的keras 与 原生keras几点比较

tensorflow的keras 与 原声keras几点比较&#xff0c;不是全面的比较&#xff0c;因为只是就使用时候发现的差异&#xff01; 使用函数式API时&#xff1a; 1. 定义模型模型时&#xff0c;用到输入的张量&#xff0c;也就是给Input的tensor赋值为你的inputs&#xff0c;在编译时…

[vue] 在vue项目中如何配置favicon?

[vue] 在vue项目中如何配置favicon&#xff1f; 也可以在当前项目部署的端口主目录下存放favicon.ico文件&#xff0c;默认就会显示该图标个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与…

Is the byte array a result of corresponding serialization for DefaultDeserializer

大家好&#xff0c;我是烤鸭&#xff1a; 问题记录&#xff0c;上线之后懵逼的问题。只能回滚?每次都是上线来暴击&#xff0c;不然多查查文章也不至于这么被动。 报错日志 org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nes…