造轮子的不同阶段

文章摘自:https://www.zhihu.com/question/21818673。(仅用于方便查阅)

造轮子像学习,是有个渐进的过程的。不要想着,自己弄出来一个组件,就指定火,好大喜功,一步登天,那是不可能的。

第一阶段:学习为主、查漏补缺

先到github,根据喜欢的组件关键字去查找组件,找到自己喜欢的效果,就下载源码读一读。看看人家是怎么实现的,怎么做的,用到哪些技术,不会的去学。

第一阶段,主要是以学习为主,先看人家是怎么做的,学习相关技术放出来。

半年以后,会发现,在这个领域,你的知识已经成为系统,这时候,就可以尝试自己写一个控件了。

第二阶段:简单控件自己实现

在自己的知识形成体系以后,再看博客或文章时,经常会看到人家介绍一些组件,这时,就想如果自己实现,要如何实现。自己先尝试实现出来,把bug都解决。

然后,再去看人家的源码,在对比的过程中,就会发现,思路是不是一样的,他的实现比你好还是差,他里面涉及的一些知识,是不是有问题等等。

通过不断的磨练,这方面的知识基本上就达到活学活用了,可以进入下一步了。

第三阶段:分析复杂控件实现原理,提交Merge Request

在自己能实现一些简单控件的时候,这时候就需要找一些复杂的组件来拆解了,看人家的代码架构。学习架构的知识和实现原理,为自己实现复杂控件打下基础。

比如,我前段时间研究Lottie框架,Lottie是一个动画框架,通过将AE做出来的动画直接应用于代码中。

在了解了Lottie的原理后,发现Lottie在字体解析与绘制时存在bug,就改它源码,修复bug,增加功能等等,以使这个框架能顺序应用到项目中。

这就是达到一定水平后的驾驭能力,当你对一个领域熟练以后,对于高端框架,完全能够帮它修复bug,扩展功能,更进一步的,你可以改变它的核心逻辑,以达到更进一步改进框架的能力。

第四阶段:实现自己的组件——实现真正的造轮子

当你在使用一个框架、组件时,发现它用着不爽,或者有自己的想法时,就可以尝试自己去改进一个出来。当然,最好的改进方式,还是先对市面的所有相似组件原理完全了解之后,在他们的基础上加以改进,效果会更好。

我虽然,将这个步骤放在最后,但造轮子却是随时都可以,大家不必担心自己写的组件不够好,被人批评。等你真正写完,放到github上,你可能会发现,根本没人看。。。。。。批评都不会有。

我们不管做什么事都需要打基石,开始打基石最好的时候便是现在,如果现在不开始,也许往后也不会再开始了。

在工作中要尝试造轮子吗?

工作中,如果时间允许,简单的控件,可以尝试自己写,复杂的组件,建议使用现成的。毕竟公司不是慈善机构,不可能因为一个组件让你写个二十来天,更何况,网上有现成的,拿来用即可。你自己排期,排个二十来天,自己也没办法解释。

词语解释:

1、组件(Component):是对数据和方法的简单封装。组件可以有自己的属性和方法。使用组件可以实现拖放式变成、快速的属性处理一级真正的面向对象的设计。简而言之,组件就是对象。

2、控件:对数据和方法的封装。

组件、控件、库:从内容的角度来讲,就是可以解决的问题的范围的多少。组件<控件<库。再简单些,功能模块。

原文地址:https://www.cnblogs.com/lanyuejiagou/p/13895768.html