前记:

最近看了rongjun的一片文章:自己动手实现jdk代理类。按照上面的例子敲完才发现,JDK动态代理 实现底层原来如此简单,只是大量的使用了反射,类编译,类加载一些常规的东西

而且本质也是如实此简单。然后回头看源码,天呢,实现很长很长,当然里面加了很多各种异常的处理,各种抽象。。。呵呵,私以为。如果所有JAVA实现的框架,技术 ,如果都能如 rongjun这种代码一样,我想大家自己跑一遍并解读源码,我想大家就不会被各种拗口名词,各种不断新出的技术术语 所蒙蔽所不解。。所谓万变不离其宗,各种复杂的东西,拨开迷雾本质是:各种基本元素的不同花样组合。此时,终于明白以前我的一位架构师导师的苦心了,他告诉我,要把JSR熟读搞懂。JSR就是JAVA的各种复杂基本元素。

以上是我对于“动手自己实现XXX”的感悟。

鉴于做为一个有点小追求技术人员,仅仅满足于怎么用这个问题,简直太肤浅太肤浅了.....

明白 为什么 非常重要,归综下来以下好处。

  • 明白底层原理,那么在面对众多不同的产品时才能明白其利弊,才能做最基本的技术选型,也就才能达到更好的使用。
  • 世上无原创,读懂各种技术,各种术语 的底层思想,这些都是解决问题的套路,可以为我所用,如果滚瓜烂熟各种套路,如果再掌握最基本的元素,根据场景 实现自己的框架 ,那岂不是信手拈来。如果这个场景使用非常广泛,那不就推广出自己发布的框架吗,哈哈哈。。。

不过知易行难,加油~

因此必须要求自己知道常用技术底层的实现原理,其中自己动手去实现一个精简版的技术 是 加深对一个技术原理理解的 非常好的方式。我需要保持 ,故列出一个清单,当想到去实现的一个技术 ,就记录下来并持续 自己动手~

----------------------------------------------------------------------------------------------------------------------------------

  1. 自已动手实现springIOC
  2. 自己动手实现SpringAOP
  3. 自已动手实现JDK动态代理
  4. 自己动手实现RPC框架
  5. 自己动手实现.....

自己动手实现XXX系列的更多相关文章

  1. Seven xxx in Seven Weeks ebooks | 七周七 xxx 系列图书 电子书| share 分享 | free of charge 免费!

    Seven xxx  in Seven Weeks ebooks |  七周七 xxx 系列图书  电子书| share  分享 | free of charge  免费! Seven Languag ...

  2. 动手实现CapsNet系列——1 概述

    Geoffrey Hinton是深度学习的开创者之一,反向传播等神经网络经典算法发明人,他在17年年底和他的团队发表了两篇论文,介绍了一种全新的神经网络,这种网络基于一种称为胶囊(Capsule)的结 ...

  3. 动手实现CapsNet系列——2 实现(未完待续)

    执行后返回如下信息: Loading complete. Training started! [epoch 0][iter 0] loss: 0.8082, acc: 14.0000% (14/100 ...

  4. 自己动手写ORM的感受

    之前看到奋斗前辈和时不我待前辈的自己动手写ORM系列博客,感觉讲解的通俗易懂,清晰透彻.作为一个菜鸟,闲来也想着自己写一个ORM,一来加深自己对 ORM的理解,以求对EF,NHibernate等ROM ...

  5. 自己动手写插件底层篇—基于jquery移动插件实现

    序言 本章作为自己动手写插件的第一篇文章,会尽可能的详细描述一些实现的方式和预备知识的讲解,随着知识点积累的一点点深入,可能到了后期讲解也会有所跳跃.所以,希望知识点不是很扎实的读者或者是初学者,不要 ...

  6. Github干货系列:C++资源集合-

    Awesome CPP,这又是一个 Awesome XXX 系列的资源整理,由 fffaraz 发起和维护.内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. ...

  7. TiDB 源码阅读系列文章(一)序

    原创: 申砾 PingCAP  2018-02-28 在 TiDB DevCon2018 上,我们对外宣布了 TiDB 源码阅读分享活动,承诺对外发布一系列文章以及视频帮助大家理解 TiDB 源码.大 ...

  8. Github上安卓榜排名第2的程序员教你如何学习【转载,侵删】

    来自:峰瑞资本(微信号:freesvc)文章作者:代码家(微信 ID:daimajia_share) 软件早已吞噬整个世界,程序员是关键角色.过去 40 年中,许多伟大的公司都由程序员缔造,比如比尔· ...

  9. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

随机推荐

  1. sql基础语法复习

    约定:数据库名:test:表名:tb1,tb2,tb3…: 对象:数据库:database 表:table 列:column 索引:index 视图:view 存储过程:procedure 一.数据结 ...

  2. sql server不能删除数据库,显示错误:正在使用

    解决办法: use mastergoalter database database_name set single_user with rollback immediate --将数据库回滚到原始配置 ...

  3. 软件包 com.baidu.location

    http://developer.baidu.com/map/loc_refer/index.html?com/baidu/location/package-summary.html

  4. js 字符串和数组注意点

    var a="foo"; var b=[ "f","o","o"]; a[1]="o"; b[1]= ...

  5. linux自学(一)之vmware虚拟机安装

    之前有研究过linux,后来一段时间没有操作了,现在有点陌生,而且当初也没有记录学习内容.现在想从新开始包括虚拟机安装到部署Javaweb项目,把这之间所需要的全都记录下来,以便后边学习参考使用. 虚 ...

  6. UICollectionView官方使用示例代码研究

    注:这里是iOS6新特征汇总贴链接 iOS6新特征:参考资料和示例汇总 这个链接可以学习到UICollectionView的相关介绍:iOS6新特征:UICollectionView介绍 由于UICo ...

  7. vmware linux nat模式设置静态ip

    网上资料很多,但是都不怎么实用,这里给大家总结一下.nat模式上网.因为nat本身就能上网为什么还要设置ip.这有点自找麻烦.但是在集群这是必须的.要么你搭建伪分布,要么至少具有三台物理机器.为了节省 ...

  8. LaTex初学

    先用三句话来介绍什么是LaTeX:1.LaTeX是一类用于编辑和排版的软件,用于生成PDF文档.2.LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话 ...

  9. 《selenium2 python 自动化测试实战》(11)——selenium安装版本

    先和大家说一下selenium环境的问题,大家可以在cmd里先看一下自己的selenium版本: 回车,就可以安装了. 本来想和大家说如何跳过验证码进行登录的,结果好多朋友加我问我环境配置的问题,所以 ...

  10. C#读取Excel数据操作大全

    苦丁茶 发表于 2014-02-10 12:58:00 | 分类标签: ASP.NET 读取Excel 本文介绍下,用C#读取excel数据的例子,包括读取整个工作薄的数据.读取工作薄选定区域中的数据 ...