栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

项目管理流程+工具总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目管理流程+工具总结

本文是依据过往项目整理出来的项管流程总结。

项目一:

流程上:

参与此项目过程时,项目经理分享给我们的一个 软件开发流程图 :

四个阶段:① 需求阶段;② 开发阶段;③ 系统测试阶段;④ 上线阶段。

四个角色:① 产品团队;② 开发团队;③ 测试团队;④ 运维团队。

具体表现(具体到时间节点上):

规范上:

(1) 阿里规范

遵循阿里巴巴的规范《阿里巴巴Java开发手册1.7.0(嵩山版)》

链接:阿里巴巴Java开发手册1.7.0_嵩山版_.pdf · master · YuBooy / 项目管理流程总结md图片 · GitCode

具体实际使用上:

① 数据库:数据库建表相关:索引、类型、非空

② IDEA 阿里规范插件

(2) swagger注解

此项目使用 Knife4j 工具来完成 swagger 的集成

knife4j是什么:百度安全验证

使用参考:knife4j的使用_快哉此风的博客-CSDN博客_knife4j

knifej 使用步骤:

① 添加依赖:


    com.github.xiaoymin
    knife4j-spring-boot-starter
    2.0.2

② 创建配置文件:

@Configuration
@EnableSwagger2
@EnableKnife4j
@import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {
​
    @Bean
    public Docket api() {
        return new Docket(documentationType.SWAGGER_2)      // 选择swagger2版本
                .apiInfo(apiInfo())         //定义api文档汇总信息
                .select()
                .apis(RequestHandlerSelectors
                        .basePackage("com.dave.controller"))  // 指定生成api文档的包
                .paths(PathSelectors.any())     // 指定所有路径
                .build();
    }
​
    
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("文档标题")     // 文档标题
                .contact(new Contact("name", "url", "mail"))   //联系人信息
                .description("描述")      //描述
                .version("0.1")     //文档版本号
                .termsOfServiceUrl("http://localhost:8080")     //网站地址
                .build();
    }
}

③ 使用 swagger 注解

④ 通过访问http://localhost:端口号/doc.html 即可见到knife4j的api文档页面页面

(3) @Validated 注解参数校验

为了软件系统的安全,接口参数除了前端要校验,后端也需要校验。通过引入 Validation 实现使用注解完成参数的校验。

常用注解:

@Validation使用在接口参数上,后续注解校验才生效
@NotNull检查带注解的值是否不为null
@NotEmpty检查带注释的元素是否为null或空
@NotBlank检查带注解的字符序列是否不为null,且长度是否大于0。与@NotEmpty的区别在于,此约束只能应用于字符串,并且尾部空白被忽略
@Range(min, max)检查带注解的值是否介于(包括)指定的最小值和最大值之间
@Pattern(regex, flag)检查带注解的字符串是否与正则表达式regex匹配

接口参数使用 @Validated ,后面User实体类中的参数才能检验

    @ApiOperation(value = "登录", notes = "登录接口")
    @ApiImplicitParam(name = "condition", value = "用户登录所需信息", dataType = "User")
    @PostMapping("/login")
    public CommonResult login(@RequestBody @Validated User condition) {
        userService.userLogin(condition);
        return CommonResult.success(null,"登录成功");
    }
public class User implements Serializable {
​
    @NotEmpty(message = "密码不能为空")
    @Pattern(regexp = "^1(3|4|5|7|8)\d{9}$",message = "手机号码格式错误")
    @TableField(value = "phone_number")
    private String phoneNumber;
​
    @NotEmpty(message = "密码不能为空")
    private String password;
}

参考:@Validated注解详解,分组校验,嵌套校验,@Valid和@Validated 区别,Spring Boot @Validated_昌杰的攻城狮之路的博客-CSDN博客_validated

和:Bean Validation具体描述_BrightZhuz的博客-CSDN博客

(4) mybatis plus lamda表达式使用

使用lambdaQuery() 可以调用mybatis plus 中的方法从而可以不用写mapper.xml文件

更重要的是可以通过 方法引用 的方式来使用实体字段名的操作,避免直接写数据库表字段名时无意的错写

示例:

@Override
public List selectByCondition(User condition) {
    List list = this.lambdaQuery()
            .eq(ObjectUtil.isNotNull(condition.getId()),User::getId, condition.getId()) 
            .like(StrUtil.isNotBlank(condition.getName()), User::getName, condition.getName())
    return list;
}

