CSDN 一周年创作纪念日(PS:vnjohn)

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者

📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代

🌲文章所在专栏:职业成长

🤔 我当前正在学习微服务领域、云原生领域、消息中间件等架构、原理知识

💬 向我询问任何您想要的东西,ID:vnjohn

🔥觉得博主文章写的还 OK,能够帮助到您的,感谢三连支持博客🙏

😄 代词: vnjohn

⚡ 有趣的事实:音乐、跑步、电影、游戏

目录

机缘

最初在学习编程中,逐渐地在磨练自身的专业、技术知识,当遇到问题时,最开始是自己一个人在哪里默默的探索,最终得到问题的解决;后面,在身份朋友推广及技术社区逐渐发展时,发现在一些技术平台上其实已经有前人帮你探索了一些问题的解决方式以及方案,才觉得自己的时间浪费了很多,不然很早就可以自身得到一些理解以及对技术知识点的触发

随着自身技术的成长以及在工作中的积累,最终在闲暇时间也想慢慢的把自己的一些学习笔记以及实战经验通过文章的方式告诫给同行们,以防于各位同行伙伴们会入坑

自身在技术平台上,也学习到了很多新的知识和解决一些技术问题的疑难杂症,想着,通过技术平台记录自身的学习旅程也可以加深大家彼此之间的交流,各自可以通过平台提出自己的见解,能够更准确的让自己去定位思考问题思考新的一些技术方案

收获

在刚开始工作时,并没有意识到经营自己的技术社区平台是一种很重要的事情,对于编程来说,这是我一直想研究下去的课题以及向前推进的一份职业

最开始之初,部门领导希望我们能够拥有一个自己的个人技术博客网站,因此,我立马就行动了起来,最终,我使用 vnjohn 作为我的域名 ID,使用了 https://www.vnjohn.com 作为我作为一名技术博客创作者的初笔,在入驻 CSDN 之前,我一直在努力经营自己的技术博客网站,在公司闲暇期间,一共创作了将近 50 篇博文

在后来离开这家公司以后,进入新的公司,工作开始繁忙了起来,个人博客也就没有继续去更新了,随着文章量的增多,个人的低配服务器也对博客的访问速度下降了很多,在这家公司时,主要处理的都是框架组件内部以及一些高流量问题,想着应该会有更多人会在工作中,遇到这样的问题需要及时的去解决,于是乎,我选择了 CSDN 技术平台,作为创作者身份的自己继续向前推进的平台,在入驻之初,创作了:EasyExcel 百万级别数据高效率导入/导出 文章,后面也收到了大量粉丝的一些疑问,通过自身的理解帮助到了它们去解决,同时,也一直在完善自己的博客内容,希望能够直接通过阅读技术博客就能够直接在工作中立马应用起来,减少大家一些排错的时间,用更多的时间去提升自身的专业能力

累积到现在,一直都在学习框架底层的原理知识以及一些中间件使用、架构设计,一直在输出各个领域的专业技术知识以及技术实战博文「Spring、Nacos、MySQL、JVM、业务设计」

所有专栏的文章,都是博主一字字输出,实践操作积累起来的,都是真才实学,能够运用自如~

每个专栏中的文章都得到了大家的正向反馈,收获了大量的收藏、赞,感谢支持!

在作为一个创作者,通过技术平台认识了很多志同道合、优秀的同行,从他们身上能够学习到很多东西,更加能够激励自己逐步向前,向他们看齐

日常

博文的创作,在我个人定位中,就是一种兴趣,不仅仅能够帮助到自身的技术学习、精进,更加能够充分利用好自己的业余时间,在个人有限的精力下,当心血来潮时,突然想到非常好的 idea 去解决一个很难的技术问题时,就很想通过博文的方式给他分享出来

好比说,工作之余,可以去外面看看海、爬爬山,亲近大自然,能够帮助到你开阔更多的视野,通过创作,不会让你感觉到很迷茫,不会让你在空闲时间想这想那的,既然,专注于一件事情,就应该先把一件事情做好,而不是觉得累了就选择逃避

愿你我都能够在寒冬中相互取暖,互相成长,只有不断积累、沉淀自己,后面有机会自然就会破冰而行!

成就

所有的代码基座,前人的技术成果,都是在基于设计模式设计的

在技术平台上看过很多大牛写的东西,它们都会将所有技术业务或者产品需求通过可扩展、高内聚低耦合演变出来,从中让我学到了很多,因此,我便有了对旧有代码进行重构的想法,用前人沉淀下的设计来改造整个工作中会运用到技术方案

