【腾讯云】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元

搜搜吧

搜搜吧 门户 教程 电脑网络 查看内容

聊聊我的HTTP框架近况:支持AOP,**,配置文件读取

2020-10-22 13:42| 发布者: 虚拟主机评测| 查看: 58| 评论: 0

摘要: 本文转载自微信公众号「JavaGuide」,作者Guide哥。转载本文请联系JavaGuide公众号。jsoncat:https://github.com/Snailclimb/jsoncat (仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架)距离上一次给 ...

本文转载自微信公众号「JavaGuide」,作者Guide哥。转载本文请联系JavaGuide公众号。 

jsoncat:https://github.com/Snailclimb/jsoncat (仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架)

距离上一次给小伙伴们汇报简易版的“Spring Boot”的完成情况已经有半个月了。时间过得是真特么快啊!

01.这半个月里,我的 HTTP 框架已经支持 AOP、**(也是 AOP 的一种)、配置文件读取等功能了。 👏

目前的话,整个 HTTP 框架基本已经具备我最初想要实现的全部功能了。也算是兑现了诺言,善始善终了。

功能具体的实现情况如下:

很多读者小伙伴可能感觉我写的比较容易。不过, 说实话,我中间写的过程中也遇到了很多问题。为了解决写这个框架遇到的一些问题,我熬了很多夜,也早起了很多次。

我不算是奋青。一般情况下,我平时都是晚上 9 点半之后玩几把王者荣耀,到了 12 点左右就睡觉了。早晨的话,我一般都是 8 点左右起床。几乎日日如此。

但是,写这个 HTTP 框架的时候,我记得有 3 次我熬夜到凌晨 2 点左右。有 2 个早晨,因为有“灵感”,我 5 点多久爬起来写代码了。

说这些,不是为了博同情让大家觉得我写的多辛苦,也不是表现我有多努力。

这些都是很平常的经历罢了!我觉得大部分程序员都经历过:

  • 夜深人静的时候,突然自己写的代码出了点问题,不解决就不想睡觉。
  • 某个早晨,突然惊醒,灵感爆棚,打开电脑开始写代码。

不过,我是真的不推荐大家熬夜!拿我自己来说,每次熬夜就会导致我第二天甚至是第三天精神不振,严重影响效率。这还只是熬夜的短期影响,长期作息不健康的话,肯定对身体的摧残特别大。

道理都懂,不过,大部分小伙伴都像我一样,还是会偶尔熬夜。

02.整个框架的目录结构如下:

  • 框架实现部分按照不同的功能模块进行组织,比较直观。
  • 提供了完整的框架使用示例,并且还为其编写了测试。

03.开源的魅力在于别人可以对你的项目进行反馈,并且,遇到对你的项目感兴趣的朋友,他们还会帮你一起完善和开发项目。

拿 jsoncat 来说。jsoncat 开源之后,一位叫做“hellohello-tom”的老哥便参与了进来帮忙开发。

tom 哥代码写的很不错,帮助 jsoncat 实现了很多功能!真的非常非常非常感谢!爱你哦!老哥!

我俩因为这个项目经常在微信上交流,或许这就是编程的魅力吧!哈哈哈!

我平时少在微信聊天的,但是因为这个开源项目和老哥聊了挺多的。随便截了两张图:

我觉得一个项目开发是比较忌讳只有自己一个人的。每个人都会有思维局限,你很难发现你的代码需要某些改进的地方以及存在的问题。

这也解释了为什么 Code Review(代码审查)在软件开发过程中这么重要了。

通过 Code Review 可以非常有效提高代码的整体质量,因为它会帮助我们发现代码中的坏味道以及可能存在问题的地方。

04.其实,单纯实现功能的话费不了太多时间。大部分时间,我都花在了对现有代码的重构上。

毕竟我这个 HTTP 框架开源出来的主要目的之一是为了给需要的小伙伴学学习,我必须要保证我写的代码可读性。

为此,我在写代码的过程中给自己定了以下原则:

  1. 不滥用设计模式 :我最初写代码的时候,特别喜欢滥用设计模式。自己学到了什么设计模式,就像立马用到自己的项目上去,即使这个设计模式在当前业务场景并不适合。这真的是一个不好的习惯,不过,在写这个 HTTP 框架的时候我刻意避免了这个问题。目前的话,整个框架只用到了单例模式、工厂模式、策略模式以及责任链模式。
  2. 保持代码结构清晰 : 开源出来的代码是写给人看的,代码结构清晰可以大大减少其他人理解代码的难度。
  3. 谨慎抽取工具类 :最开始写这个框架的时候,我抽了很多工具类。到最后发现很多工具类中的方法,实际只在某一个地方用到,并且以后也只可能会在这一个地方用到。这个时候,我觉得最好的做法就是,将这些工具类方法放到唯一一个用到这个方法的类中。这样整体代码结构会更加清晰。
  4. 不秀技 :最开始写代码的时候,特别喜欢秀技。比如说 Java8 那会还没流行的时候,我写代码总想着用 Java 8 的 Lambda 表达式、函数式接口等新特性。那时候,和老师一起做项目的时候,其他同学还会觉得我写的特别牛逼,因为他们觉得自己很久才能看懂。但是,我现在觉得当时的做法其实有别软件开发/编程的本质,编程的本质不是说减少代码量,而是说写出他人易于理解的代码,写出更容易维护的系统。你写的代码不单纯是给你自己看的,你还要让别人看懂,减少别人的阅读学习成本。这个和我第一点说的一切从简是不矛盾的。

今天就简单聊聊这些吧!时间也不早了!

搜搜吧社区温馨提示:
搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容
2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
3、搜搜吧影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若本站收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
4、搜搜吧,删帖,投诉,举报,侵权,若本站侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除

鲜花

握手

雷人

路过

鸡蛋

相关阅读

资讯分类

推荐图文

文章排行

Powered by www.sosoba.org Copyright © 2013-2020 搜搜吧社区 小黑屋|手机版|地图|联系站长|腾讯云代金券|帮助中心|公共DNS|seo优化服务|搜搜吧
广告服务/项目合作/会员购买:QQ 侵权举报邮箱: kefu-sosoba@qq.com  搜搜吧建站时间:创建于2013年07月23日
免责声明:本站所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,搜搜吧不承担任何的法律责任,若有侵权请来信告知,我们立即删除!

GMT+8, 2020-11-25 16:08 , Processed in 0.051026 second(s), 8 queries , MemCache On.

返回顶部