参考1:lambda四种表达形式

mybatis-plus之四种lambda方式_掌握月的博客-CSDN博客_lambdaquerywrapper.select()

一、LambdaQueryWrapper<>

二、QueryWrapper<实体>().lambda()

三、Wrappers.<实体>lambdaQuery()

四、LambdaQueryChainWrapper<实体>(xxxxMapper)

参考2:条件构造器

MyBatis-Plus | 最简单的查询操作教程(Lambda)_10000guo的博客-CSDN博客_mybatisplus查询最大值

参考3:链式查询

MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用_leomoon-CSDN博客_lambdaquerywrapper和querymapper

(5) 工具类的使用:ObjectUtil.isNotEnpty()等

项目中应使用集成的工具类来加速工程的开发,更重要的是使用工具类能规范项目代码,同时减少错误。

public class ObjectUtil {
    
    public static boolean isNull(Object obj) {
        //noinspection ConstantConditions
        return null == obj || obj.equals(null);
    }
}

使用示例:

    @Override
    public User selectUserById(Long id) {
        User user = this.getById(id);
        if (ObjectUtil.isNull(user)){
            Asserts.fail("查无此用户");
        }
        return user;
    }
public class CollUtil {
    
    public static boolean isNotEmpty(Collection collection) {
        return false == isEmpty(collection);
    }
}

使用示例:

    @Override
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
    public void add(BrowsingHistory browsingHistory) {
        //同一用户访问同一个项目,则只存储最新的一个数据
        LambdaQueryWrapper eq = new LambdaQueryWrapper()
                .eq(BrowsingHistory::getUserId, browsingHistory.getUserId())
                .eq(BrowsingHistory::getProjectId, browsingHistory.getProjectId());
        List list = baseMapper.selectList(eq);
        if (CollUtil.isNotEmpty(list)){
            int i = baseMapper.update(browsingHistory,eq);
            if (i==0){
                Asserts.fail("历史记录更新失败");
            }
        }else{
            int i = baseMapper.insert(browsingHistory);
            if (i==0){
                Asserts.fail("历史记录存入失败");
            }
        }
    }

Java中常用的16个工具类:java中常用的16个工具类 - ppjj - 博客园

工具上:

代码工具:IDEA + Gitee

接口 API 调试工具:Apifox

Apifox 官网地址:Apifox - API 文档、调试、Mock、测试一体化协作平台 - 接口文档工具,接口自动化测试工具,接口Mock工具,API文档工具,API Mock工具,API自动化测试工具

演示:

项目二: 流程上:

具体在时间节点上的表现:

开发环境:

本地开发环境配置:输入密码 · 语雀

规范工具使用,具体包括以下 3 点:

① GitLab的配置和使用

② IDEA-PULL和PUSH代码

③ IDEA-代码分支管理

工具上:

(1) 表设计工具:CHINER[元数建模]

官网地址:CHINER[元数建模]v3.0:最好用的国产开源数据库建模平台 - -龙猫- - OSCHINA - 中文开源技术交流社区">PDMan升级换代至->CHINER[元数建模]v3.0:最好用的国产开源数据库建模平台 - -龙猫- - OSCHINA - 中文开源技术交流社区

其他工具:

(2) 禅道

通用的项目管理软件,用于分派开发任务(进度管控)

官网地址:项目管理软件 开源项目管理软件 免费项目管理软件 - 禅道开源项目管理软件

官网演示:

(3) GitLab

我的理解:私有码厂

官网地址:极狐GitLab官方网站_DevOps平台

(4) Yapi

我的理解:私有服务器上的 ”postman“

官网地址:YApi 接口管理平台

官网展示:

1项目页左侧的 “接口列表” 展示了该项目下的所有接口,右侧默认显示该项目下所有接口的列表。

2点击左侧的某个接口,右侧会出现“预览”、“编辑”和“运行”。

3点击左侧的 “测试集合” 使用测试集功能。

4点击二级导航的“设置”,项目组长即可编辑项目信息和管理成员列表。

5点击二级导航的“动态”,即可查看项目的操作日志。

项管流程、工具外的分享:一个完整的开源的后台管理系统,按需修改即能快速部署一套后台管理系统

后台管理系统开源模板

诺依:RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0|SrpingCloud|Alibaba|MyBatis|Shiro|OAuth2.0|Thymeleaf|BootStrap|Vue|Element-UI||www.ruoyi.vip

官方演示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号