《管理表格系统》开发心得

浅浅记录一下自己开发两个月的心得,毕竟初入职场

一、写一个自己的脚手架【仅后端】

1.springboot版

2.springcloud版

二、注意写WBS

1要件定义
企划构想
要求定义
要件定义(总结功能需求、前端样式需求、非功能性需求、开发环境、部署需求、可行性调查)
2基本设计以及详细设计
功能模块设计
数据库设计
接口设计
成果物业务流程图、功能设计文档、前端页面展示文档、表单设计文档、数据库表excel设计、接口文档、WBS计划
3开发
分模块
4总体测试
结合测试以及修复bug
5反馈二次修正
6部署发布

三、以脚手架开发,初入职场,技术全点后端了,前端一窍不通。

四、此次项目心得

1、估计工时往多的说

2、如果是controller控制器的接受参数和返回参数,都要新写form和vo

@JsonFormat(pattern = "yyyy-MM")@NotEmpty(message = "dateStart内容不能为空")@Pattern(regexp = "^\\d{4}-(0[1-9]|1[0-2])$", message = "dateStart内容不正确")private String dateStart;

如果是不想返回的参数标注@JsonIgnore,或者单个字母打头要加@JsonProperty("cPrice")

 3.查询有交集的记录范围

 <include refid="relatedProjectTechnicianQuery"/>WHERE rpt.del_flag = '0'AND COALESCE(rpt.c_begin_month, '2000-01-01') &lt;= #{dateEnd}AND(rpt.stop_month IS NOT NULL AND COALESCE(rpt.stop_month, '9999-12-01') &gt; #{dateStart}OR rpt.stop_month IS NULL AND  COALESCE(rpt.c_end_month, '9999-12-01') &gt; #{dateStart})

4.使用领域驱动设计的思想,每次都set字段,而不是简单的bean属性复制

