创意之路的里程碑:平淡但不普通的创作历程

news/2024/7/24 2:37:58 标签: java, 开发语言

目录​​​​​​​

1. 创作初衷

-> 文章内容主要包含

2. 收获

3. 日常

4. 努力成长

5. 憧憬 


1. 创作初衷

成为创作者的第730天了, 原来也是分享和记录一些工作日常的点点滴滴, 开发实战中遇到的坎坷,

写技术类博客的目的就是让看我博客的人少走弯路, 也避免了记忆的遗忘,重蹈之前的覆辙; 文章尽可能的提供不同解决方案, 有的地方也会写的不全, 部分文章也会持续更新, 文章质量也会越来越好

不管昨天发生了什么,不管昨天的自己有多难堪,有多无奈,有多苦涩,过去的就不会再来,也无法更改。就让昨天把所有的苦、所有的累、所有的痛都远远地带走,活好当下才是对人生最大的珍惜。今天是用来努力的,明天则是充满希望的。

-> 文章内容主要包含

1. springboot的基本开发操作

2. 生产环境下出现的问题以及解决方案

3. 微服务架构下的配置与服务

4. 常规的linux开发运维 以及docker的部署

5. 也会有一些核心技术, 安全校验, 算法, 设计模式的穿插 


2. 收获

  1. 到今天已经有6793个粉丝, 每天也在稳定增长
  2. 获得116次点赞,内容获得59次评论,获得134次收藏,代码片获得417次分享
  3. 原创文章165篇 最高文章阅读1.6万+

虽然数据不惊人, 但记录了创作中的点点滴滴 


3. 日常

  1. 创作是工作的总结, 是不断学习的动力, 是学习方向的确定
  2. 工作必然是主要的, 但是一味的重复工作, 按照现如今的互联网形势, 就是退步, 并且记忆有限,很多花费大量心思研究的功能,解决方法没有及时总结,留存导致的丢失 遗忘, 是不是很可惜, 而及时性的博客完美解决了此问题, 同时跟记事本比, 多了互动交流

4. 努力成长

例一: 使用java通配符写代码

的的确确的简化了开发, 提高了开发效率, 写的不一定好, 

java">import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

/**
 * 构造器 构造方法封装
 * 测试在 施工,订单,活动的部分代码中
 *
 * @Author pzy
 * @Description: TODO 持续更新 最后统一到全部业务中
 * @Version 2.1.0
 */
public class WrappersConstructor {


    /**
     * 条件构造器之 模糊搜索公共字段 无需代码中new构造器
     *
     * @param t          构造器生成条件
     * @param searchName 模糊搜索字段(前端传递)
     * @param conditions 搜索条件(数据库)
     * @param <T>        类型
     * @return
     */
    public static <T> QueryWrapper<T> wrapperConstructor(T t, String searchName, String... conditions) {

        if (t == null) {
            throw new RuntimeException("error ways at wrapperConstructor[args1,args2,args3...], args1 value of empty is not null");
        }

        return WrappersConstructor.wrapperBaseConstructor(new QueryWrapper<T>(), searchName, conditions);
    }

    /**
     * 条件构造器之 模糊搜索公共字段 测试类型
     *
     * @param searchName 模糊搜索字段(前端传递)
     * @param conditions 搜索条件(数据库)
     * @param <T>        类型
     * @return
     */
    public static <T> QueryWrapper<T> wrapperConstructor(String searchName, String... conditions) {

        return WrappersConstructor.<T>wrapperBaseConstructor(new QueryWrapper<T>(), searchName, conditions);
    }


    /**
     * 条件构造器之 模糊搜索公共字段 弱校验
     *
     * @param queryWrapper
     * @param searchName
     * @param conditions
     * @param <T>
     * @return
     */
    public static <T> QueryWrapper<T> wrapperConstructor(QueryWrapper<T> queryWrapper, String searchName, String... conditions) {

        if (conditions == null || conditions.length < 1) {
            return new QueryWrapper<T>();
        }

        return WrappersConstructor.wrapperBaseConstructor(queryWrapper, searchName, conditions);
    }


    /**
     * 条件构造器之 模糊搜索公共字段 强校验
     * Force Re-Check
     *
     * @param forceCheck   (传递true 校验, 然后抛异常, 不可以不传递)
     * @param queryWrapper
     * @param searchName
     * @param conditions
     * @param <T>
     * @return
     */
    public static <T> QueryWrapper<T> wrapperConstructor(boolean forceCheck, QueryWrapper<T> queryWrapper, String searchName, String... conditions) {
        //用法两个
        if (conditions == null || conditions.length < 1) {
            if (forceCheck) {
                throw new RuntimeException("error ways at wrapperConstructor[args1,args2,args3...], args3 value of empty is not allowed");
            }
            return new QueryWrapper<>();
        }
        return WrappersConstructor.wrapperBaseConstructor(queryWrapper, searchName, conditions);

    }

