重新规划开启上路

版权声明:欢迎转载大宇的博客,转载请注明出处: https://blog.csdn.net/yanluandai1985/article/details/84573958

1.近期的事情

        最近几周项目上很忙,加班还算是比较多的,所以自己学习的时间变少了。另外一些事情就是也不知道下一步应该学什么。老实说,我对很多技术也研究了一些皮毛,比如集合框架的一些源码,多线程的一些知识。上个星期对Idea插件非常感兴趣,用周末两天开发了一款适合公司业务流程代码的内部插件,可以实现自动生成新增、修改、批量新增、批量修改、分页查询的Java代码功能。

        这款插件开发出来两天了,但是还没有用于实战。说实话,每天重复的增删改查实在令我厌倦。所以,我通过研究当前市场上的开源插件源码,提炼出我需要的代码。以后再也不需要手动编写这些重复的增删改查了。另外,最近还在研读一本叫《重构 改善既有代码的设计》这本书。我挺喜欢这本书的。这本书确实提升了我不少代码设计的能力。至少我在插件代码的编写过程中,我把类分的很细,把重复功能都抽取到父类中。以前学习的设计模式也发挥出了相应的威力。有一些重复的代码,或者说重复的流程,可以使用抽象模版模式,预定义一些功能。然后由子类去实现。比如在自动生成ServiceImpl、Repository等代码的时候,读取它们的模版文件完全可以通过父类提供办法。然后每一个模版文件中需要被替换的部分,由具体的子类去替换。

       另外就是,在每天的工作过程中,我发现我开发的时间,大部分都用在了页面的开发。前端的东西很多都是我不在行的,所以每次一遇到莫名其妙的前端页面报错,我都头疼无比。比如今天的任务就是学习如何将Excel中的数据导入的数据库。项目中有一个大佬的代码十分的优美,深得《重构》这本书的精髓,代码即注释。但是不幸的是,我模仿它编写了后台的读取Excel的Java代码,但是前端页面的上传框显示不出来,没法上传Excel文件。后台Controller又是一个 MultipartFile,谁知道Excel被转化成什么样的MultipartFile对象。后台的Java代码我花了45分钟差不多就能阅读并编写完毕。前端的BootStrap中一个模态框里面的Form组件,吗的就是加载不出来。我知道肯定是那个Form组件没有初始化,但是我确实不知道应该怎么初始化这些DIV里面的东西。后来还是被经验丰富的同事解析了。诶,不谈了,想想就心疼自己的时间。

2.难题

        总结一下接下来需要攻克的难关:

       (1)Idea插件应该是最重要的事情。至少在我写这篇文章的时候,还有几个核心的功能没有开发出来。A、如何实现ModelAndView与JSP之间的自动跳转。B、如何才能通过原生HTTP的Java代码与服务器进行通信。C、如何才能为自动生成的代码指明它们的路径。D、如何才能唯一的标识一台计算机,项目中的IP都是DHCP分配的,Java代码是否能够获取到一个人的MAC地址?

        我激动的掐了一下自己的大腿,昨天老大不是让我访问了一下已经上线了的OA系统里面的查看考勤信息的接口嘛,那个单元测试不就是原生的HTTP代码!对呀,那可以用于测试其它上线项目的接口呀!赶紧的,明天就把那段代码好好研究一下,说不定做自己的插件的时候,可以用上。或者说,在用户启动我自己的插件的时候,先发送一下请求,查看是否合法。

       (2)如何搭建自己的服务器。总是收到云服务的这种广告,什么阿里云服务器,这个到底应该怎么去做?就算我有一个服务器了,我的代码应该怎么才能部署到他们的项目中。另外一个就是,如何建立自己的邮箱服务器?

       (3)如何才能加密自己的源代码呢?我尝试在自己的IDEA中,我发现我只要导入我的插件JAR,IDEA是可以分析出我的源码的。虽然源码看起来还挺有成就感,但是更多的是一种危机感。虽然我的代码并不值钱,但是每个人都不会希望所有的东西都与别人分享。

