说说我的HTTP框架目前的现状:支持AOP、拦截器、读取配置文件……转载此文请联系JavaGuide公众号。jsoncat:https://github.com/Snailclimb/jsoncat(仿SpringBoot但又不同于SpringBoot的轻量级HTTP框架)。已经半个月了。时光飞逝!01、近半个月,我的HTTP框架支持了AOP、拦截器(也是AOP的一种)、配置文件读取等功能。👏目前整个HTTP框架基本上已经具备了我原本想实现的所有功能。也算是兑现了诺言,是开始也是结束。功能的具体实现如下:很多读者可能会觉得我写的比较简单。不过说实话,我在写的过程中也遇到了很多问题。为了解决写这个框架遇到的一些问题,我熬了很多夜,早起很多次。我不是愤青一般情况下,我一般是晚上9:30以后打几局王者荣耀,12:00左右睡觉。早上,我通常在8点左右醒来。几乎每天。然而,在编写这个HTTP框架的过程中,我记得有3次熬夜到凌晨2点左右。有2个早上,因为“灵感”,5点起床写代码。我这样说不是为了博取同情让大家觉得我写的有多辛苦,也不是为了表现我有多努力。这些只是常见的经历!我想大多数程序员都有过这样的经历:夜深人静的时候,突然自己写的代码出了问题,解决不了才睡。一天早上,我突然醒来,灵感迸发,打开电脑开始写代码。不过,我真的不建议熬夜!以我自己为例,每次熬夜都会导致第二天甚至第三天精神不振,严重影响效率。这只是熬夜的短期影响。如果长期的作息不健康,对身体的伤害一定特别大。道理我都懂,但我的大部分朋友,还是和我一样,偶尔熬夜。02.整个框架的目录结构如下:框架的实现部分是按照不同的功能模块来组织的,比较直观。提供了框架使用的完整示例,并为其编写了测试。03.开源的魅力在于别人可以对你的项目进行反馈,当你遇到对你的项目感兴趣的朋友时,他们会帮助你一起改进和发展项目。以jsoncat为例。jsoncat开源后,有个叫“hellohello-tom”的老头加入帮忙开发。Tom哥的代码很好,帮jsoncat实现了很多功能!太感谢了!我爱你!兄弟!我们经常因为这个项目在微信上交流,也许这就是编程的魅力吧!哈哈哈!平时很少微信聊天的,但是因为这个开源项目,和弟弟聊了很多。随便截两张图:我觉得一个人开发一个项目是大忌。每个人的思维都会有限,你很难发现自己的代码哪里需要改进,存在的问题。这也解释了为什么代码审查(codereview)在软件开发过程中如此重要。CodeReview可以非常有效地提高代码的整体质量,因为它会帮助我们发现代码中的难闻气味和可能存在的问题。04.其实简单实现功能也不需要花太多时间。大多数时间我都花在重构现有代码上。毕竟我开源HTTP框架的一个主要目的就是为了向有需要的朋友学习。我必须保证我写的代码的可读性。为此,我在写代码的过程中给自己定下了以下原则:一切从简:用最少的代码就能写清楚的功能,一定不要多用一行代码。不要滥用设计模式:当我第一次写代码时,我特别喜欢滥用设计模式。学习到什么设计模式就像马上在自己的项目中使用一样,即使这种设计模式并不适合现在的业务场景。这确实是一个坏习惯,但是我在写这个HTTP框架的时候刻意避免了这个问题。目前整个框架只使用了单例模式、工厂模式、策略模式和责任链模式。保持代码结构清晰:开源代码是写出来给人看的,清晰的代码结构可以大大降低别人理解代码的难度。精心抽取工具类:刚开始写这个框架的时候抽取了很多工具类。最后发现工具类中的很多方法其实只用在一个地方,以后可能只会用在这个地方。这时候我觉得最好的办法就是把这些工具类的方法放在唯一使用这个方法的类中。这样整体的代码结构会更加清晰。没有showskills:刚开始写代码的时候,特别喜欢showskills。比如在Java8还没有普及的时候,我一直想在写代码的时候利用Java8的Lambda表达式、函数式接口等新特性。那时候跟老师做项目的时候,其他同学会觉得我写的特别牛逼,因为他们觉得理解起来要花很长时间。但是,我现在觉得当时的做法其实和软件开发/编程的本质是不一样的。编程的本质不是减少代码量,而是写出别人容易理解的代码,写出更容易维护的系统。你写的代码不仅是给自己看的,也是给别人看的,减少别人阅读和学习的成本。这与我在第一点中所说的一切的简单性并不矛盾。今天就简单说说这些吧!天色已晚!原文链接:https://mp.weixin.qq.com/s/KYcUVM3fzSqzhe2GtK3PiA