5.List的过滤器使用

   public List<MonthDataListVO> filterByRange(List<MonthDataListVO> monthDataListVOS, int minRange, int maxRange) {return monthDataListVOS.stream().filter(data -> data.getYearMonth() >= minRange && data.getYearMonth() <= maxRange).collect(Collectors.toList());}
  public void sortProjectTechnicianList(List<ProjectTechnicianRow> projectTechnicianRows) {projectTechnicianRows.sort((o1, o2) -> {int cmp = o1.getCustomerName().compareTo(o2.getCustomerName());if (cmp == 0) {cmp = o1.getProjectName().compareTo(o2.getProjectName());if (cmp == 0) {cmp = o1.getBelongCompany().compareTo(o2.getBelongCompany());if (cmp == 0) {cmp = o1.getTechnicianId().compareTo(o2.getTechnicianId());if (cmp == 0) {cmp = o1.getCreateTime().compareTo(o2.getCreateTime());}}}}return cmp;});}
  //并通过项目名进行排序basicProjectEntities.sort(Comparator.comparing(BasicProjectEntity::getProjectName));
 List<Long> projectTechnicianIds = newTechnicianListVOS.stream().map(RelatedProjectTechnician::getProjectTechnicianId).collect(Collectors.toList());
 public List<ProjectMonthListVO> sortJobTechnicianListVO(List<ProjectMonthListVO> jobTechnicianListVOS) {jobTechnicianListVOS.sort(new Comparator<ProjectMonthListVO>() {@Overridepublic int compare(ProjectMonthListVO o1, ProjectMonthListVO o2) {int result = o1.getProjectName().compareTo(o2.getProjectName());if (result == 0) {result = o1.getBelongCompany().compareTo(o2.getBelongCompany());}return result;}});return jobTechnicianListVOS;}
    public static  List<TechnicianListVO> getTechniciansInRange(List<TechnicianListVO> technicianListVOS, String month) {List<TechnicianListVO> count = technicianListVOS.stream().filter(record -> isOverlapping(record, DateUtils.toLocalDateFirstDay(month))).collect(Collectors.toList());return count;}public static boolean isOverlapping(TechnicianListVO record, LocalDate tempMonth) {LocalDate tempStart =DateUtils.toLocalDateFirstDay( record.getcBeginMonth());LocalDate tempEnd = DateUtils.toLocalDateFirstDay( record.getcEndMonth());if(!StringUtils.isEmpty(record.getStopMonth())){tempEnd= DateUtils.toLocalDateFirstDay( record.getStopMonth());}// 判断 tempMonth 是否在 tempStart 和 tempEnd 之间,包括左边界return !tempMonth.isBefore(tempStart) && tempMonth.isBefore(tempEnd);}

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

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

相关文章

云计算的三种服务模式

云计算的三种主要服务模式分别是基础设施即服务&#xff08;IaaS&#xff09;、平台即服务&#xff08;PaaS&#xff09;和软件即服务&#xff08;SaaS&#xff09;。每种服务模式都提供不同级别的抽象和管理&#xff0c;满足不同的需求和用例。以下是对这三种服务模式的详细介…

Linux云计算 |【第一阶段】ENGINEER-DAY5

主要内容&#xff1a; SELinux、系统故障修复、HTTPD/FTP服务搭建、防火墙策略管理、服务管理 一、SELinux安全制度 SELinux&#xff08;Security-Enhanced Linux&#xff09;&#xff0c;美国NSA国家安全局主导开发&#xff0c;一套增强Linux系统安全的强制访问控制体系&…

【Rust光年纪】Rust 中常用的数据库客户端库:核心功能与使用场景

探秘 Rust 语言下的多种数据库客户端库&#xff1a;从安装到实际应用 前言 在现代的软件开发中&#xff0c;数据库是不可或缺的一部分。为了与数据库进行交互&#xff0c;开发人员需要使用各种数据库客户端来执行操作、构建查询等。本文将介绍一些用于 Rust 语言的常见数据库…

【Android】 dp与sp,加冕为王

目录 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 基础知识&#xff1a; ppi pt DPI 的定义和重要性 Android 中的 DPI 级别 px dp&#xff08;Density Independent Pixels&#xff09; sp&#xff08;Scale-independent Pixels&#xff09; 安卓的dp/dip、sp 虚拟…

在 PostgreSQL 中怎样进行数据库的容量规划?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 中怎样进行数据库的容量规划&#xff1f;一、为什么容量规划如此重要&#xff1f;二、影…

JDBC技术

JDBC提供了在Java程序中直接访问数据库的功能 JDBC连接数据库之前必须先装载特定厂商提供的数据库驱动程序&#xff08;Driver&#xff09;&#xff0c;通过JDBC的API访问数据库。有了JDBC技术&#xff0c;就不必为访问Mysql数据库专门写一个程序&#xff0c;为访问Oracle又专门…

Vue项目实现单点登录(SSO)的逻辑和基本流程

项目集群如果一个一个登录会非常麻烦&#xff0c;尤其是一些大企业或者多项目使用一套体系数据的环境中&#xff0c;这时候登录中心也就应用而生&#xff0c; 今天简单说一下vue sso的实现思路&#xff0c;vue项目实现单点登录&#xff08;SSO&#xff09;通常涉及以下几个步骤…

LabVIEW和Alicat Scientific质量流量计实现精确流量控制

在现代工业自动化和科研实验中&#xff0c;精确的气体流量控制至关重要。这里将介绍一个使用LabVIEW与Alicat Scientific公司的质量流量计实现流量控制的项目。项目采用Alicat Scientific的质量流量计&#xff08;型号&#xff1a;M-200SCCM-D&#xff09;&#xff0c;通过LabV…

AB测试介绍

AB测试是一种类似于对照实验的方法&#xff0c;广泛应用于产品开发、优化和营销等领域&#xff0c;特别是在游戏设计和发行过程中。以下是对AB测试的详细解释&#xff1a; 一、定义与原理 AB测试&#xff0c;又称A/B测试&#xff0c;是一种统计学上的假设检验方法。它将数据分…

R绘制Venn图及其变换

我自己在用R做各种分析时有不少需要反复用到的基础功能&#xff0c;比如一些简单的统计呀&#xff0c;画一些简单的图等等&#xff0c;虽说具体实现的代码也不麻烦&#xff0c;但还是不太想每次用的时候去找之前的代码。 索性将常用的各种函数整成了一个包&#xff1a;pcutils…

手撸俄罗斯方块——工程介绍

概述 接下来我们将从工程角度分析本项目。本项目采用大仓模式&#xff0c;利用 yarn lerna 对项目进行管理&#xff0c;项目结构如下&#xff1a; . ├── packages │ ├── core 俄罗斯方块的核心逻辑 │ ├── console 俄罗斯方块的控制台版本的实现 │ ├── …

【SpringBoot】单元测试之测试Service方法

测试Service方法 SpringBootTest public class UserServiceTest{ Autowired private UserService userService; Test public void findOne () throws Exception{ Assert.assertEquals("1002",userService.findOne()); } } 测试Controller接口方法 Runwith(S…

TCP Socket编程示例

介绍 本文主要学习TCP socket编程的代码。socket常用于客户端发起连接&#xff0c;服务端一般都会用一些高性能网络框架&#xff0c;不会让你手写socket服务端的。客户端代码基本都差不多。 服务端 server.cpp: #include <iostream> #include <unistd.h> #incl…

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中&#xff0c;简要介绍了CP_AUTOSAR分层…

ByteBuf释放注意的问题

Bytebuf需要释放&#xff0c;否则可能导致OOM。 如果bytebbuf传递到了head或tail&#xff0c;不需要我们关心。 在head和tail里&#xff08;head实现了outhandler、inhander。tail实现了inhander&#xff09;&#xff0c;底层自动调用了bytebuf.release。 其他情况需要我们手动…

MySQL(终章)视图, 用户管理, C连接MySQL.

目录 1.视图; 2.用户管理; 1.视图: 1.1 概念和基本操作: 视图本质就是表结构, 虚拟表. 视图和基表数据的改变都会相互影响. 创建视图语法: create view 视图名 as select语句&#xff1b; 修改视图: update set ; 删除视图: drop view 视图名&#xff1b; 1. 2 视图使用规则: …

集成学习的艺术:使用Scikit-Learn实现模型融合

集成学习的艺术&#xff1a;使用Scikit-Learn实现模型融合 在机器学习领域&#xff0c;集成学习是一种强大的技术&#xff0c;它通过结合多个模型的预测来提高整体性能。Scikit-Learn&#xff08;简称sklearn&#xff09;&#xff0c;作为Python中最受欢迎的机器学习库之一&am…

IP地址:由电脑还是网线决定?

IP地址&#xff1a;由电脑还是网线决定&#xff1f; 在互联网时代&#xff0c;IP地址是我们进行网络通信的基础。然而&#xff0c;对于IP地址究竟是由电脑决定还是由网线决定的问题&#xff0c;不少人可能存在疑惑。本文将从IP地址的定义、分配方式以及影响因素等方面进行探讨…

减分兔搜题-12123学法减分20题目及答案 #媒体#职场发展

对于即将参加驾驶考试的朋友来说&#xff0c;掌握一些经典题目和答案至关重要。今天&#xff0c;我就为大家带来了这样一份干货——20道驾驶考试题目和答案&#xff0c;助你轻松应对考试&#xff01;这些题目不仅包括了考试中常考的内容&#xff0c;还有针对难点和重点的详细解…

时序数据库-02-聊一聊时序数据库

时序数据库系列 时序数据库-01-时序数据库有哪些&#xff1f;为什么要使用 时序数据库-02-聊一聊时序数据库 时序数据库-03-pentsdb-分布式时序数据库 时序数据库-04-InfluxData-分布式时序数据库 时序数据库-05-TDengine 是一款开源、高性能、云原生的时序数据库 (Time-S…