zoukankan      html  css  js  c++  java
  • 如何造轮子

    作者:UCloud云计算

    链接:https://www.zhihu.com/question/407370305/answer/1356357699
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    首先,看源码。

    想要拥有造轮子的能力至少你得熟悉别人的轮子,源码的阅读是不可缺少的。源码并不是那么的高高在上,可以先从HashMap、HashTable、ConcurrentHashMap、Vector、ArrayList等集合框架的源码入手,读懂了之后尝试着手写,这些东西事实上读懂一个其他的都是分分钟的事情。像Hashmap实现原理这个问题可以说90%以上的公司都会问,而如果只靠背的话很容易就忘了,自己确实阅读过源码并且手动实现过那就可以记住一辈子。

    接着,封装工具类。

    所谓框架只是个概念,比如早期的JQuery和Bootstrap就称为框架,而现在只能称之为库。而前段中库和框架的关系就类似于java中工具类和框架的关系。封装工具类就是造轮子的基础,或者说封装工具类就是在造轮子。在对源码熟悉并且代码规范和思想有所了解之后,就可以自己去封装工具类了,这里推荐两个工具类:StringUtils和ReflectionUtils,当然后者在网上可能搜不到,因为这是我自己造的轮子。前者是对lang3的StringUTils进行增强,如trim方法不能去除特殊字符的空白符,StringUtils没有提供脱敏方法,没有中文钱数转英文方法等等,这就是这个轮子的缺陷,那么就需要去完善它。而后者就是常用的反射框架,通过对此的封装,能加深对反射的理解,而反射则是一切框架的基础。

    工具类封装的多了,渐渐地就开始由小到大,那么你就可以开始阅读框架源码了,这里建议从mybatis开始,这是最贴近我们的一套框架,通过阅读mybatis框架的源码,加深对其的理解,为其写中文注释等等。最后通过mybatis的插件机制自己写一个分页插件。这是重复造轮子的过程,但是它并不是没有意义。通过一个分页插件,就能加深对MappedStatement、Executor、ResultSetHandler等等等的理解,这对后期自己完全手写mybatis是极有帮助的。

    最后需要提到的是,上面的那些过程一定不要忘记发博客。

    上面仅仅是通过重复造轮子去提高自己的技术水平,而发博客、开源到github则是提高自己的名气。事实上写博客也是将自己的知识点向外输出的过程,只有向外输出了,才能记得更深刻,这也不失为一种学习方法。 

    最后需要说的是,重复造轮子并不是不可取,相反我非常建议多造造轮子,这是对自己技术的磨练,也是更深层次的学习。

  • 相关阅读:
    day 66 ORM django 简介
    day 65 HTTP协议 Web框架的原理 服务器程序和应用程序
    jQuery的事件绑定和解绑 事件委托 轮播实现 jQuery的ajax jQuery补充
    background 超链接导航栏案例 定位
    继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素
    属性选择器 伪类选择器 伪元素选择器 浮动
    css的导入方式 基础选择器 高级选择器
    03-body标签中相关标签
    Java使用内存映射实现大文件的上传
    正则表达式
  • 原文地址:https://www.cnblogs.com/lanyuejiagou/p/13895559.html
Copyright © 2011-2022 走看看