基于设计模式改造短信网关服务实战篇(设计思想、方案呈现、源码)

java 复制代码
package org.vnjohn.sms.service;

import org.vnjohn.sms.entity.AbstractSMSSendSms;
import org.vnjohn.sms.entity.AbstractSMSSign;
import org.vnjohn.sms.entity.AbstractSMSTemplate;
import org.vnjohn.sms.response.ApplyStatusResponse;

/**
 * 抽象短信服务公共能力
 *
 * @author vnjohn
 * @since 2023/3/17
 */
public abstract class AbstractSMSService {
    /**
     * 申请签名
     *
     * @param applySmsSign
     * @param <T>
     */
    public abstract <T extends AbstractSMSSign> String applySign(AbstractSMSSign applySmsSign);

    /**
     * 更新签名
     *
     * @param modifySmsSign
     * @param <T>
     */
    public <T extends AbstractSMSSign> String modifySign(AbstractSMSSign modifySmsSign) {
        return null;
    }

    /**
     * 删除签名
     *
     * @param removeSmsSign
     * @param <T>
     */
    public <T extends AbstractSMSSign> String removeSign(AbstractSMSSign removeSmsSign) {
        return null;
    }

    /**
     * 查询签名审核状态
     *
     * @param statusSmsSign
     * @param <T>
     * @return 返回审核是否成功信息,返回审核失败的原因
     */
    public <T extends AbstractSMSSign> ApplyStatusResponse querySignApplyStatus(AbstractSMSSign statusSmsSign) {
        return null;
    }

    /**
     * 申请模版
     *
     * @param applySmsTemplate
     * @param <T>
     * @return 返回模版唯一标识
     */
    public abstract <T extends AbstractSMSTemplate> String applyTemplate(AbstractSMSTemplate applySmsTemplate);

    /**
     * 更新模版
     *
     * @param modifySmsTemplate
     * @param <T>
     */
    public <T extends AbstractSMSTemplate> String modifyTemplate(AbstractSMSTemplate modifySmsTemplate) {
        return null;
    }

    /**
     * 删除模版
     *
     * @param removeSmsTemplate
     * @param <T>
     */
    public <T extends AbstractSMSTemplate> String removeTemplate(AbstractSMSTemplate removeSmsTemplate) {
        return null;
    }

    /**
     * 查询模版审核状态
     *
     * @param statusSmsTemplate
     * @param <T>
     * @return 返回审核是否成功信息,返回审核失败的原因
     */
    public <T extends AbstractSMSTemplate> ApplyStatusResponse queryTemplateApplyStatus(AbstractSMSTemplate statusSmsTemplate) {
        return null;
    }

    /**
     * 发送短信
     *
     * @param sendSms
     * @param <T>
     * @return
     */
    public abstract <T extends AbstractSMSSendSms> String sendSms(AbstractSMSSendSms sendSms);

    /**
     * 通过第三方服务商返回的编码进行消息处理
     *
     * @param code
     * @param message
     * @return
     */
    public abstract void processMessageByCode(String code, String message);

}

憧憬

后续的创作规划,主要会分为几个阶段继续向下进行

  • JUC 并发编程组件应用及原理分析、JMM 内存模型介绍、JVM 核心概念知识回顾及介绍
  • Redis 缓存中间件数据类型实战以及各大问题排忧解难
  • RocketMQ、Kafka 消息中间件集群搭建以及集群知识理论、实战操作
  • 云原生系列:Docker、K8S 组件的一系列基础知识介绍及实施
  • 业务设计、生产实战演练等等

Tips

我在 CSDN 中的一周年创作纪念日学习到了很多也成长了很多,认识了很多热🔥心好友,后面我会继续用自己的空余时间编写出更多更好的技术博文,希望能够和大家一起共同学习沟通,提升自身的技术以及创作能力!!

推荐专栏:Spring、MySQL,订阅一波不再迷路

大家的「关注❤️ + 点赞👍 + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下文见!

相关推荐
重生之我是数学王子7 分钟前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
Ai 编码助手8 分钟前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
学习前端的小z12 分钟前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
神仙别闹20 分钟前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
XINGTECODE21 分钟前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang
zwjapple38 分钟前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five39 分钟前
TypeScript项目中Axios的封装
开发语言·前端·javascript
前端每日三省41 分钟前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript
行則独善其身1 小时前
华为无线AC+AP组网实际应用小结
程序人生
凡人的AI工具箱1 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang