打造个人的云技术乐园

作为一个技术人,我愿意把技术作为一种乐趣,也将积极进行实践。 以下是长期探索后,较为靠谱的一种个人持续学习的靠谱路径。

优点

  • 依托开源技术,不存在技术壁垒,具有学习深度的自由性。 这是起点,也是最重要的一点;
  • 依托云产品,免费,稳定,安全性高(包括公司倒闭跑路,技术人员不当操作导致数据丢失等等);
  • 符合云原生理念,容器化、一体化运维(代码托管+jenkins可部分实现类似功能)、微服务(主要看是否采用该技术栈,技术层面提供支持);
  • 最最最重要的,持续学习的动力。个人的学习成功,不会因为某一天服务器续不起,或者其他不可抗力因素,导致所有的学习成果丢失。因为代码成果在代码仓库,部署成果在docker容器,部署升级自动化完成.真正可以做到,终身学习,终身实践。
  • 成果复现简单,服务拓展容易。只需遵循步骤: 上容器->自动部署->展现成果。

缺点

  • 接触的技术栈、概念、云产品较多,对新手不友好,容易打消学习积极性和学习热情;
  • 始终绕不过付费的门槛,毕竟服务器是需要成本的。且由于个人学习需要,不是服务于生产,预算非常有限。尽管使用了各种优惠政策,稍可用一点的服务器(以2C4G为例),一年少不了200,三年600.四家大的云厂商买个遍,2400,但可以用12年了,基本上属于薅羊毛薅到了极致。

实例

我目前便是采用的这一套体系,读书时前前后后买了阿里云学生优惠(1C2G,一年100,买了一年),华为云学生优惠(2C4G,一年240左右,买了两年),目前用的腾讯新用户优惠(2C4G,300多,三年!!)。

当然了,多少钱不是最重要的,重要的是,买了的东西要用起来,否则就算它再便宜,也是浪费。

现在多在个人技术博客上写文章,后续可能也会根据自己的兴趣再搞一些东西,想发展成副业(接广告啥的),同时也丰富我的生活。希望也能多认识志同道合的朋友,交流,思想碰撞,共同进步。

我的个人博客:www.automannn.cn/blog

目前已上云的产品:

  • 通用后端管理平台: www.automannn.cn/atm-admin
  • 代码生成系统: www.automannn.cn/atm-generator

目前我学习过并正维护的后端开源源码有(不是我开源的,用于学习的开源源码):

  • spring源码(maven版):https://gitee.com/automannn/spring-source.git

    • 目前31star,26fork
    • 它的主要作用是,以maven作为源码组织工具,方便手撕spring,里面有个人的一些注释(不一定正确,知识面的局限性),也提供了基于各个组件的练习案例;
  • springBoot源码: https://gitee.com/automannn/spring-boot-source.git

    • 目前0star,1fork
    • 用于手撕springBoot源码
    • 整体而言,springBoot偏简单,但它极为重要,对技术稍微有点追求的公司,都应该采用它作为基架开发应用了。
    • 但就它的使用而言,对开发者提出了更高的要求,会则得心应手,不会则烦闷且顿生退意;
  • springCloud核心模块源码: https://gitee.com/automannn/spring-cloud-core-source.git

    • 目前0star,0fork
    • 手撕springCloud,从根本上理解springCloud;
    • springCloud刚出来时,各种消息漫天而来,神乎其技。几年过去,我也始终不得要领,看视频,看书都是飘飘然,学了又好像没学。
    • 维护这个模块的目的,就是为了要揭开它神秘面纱,它本质上是什么,如何去认识它,它与云又有什么关系。源码是不会骗人的。
  • mybatis源码: https://gitee.com/automannn/mybatis-source.git

    • 目前0star,2个fork
    • 提供mybatis的源码,方便手撕;
  • tomcat9源码:https://gitee.com/automannn/tomcat-embed-source9.git

    • 目前0star,3个fork
    • 基于embbedTomcat而组织构建的源码,方便手撕容器。(老实说,java从业者,应该至少比较精细的阅读一种成熟的web容器,否则项目上遇到的问题就只能各种百度,谷歌了,不得要领)
    • 我们所接触的大部分的技术栈,都要基于web而展开,这个是绕不开的
  • springSecurity源码:https://gitee.com/automannn/spring-security-source.git

    • 目前0star,0fork
    • 提供springSecurity源码,方便手撕;
    • 可以这么说,完全掌握springSecurity,就可以装逼了。(不是说其他技术不重要,不优雅,而是因为它用的多,且改动需求大,需求场景多变,特适合我们技术人表演)。
  • springSession源码:https://gitee.com/automannn/spring-session-source.git

    • 目前0star,0fork
    • 用于手撕springSession
    • 它整体偏简单,但依赖于springSecurity,项目上偶能遇到,自由度也蛮高的。
  • 单点系列cas: https://gitee.com/automannn/cas-server-5.3.14.git

    • 目前1star,2fork
    • 手撕cas,它是目前市面上最成熟的单点框架之一。主要看公司,或者框架选型。
    • 容我爆一句粗口,***;它的源码是我维护的源码里面,最痛苦的一个,几度想要放弃。依赖混乱,版本错乱,源码不全…
    • 给我的感觉是,它想要自成一系,并不想遵从spring或者apache的一些具体技术方案(大的规范肯定是都要遵从的),且它有这个实力。毕竟不想当将军的士兵不是好士兵。
    • 其实开发者不太关心,尤其是开源源码,怎么好用怎么来。我比较诧异目前怎么没有将它与spring整合的产品(服务端,而非客户端,也许是我没找到)。
  • 单点系列oauth2:

    • 服务端: https://gitee.com/automannn/automannn-security-oauth2-authorize-server.git
    • 单点客户端1: https://gitee.com/automannn/automannn-security-oauth2-sso-client1.git
    • 单点客户端2: https://gitee.com/automannn/automannn-security-oauth2-sso-client2.git
    • 目前皆是0star,0fork
    • oauth2服务端以及客户端的源码,主要位于springSecurity源码项目中,这里主要是一种可见即可得的成品展示
  • dubbo源码: https://gitee.com/automannn/dubbo-apache-source-parent.git

    • 目前0star,0fork;
    • dubbo框架的源码,apache基金会毕业版本,方便手撕;
    • 阅读前,需要掌握netty的使用方法,而阅读netty前,需要阅读nio源码

这些开源技术,均有配套心得在个人博客中,具体可根据目录导航即可,希望你我均能保持对技术的一颗热忱之心。在这个浮躁的俗世,并不容易。