3.最新心得

        有时候根本不是自己坚持不下去了,更多的困难来自于外部,诸如“这个没用”这类的话,总是在阻止着前进的脚步。上个星期,我在说出了我希望开发出一款,可以简化劳动的插件的时候,就遭到了同事们的取笑,说我异想天开。虽然他们没有什么恶意,但是却让我听起来额外的不舒服,并且伴随着深深的难过。我有时也会怀疑,IDEA插件市场上的资料这么少,都是英文文档,学习起来都需要谷歌在线翻译。所以开发出自己的插件的难度还算比较大的。但是,功夫不负有心人,我在经历了周末两天昏天黑地的开发后,终于还是在周日晚上凌晨,终于完成了核心功能的最后一句代码的编写。上面自我谈话了那么多,就像在反省自己的所作所为一样。在自己的小小的成就面前,还是要自我鼓励一下。干得好大宇!看到它们还在艰苦的增删改查的时候,我的内心都在跳舞。

        扯了那么多没用的,下面开始到正题,汗。IDEA插件这个东西只是我的一个小插曲,还是要以提升自己的综合能力为核心。首先是代码能力,以前学习了那么多设计模式,是时候拿出来用了。《重构 改善既有代码的设计》这本书需要好好研读,它阐述了如何编写设计良好的代码。重构里面的有一句话十分的警示:“我始终相信,良好的设计才是快速开发的根本”。纵观我之前写的代码,在没有良好的设计之前,一旦遇到需求变动或者是功能小幅度根本,都需要花费大量的时间修改源代码。而后来,我把方法抽取出来,分割为一个一个小功能,并且将重复的代码抽取到超类中,发生需求变动只需要小幅度修改。

        最能坚信我重构决心的就是上周的例子。我和同事们一起接到了一些需求变动,我的同事花费了两个小时才将原来的类的修改成符合最新需求的代码。在这个新需求之前,谁也没有预料到需求将会如此更改。在此之前,我花费了数小时进行重构我的代码,重构过程失败的很惨,险些放弃,但是最终还是完成了重构后的代码,真的是欣慰。值得庆幸的时候,当真正的新需求来了之后,我只改动了我的类中的两句代码,就完成了新的需求变动。果然应了那句话:“重构的收益在于需求变动以及添加新功能”。

4.出路

       我听过的最有警示的一句话就是:为什么很多人能够吃得了生活的苦,却吃不了学习的苦。因为生活的苦躺着也会来,而学习的苦需要你主动去吃。所以,永远不要停止学习。在学习这条道路上,需要坐得住冷板凳。纵观那些成功人士,哪一个不是博览群书,哪一个不是经历了学习之苦?

       在写这篇文章的时候,我需要给自己下目标。

       (1)重构这本书,翻了一下上次的学习日期。都是11月10日,卧槽,时间过的这么快,都尼玛混了接近三个星期了。所以给自己下死命令了,必须在一个月之内完成这本的阅读。这是首要重点!争分夺秒,可以在TOMCAT项目启动的时候读一段话,仔细想想,一天中多少次重启TOMCAT,这段时间可不能浪费!重构这本书学习完毕之后,再打算研究Spring源码。阅读Spring源码一定有好处,首先可以把我的库存的设计模式代码调用起来,再者,也能跟着大师学如何写最优秀的代码。如果能够坚持阅读Spring源码后,我相信以后碰到别的框架或者JDK源码后,也能快速的掌握它们。

       (2)IDEA插件相关的难题。首先,插件问题最重要的就是解决如何自定义跳转这个难题。如果能够解决自定义跳转,然后再解决文件生成路径的难题。最后,当所有的核心功能开发完毕的时候,可以考虑建立自己的云服务器,以及邮箱服务系统,同时必须要掌握源代码加密技术,保护自己的源码不受反编译器的解析。这个是次要。这个可以放在下班以后做,我那公司的小霸王电脑,IDEA插件开发环境都带不动,真的服了。

        已经接近晚上十一点了,往上一番,居然一气呵成写了这么多。算了,我得去休息了。这些想法如果不及时记录下来,说不定明天就忘了。还好有博客,感谢CSDN,感谢自己。

猜你喜欢

转载自blog.csdn.net/yanluandai1985/article/details/84573958
今日推荐