自己动手实现XXX系列
前记:
最近看了rongjun的一片文章:自己动手实现jdk代理类。按照上面的例子敲完才发现,JDK动态代理 实现底层原来如此简单,只是大量的使用了反射,类编译,类加载一些常规的东西
而且本质也是如实此简单。然后回头看源码,天呢,实现很长很长,当然里面加了很多各种异常的处理,各种抽象。。。呵呵,私以为。如果所有JAVA实现的框架,技术 ,如果都能如 rongjun这种代码一样,我想大家自己跑一遍并解读源码,我想大家就不会被各种拗口名词,各种不断新出的技术术语 所蒙蔽所不解。。所谓万变不离其宗,各种复杂的东西,拨开迷雾本质是:各种基本元素的不同花样组合。此时,终于明白以前我的一位架构师导师的苦心了,他告诉我,要把JSR熟读搞懂。JSR就是JAVA的各种复杂基本元素。
以上是我对于“动手自己实现XXX”的感悟。
鉴于做为一个有点小追求技术人员,仅仅满足于怎么用这个问题,简直太肤浅太肤浅了.....
明白 为什么 非常重要,归综下来以下好处。
- 明白底层原理,那么在面对众多不同的产品时才能明白其利弊,才能做最基本的技术选型,也就才能达到更好的使用。
- 世上无原创,读懂各种技术,各种术语 的底层思想,这些都是解决问题的套路,可以为我所用,如果滚瓜烂熟各种套路,如果再掌握最基本的元素,根据场景 实现自己的框架 ,那岂不是信手拈来。如果这个场景使用非常广泛,那不就推广出自己发布的框架吗,哈哈哈。。。
不过知易行难,加油~
因此必须要求自己知道常用技术底层的实现原理,其中自己动手去实现一个精简版的技术 是 加深对一个技术原理理解的 非常好的方式。我需要保持 ,故列出一个清单,当想到去实现的一个技术 ,就记录下来并持续 自己动手~
----------------------------------------------------------------------------------------------------------------------------------
- 自已动手实现springIOC
- 自己动手实现SpringAOP
- 自已动手实现JDK动态代理
- 自己动手实现RPC框架
- 自己动手实现.....
自己动手实现XXX系列的更多相关文章
- Seven xxx in Seven Weeks ebooks | 七周七 xxx 系列图书 电子书| share 分享 | free of charge 免费!
Seven xxx in Seven Weeks ebooks | 七周七 xxx 系列图书 电子书| share 分享 | free of charge 免费! Seven Languag ...
- 动手实现CapsNet系列——1 概述
Geoffrey Hinton是深度学习的开创者之一,反向传播等神经网络经典算法发明人,他在17年年底和他的团队发表了两篇论文,介绍了一种全新的神经网络,这种网络基于一种称为胶囊(Capsule)的结 ...
- 动手实现CapsNet系列——2 实现(未完待续)
执行后返回如下信息: Loading complete. Training started! [epoch 0][iter 0] loss: 0.8082, acc: 14.0000% (14/100 ...
- 自己动手写ORM的感受
之前看到奋斗前辈和时不我待前辈的自己动手写ORM系列博客,感觉讲解的通俗易懂,清晰透彻.作为一个菜鸟,闲来也想着自己写一个ORM,一来加深自己对 ORM的理解,以求对EF,NHibernate等ROM ...
- 自己动手写插件底层篇—基于jquery移动插件实现
序言 本章作为自己动手写插件的第一篇文章,会尽可能的详细描述一些实现的方式和预备知识的讲解,随着知识点积累的一点点深入,可能到了后期讲解也会有所跳跃.所以,希望知识点不是很扎实的读者或者是初学者,不要 ...
- Github干货系列:C++资源集合-
Awesome CPP,这又是一个 Awesome XXX 系列的资源整理,由 fffaraz 发起和维护.内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. ...
- TiDB 源码阅读系列文章(一)序
原创: 申砾 PingCAP 2018-02-28 在 TiDB DevCon2018 上,我们对外宣布了 TiDB 源码阅读分享活动,承诺对外发布一系列文章以及视频帮助大家理解 TiDB 源码.大 ...
- Github上安卓榜排名第2的程序员教你如何学习【转载,侵删】
来自:峰瑞资本(微信号:freesvc)文章作者:代码家(微信 ID:daimajia_share) 软件早已吞噬整个世界,程序员是关键角色.过去 40 年中,许多伟大的公司都由程序员缔造,比如比尔· ...
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
随机推荐
- [置顶]
曙光到来,我的新书《Android进阶之光》已出版
独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了 ...
- 使用编译时注解简单实现类似 ButterKnife 的效果
这篇文章是学习鸿洋前辈的 Android 如何编写基于编译时注解的项目 的笔记,用于记录我的学习收获. 读完本文你将了解: 什么是编译时注解 APT 编译时注解如何使用与编写 举个例子 思路 创建注解 ...
- 求二叉树的深度 python
二叉树有深度和高度两个属性,一个节点的深度指的是从根节点到该节点路径的长度,根节点的深度为1:一个节点的高度指的是从该节点到叶子节点所有路径上包含节点个数的最大值.叶子节点的高度为1,往上节点的高度依 ...
- iOS开发:UITableView的优化技巧-异步绘制Cell
最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的.加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优 ...
- python sys.path.append()和sys.path.insert()
python程序中使用 import XXX 时,python解析器会在当前目录.已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错. 使用sys.path.append()方法可以临时添加搜索 ...
- smvc配置属性编辑器:
配置属性编辑器: 在springmvc.xml中配置: <!-- 注解驱动 --> <mvc:annotation-driven conversion-service="c ...
- 并查集实现Tarjan算法
本文是对http://noalgo.info/476.html的一点理解,特别是对其中 int father[mx]: //节点的父亲 int ancestor[mx]; //已访问节点集合的祖先 这 ...
- JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用
下面把项目中的用户类中有个:一对一 一对多 多对多的注解对应关系列取出来用于学习 说明:项目运行正常 问题类:一对多.一对一.多对多 ============一对多 一方的设置 @One ...
- 原生Ajax使用
Ajax基础 Ajax(Asynchronous JavaScript And XML)概念:通过XMLHttpRequest对象向服务器提出请求并处理响应,进行页面的局部更新. AJAX都有哪些优点 ...
- POJ3686 The Windy's 【费用流】*
POJ3686 The Windy’s Description The Windy’s is a world famous toy factory that owns M top-class work ...