    /**
     * 条件构造器 模糊搜索基础数据创建
     * 一个搜索名 对应多个搜索条件
     *
     * @param queryWrapper
     * @param searchName
     * @param conditions
     * @param <T>
     * @return
     */
    private static <T> QueryWrapper<T> wrapperBaseConstructor(QueryWrapper<T> queryWrapper, String searchName, String... conditions) {

        return queryWrapper.and(StringUtils.isNotBlank(searchName), wrapper -> {

            wrapper.like(conditions[0], searchName);

            //计算数组
            String[] newConditions = MathUtils.removeFirstElement(conditions);
            if (newConditions.length > 0) {
                //拼接 第一个没有or 后面有or
                for (String condition : newConditions) {
                    wrapper.or().like(condition, searchName);
                }
            }
        });

    }

    /**
     * 操作反转 紧急添加 暂不优化
     *
     * @param queryWrapper
     * @param searchName
     * @param conditions
     * @param <T>
     * @return
     */
    public static <T> QueryWrapper<T> wrapperReverseConstructor(QueryWrapper<T> queryWrapper, String searchName, String... conditions) {

        return queryWrapper.and(StringUtils.isNotBlank(searchName), wrapper -> {

            wrapper.like(searchName, conditions[0]);

            //计算数组
            String[] newConditions = MathUtils.removeFirstElement(conditions);
            if (newConditions.length > 0) {
                //拼接 第一个没有or 后面有or
                for (String condition : newConditions) {
                    wrapper.or().like(searchName, condition);
                }
            }
        });

    }


}

5. 憧憬 

持续创作,  每月五到六篇, 会从java基础 一直到微服务, 包括基础运维 自动化等

持续更新, 同时本人也会保持空杯的心态,持续学习,正如: 学如逆水行舟,不进则退 

将来,就是你站在茫茫大海的这一边,遥望着海的那一边,充满好奇心,憧憬这对海那边的向往,正是对未知的不了解与向往,所以才有了去追逐将来的勇气。 

作者 pzy 


http://www.niftyadmin.cn/n/450975.html

相关文章

Nik Color Efex 滤镜详解(4/5)

油墨效果 Ink 模拟特种相纸和调色剂的冲印效果。 颜色组合 Color Set 可选择不同的颜色组合。 强度 Strength 调整滤镜效果程度。 层次和曲线 Levels & Curves 用色阶和曲线来调整图像的影调和色调。常与其它滤镜组合使用。 通道 Channel 选择调节色调的通道。 通道除了…

QGIS实现tiff影像栅格数据切片教程

实现栅格切片的方式有很多种,geoserver可以,qgis可以。自己写代码也可以,方式非常多。这篇文章介绍一下如何使用QGIS实现栅格切片。 首先我们要去下载一个qgis软件。下载地址如下: Welcome to the QGIS project! 随后我们打开软件,然后把要切片的栅格数据(tiff文件或者…

进程的同步、互斥、通信的区别,进程与线程同步的区别

进程互斥、同步的概念 进程互斥、同步的概念是并发进程下存在的概念&#xff0c;有了并发进程&#xff0c;就产生了资源的竞争与协作&#xff0c;从而就要通过进程的互斥、同步、通信来解决资源的竞争与协作问题。 下面是根据《操作系统教程》3.1.4 中的介绍&#xff0c;整理…

P-Tuning v2: 与微调性能相等的提示性优化

原文&#xff1a;P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks 作者: Xiao Liu1,2 , Kaixuan Ji1 代码: https://github.com/THUDM/P-tuning-v2 一、简介 二、准备工作 ---- 2.1 NLU的任务 ---- 2.2 提示优化 三、P-Tu…

苹果手机备份占内存吗 苹果手机备份到电脑怎么操作

苹果手机备份占内存吗&#xff1f;实际上&#xff0c;苹果手机备份并不占用本机内存。在使用苹果手机的过程中&#xff0c;备份是一个必要的操作&#xff0c;可以避免丢失重要的数据或者恢复丢失的数据。但是有些用户可能会担心备份会占用手机的内存&#xff0c;从而影响手机的…

IDEA中搜索文件内容的预览窗口不显示完整的内容(不是搜索结果的条数被限制了,是单条的搜索结果的预览)

背景 IDEA 中搜索配置问题&#xff0c;有两个大坑&#xff0c;第一个是之前有提到过的&#xff0c;搜索结果如果超过100的话100外的结果不会显示&#xff08;可以改&#xff09;。第二个坑就是显示的不完整&#xff0c;以搜索properties配置为例&#xff0c;如 if.longer.tha…

手写数字识别Python+TensorFlow+CNN卷积神经网络【完整代码系统】

一、介绍 手写数字识别系统&#xff0c;使用Python语言&#xff0c;基于TensorFlow搭建CNN卷积神经网络算法对数据集进行训练&#xff0c;最后得到模型&#xff0c;并基于FLask搭建网页端界面&#xff0c;基于Pyqt5搭建桌面端可视化界面。 二、效果展示 三、演示视频完整代码…

知识付费海哥:爆款课程到底是怎么构建的

哈喽&#xff0c;大家好&#xff0c;我是海哥&#xff0c;知识付费变现创业教练&#xff0c;教育公司培训总监&#xff0c;从事知识付费变现咨询10年&#xff0c;已助力3000人实现知识付费变现。 在将自己知识设计成核心解决方案之后&#xff0c;我们就可以开始设计自己的课程了…