牛掰,在IDEA中,你可以安装小傅哥写的插件了!
作者:小傅哥
博客:https://bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
一、承认你优秀很难
很多码农,把路走窄了
捧一个,喷一个,很多码农都不会多一点思路看问题,总是喜欢用矛和盾在显示自己有点本事
。Github 你写文章说你不如做开源代码有价值,你写了开源代码说你这没有意义,那你问他贡献了啥,他只贡献了嘴。聊理论吹的叮当的,写代码搞的稀得囊的
- 好在,你这一路上能遇到很多
同好
,他们能真诚的给你意见、提供思路、帮助解决,让你们一群有技术初心的人,不断的成长。 - 这可能就是技术创作的土壤,如果大家都不施肥,反而还要过来用力的踩踩这块地,那最后大家都只能一起卷死在这,谁也不要创新。加油,我希望你可以和我一起做点事情
二、写了个什么插件
最近一个月多都在折腾关于 IDEA Plugin 插件开发的案例编写技术总结,在日常编码开发和折腾插件技术过程中发现一个痛点
。
日常编码的过程中有太多的 vo2dto 对象转换操作,尤其是在 DDD 架构下多了不少的防腐层,而这层之间的对象 po、vo、do、dto,总是需要被转换,而使用 BeanUtils 多了,以后增改字段名都不知道影响到哪。
当然也有不错的工具 MapStruct 既可以保证性能又有不错的效率,但它需要给每一个转换对象维护对应的转换类,对于接口层的转换还是非常适合的,但那些很小的方法块内,也是如此折腾就显得有些麻烦了。
所以,小傅哥结合 IDEA Plugin 插件开发的能力,通过鼠标定位到转换对象上,一键织入需要生成一堆的 x.set(y.get)
方法,并且在几次优化中以及可以支持父类对象、lombok插件。演示图如下:
- 支持:复制一个对象,光标定位另外一个对象上,鼠标右键 Generate -> Vo2Dto 一键生成转换代码
- 支持:不复制对象,直接在转换可以生成空的 set 对象,方便自由添加内容
- 支持:插件中通过注解检测的方式,允许使用 lombok
三、发布插件的经历
原来不用英文描述,不给我过
1. 请用英语描述
- 这是我第一次发布插件接收到的邮件提醒,告诉我在你的 plugin.xml 中,要用英语描述。一直没看,以为垃圾邮件
2. 请用英文截图
- 告诉我,你的截图要用英语的,这样我才能给你通过。
3. 说我截图没用
- 问我你确定需要这个截图吗,他觉得没啥意义
4. 终于发布出去
- 改了注释、删了截图,终于迎来曙光。你说,不发布一次,你会知道遇到这些吗!
四、把这插件安排上
1. 安装插件
讲到这我就兴奋了!
为啥兴奋,因为这一个插件发布,我整整等了2周,因为一次修改就要2个工作日才能审核,所以上面我犯的错,都是用时间磨出来。
不过现在好了,你可以直接在 IDEA 中搜索安装小傅哥写的插件了,哈哈哈,这种没做过的事搞一次,总是让人很兴奋!
- 看到能搜索到 vo2dto 并顺利安装使用,我的心舒服了。没有人能阻挡你最技术的热爱,即使你来我这踩两脚
2. 使用介绍
如图所示,你只需要很简单的步骤,既可以快速且准确的帮你生成对应的转换代码,在一些场景里使用还是非常 Good
的!操作步骤:
- 复制对象
UserDto userDto
这个是被转换对象,复制后才能便于生成获取属性的代码。如果你不复制,那么就是生成空代码 - 定位对象
User usxxer
把光标定位到对象或属性上,点击 Generate -> Vo2Dto 这样就可以把你的对象生成出来了。 - 注意:支持 lombok、支持继承对象,如果你在使用过程中遇到其他需求或者问题,都可以反馈给我
3. 源码共享
- 源码:https://github.com/fuzhengwei/vo2dto
- 说明:有同好的技术人共建才会让一件小事不断的优秀起来,所以我把这块代码共享出来,我们可以一起做一个非常短小精致的产品,来帮助我们自己完成一些便捷的开发处理。
五、我确定挺倔强
有一种倔强可能也是天生的,我喜欢技术、喜欢折腾、喜欢简单干净的事情,并把我认准的事长久坚持下去。有时候我也知道另外一条路会更轻松、更有钱拿,但那并不是我的内心,只有我认识到的我才是我,否则强加给我的我,始终不会是我。
牛掰,在IDEA中,你可以安装小傅哥写的插件了!的更多相关文章
- ElasticSearch搜索引擎安装配置中文分词器IK插件
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...
- Jackson:我是最牛掰的 Java JSON 解析器(有点虚)
在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...
- 苹果mac电脑中brew的安装使用及卸载详细教程
brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便 brew类似ubuntu系统下的apt-get的功能 安装br ...
- mac中使用brew安装软件,下载太慢怎么办?
mac中使用brew安装软件,下载太慢怎么办? 本文所说的软件是指较大的软件,如果软件较小,例如软件只有几M,那么使用此方法后,提升会非常小. 了解brew原理: 1: 从网络下载安装包 2: 执行一 ...
- eclipse中jsp文档无语法着色,安装Eclipse Java Web Developer Tools插件
一.安装Eclipse Java Web Developer Tools插件 1.eclipse菜单:help/install New Software,打开Available Software窗体: ...
- CentOs中mysql的安装与配置
在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...
- 腾讯云Linux系统中启动自己安装的tomcat
腾讯云Linux系统中启动自己安装的tomcat 首先通过工具查看一下安装的tomcat的位置 进入命令行之后输入以下指令: 此时,tomcat已经启动了.
- Ubuntu 中软件的安装、卸载以及查看的方法总结
Ubuntu 中软件的安装.卸载以及查看的方法总结 博客分类: Linux UbuntuDebian配置管理CacheF# 说明:由于图形化界面方法(如Add/Remove... 和Synaptic ...
- 在linux中使用phpize安装php扩展模块
介绍:linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块.使用phpize脚本安装php扩展模块的好处:在安装php时没有 ...
随机推荐
- mysql数据库备份脚本一例
例子,mysql数据库备份脚本.vim mysql.sh #!/bin/bash DAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量 SIZE=`du -sh /var/l ...
- Apache Log4j 2 报高危漏洞,CODING 联手腾讯安全护卫软件安全
导语 12 月 9 日晚间,Apache Log4j 2 发现了远程代码执行漏洞,恶意使用者可以通过该漏洞在目标服务器上执行任意代码,危害极大. 腾讯安全第一时间将该漏洞收录至腾讯安全漏洞特征库中,C ...
- 用法总结:NSArray,NSSet,NSDictionary
用法总结:NSArray,NSSet,NSDictionary Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序 ...
- 【web】sqli-labs学习
第一页 1~4预备知识(基于错误的注入) 几个常用函数: 1. version()--MySQL 版本 2. user()--数据库用户名 3. database()--数据库名 4. @@dat ...
- LET函数(Excel函数集团)
LET函数,是个Office365新增函数,所以,还在用上古版本的童鞋请无视此篇哈~ 话说Excel中,有个自定义名称的功能,如下图,左右两个表分别自定义了"data1"和&quo ...
- vscode提示提示安装似乎损坏,请重新安装
安装 Fix VSCode Checksums 插件 Ctrl+Shift+P , 输入Fix Checksums : Apply, 点击,重启即可
- CF1154A Restoring Three Numbers 题解
Content 已知有三个正整数 \(a,b,c\),现在给出 \(a+b,a+c,b+c,a+b+c\)(不保证有序)的值,试求出 \(a,b,c\). 数据范围:\(2\leqslant a+b, ...
- LuoguP7379 [COCI2018-2019#6] Lun 题解
Content 判断使一个长度为 \(n\) 的银行卡号码(有一个空缺)合法,空缺里面填入的最小数字. 数据范围:\(n\in[1,100]\). Solution 由于只有一个空缺,因此我们可以考虑 ...
- Python第三周 数据类型:集合set、文件的读写、追加操作。
集合 知识点:集合是无序的 格式:{1,2,3,"str_test"} set_1 = set(list1)#将列表转换为集合 集合关系测试: 集合的逻辑判断.取交集.并集.差集. ...
- JAVA中CountDownLatch的简单示例
public static void main(String[] args) throws InterruptedException { CountDownLatch latch =new Count ...