差不多把 Java Web 轮子撸圆了

本贴最后更新于 1608 天前,其中的信息可能已经东海扬尘

huaji 说起撸轮子,我目前有一些心得,因为我吭哧吭哧在同时写三个,说起写轮子的动机,其实就是为了证明一下自己的能力,写了之后才发现,我原来还阔以。

先看一下我在写的轮子列表:

aquiver

https://github.com/AquiverV/aquiver

这是个 mvc 框架,基本的 mvc 功能都支持了,代码呢改过好多次,也重构过好多次。README 没咋更新,所以看 README 会觉得这个轮子很简陋。

sqlstream

https://github.com/AquiverV/sqlstream

这是一个比较简单的 SQL DSL 风格的库,我参考 mybatis-plus 的 api 设计了一个版本,目前是写了一半,但是肯定是有在更新的,只不过进度不快。

apex

https://github.com/AquiverV/apex

这个一个简单的 ioc 容器,事实上我想实现很多功能在上面,但是也是慢慢来了,因为我大部分的时间都用来写 aquiver 了。

我准备花一年的时间去不断完善,看看我的 github 的 commit,希望可以在明年的时间都发布一个正式版,然后,我会试着去开源中国面试一下huaji ,因为那边对开源的态度貌似挺重视的,如果我为此能找到一份不错的工作也是挺好的。

607.png

我得到了啥

  • 我终于不再焦虑了,在知乎看多了别人装逼就是这个下场。
  • 我熟悉了蛮多设计模式,也熟悉了怎么设计轮子,就是代码写的不够骚。
  • 生活得到了充实的体验,像是饿了许久的人终于吃了顿饱饭。
  • 得到了些许意义,像我这种小菜鸟最喜欢纠结这个了。

码哥给我的建议

对于我来说,码哥是我职业生涯中重要的人,他在我很多次表达迷茫的时候都愿意不厌其烦的告诉我他的很多经验,作为一个编码超过 16 年的技术专家来说,愿意如此不厌其烦的教导我也是我想坚持下去的原因,其实写轮子也是迫不得已,因为公司没啥业务可以做,而我不想像前两年一样抑郁个两年去浪费时间,所以,至少学一些东西让我能充实一点最好。码哥也是比较支持的,但是他还是推荐我去写业务,不然就去造脚手架。

或者,开个微服务的项目去好好维护,对于那些企业来说,熟悉这些技术栈比你熟悉怎么造轮子性价比高的多。

不过,这些都是后面的事情了,因为业务接触的不多,我最多只能写写 xx 管理,或者拿 springcloud 写 xx 管理这种滑稽事情huaji

但是其实我有一个大胆的想法,既然轮子都能自己造了,微服务的轮子难道不能造吗?造出来那不是更靓仔。

码哥作为这方面的专家造的轮子比我写的代码还多,他也和我说过,造轮子可以,麻烦你造个难度大点的轮子,最好是分布式的,听起来就牛逼,不然我没啥兴趣。

不过这也是后话了,说不定也有可能明年我再发一个帖子来说说我为什么放弃写轮子这件事情。或者说写完一个完善的 web 框架是什么样的体验也说不定。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • 框架
    47 引用 • 348 回帖 • 1 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 995 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Kenn

    学校里也这样,努力的人简直不要太努力,而不努力的人简直不要太丧。两极分化极端严重,好像这两极有巨大的吸力,把属于他们的人集中聚集起来,中间只剩下极少数佛系人群。

  • 其他回帖
  • 越努力越幸运 加油哦~

  • 233333

    doge 靓仔,撸这些玩意的时候 有没有教学笔记啥的,java 新手想学

    1 回复
  • Ever
    作者

    huaji 当然是没有的,我基本上是把别人的轮子 clone 下来,然后看代码,把思路理清,然后试着抄一抄,轮子能跑起来之后开始加功能,然后开始重构 ,重构的时候因为想想着怎么有足够的扩展性,所以设计模式是跑不了的,代码量也起来了。

    我建议还是直接上手写比较好,你写出来了就发现没那么难了,比如我这个靓仔。

    写出来了之后,人有自信了,开始意识到自己的轮子与成熟轮子之间的差距,就开始加功能,重构,满足不同的需求,开始做压力测试,保持测试覆盖率,开始分支开发,学会用 issues 记录问题。

    这些,都需要你动手真正去做了,才能得到。

    所以别想那么多,先去做吧。

  • 查看全部回帖