背景介绍:针对码农在学习框架过程中出现的各种认知误差,笔者提出了“红黑鸟框架学习法”,其来源于一篇热文《请停止框架的学习》的思考。

笔者在刷头条看到了一篇文章:《请停止框架的学习》。首先在此声明一下,笔者是从头条上看到的,不是在公众号上看的。因为笔者很少看其他人的公众号,感觉大多数人都是扯淡而已。尤其那些日更族,好的内容怎么可能是日更呢?很多人辛辛苦苦写文章,最终都会变质到出卖自己的灵魂罢了,乱接广告,乐此不疲。

言归正传吧。虽然是国外人写的,但是笔者依然感觉这是一篇没有水准的烂文。笔者承认英语国家的人有语言优势,编码对他们来说更容易一些,所以普遍的水平稍微好一点。

原文作者只看到了框架,他没有更深层的思考一下。真正对IT生涯有害的不是框架,而是框架思维。框架和框架思维是两个不同的事物。即便你扔掉框架,但是你仍然用框架思维去学习其他的东西,也不会有什么好结果的。

这里笔者说一下框架和框架思维的区别。框架,不必解释,mybatis就是一个框架,spring就是一个框架。框架思维是一种思维模式,其主要特点是:死扣规范,无大局观,不懂取舍。

规范往往是框架自身的特征,跟框架绑定到一起的,一旦你学了,就感觉会用框架了,有明显的进步,可是技术更替之后,框架过时了,那么之前费尽心思掌握的规范则很快就失效了。比如说mybatis里面的动态sql功能,涉及到一些元素(if,choose,trim),也包括底层ognl的东西,还有mybatis日志等等,很多都是一些工程化的东西。这些东西只需要顺手抓,即便有些细节踩了很多的坑,也应该学会放手,别把见识和教训当能力。

从大局来看,mybatis与sql是一脉相承的,都是属于数据存储领域。学习mybatis的时候,千万不能仅仅局限于此,要上升到更大的格局。对于sql而言,一块是索引,一块是事务,这是sql的两大支柱。但是在mybatis里面,事务部分只是一带而过,mybatis总不能把事务当做卖点来宣传吧,它宣传的的重点只能是映射。可是我们在学习mybatis的过程中,一定要有大局观,深入sql里面事务,把事务学好了,不仅mybatis没有问题,而且spring里面的事务管理也能更深刻的理解。

死扣规范、无大局观、不懂取舍,这三者其实都是有一定的内在联系,不懂取舍的人,肯定是无大局观,无大局观的人往往深陷工程细节中无法自拔。

大多数人比较懒,连mybatis的皮毛都没有摸全,这肯定是不行的。这些人还轮不到别人提醒他“请停止学习框架”。这些人应该提升如何系统化学习的能力。连一个框架都没有完整的摸上一遍,往往不是懒,而是不会系统化的学习。

少数人太勤了,搞个手写mybatis,甚至有人钻mybatis里面研究ognl问题,还这类人该来个当头一棒:请停止学习框架。这些人不是高手,而是“能手”,是“忽悠小能手”。如果水平高,请不要写这种demo玩意;如果水平低,就不要去山寨mybatis,太自不量力了。请尊重点mybatis吧,在mybaits这个宝藏里面,动态代理,软虚引用,类加载,序列化存储,各种精华比比皆是,岂是一个初学者就能随便仿写的,画虎不成反类犬啊。

红黑鸟框架学习法的核心有五点:

(1)真正对IT生涯有害的不是框架,而是框架思维。
(2)框架和框架思维是两个不同的事物。即便你扔掉框架,但是你仍然用框架思维去学习其他的东西,也不会有什么好结果的。
(3)框架思维是一种思维模式,其主要特点是:死扣规范,无大局观,不懂取舍。
(4)绝大数人还轮不到别人提醒他“请停止学习框架”。绝大多数人应该提升如何系统化学习的能力。很多人连一个框架都没有完整的摸上一遍,往往不是懒,而是不会系统化的学习。
(5)少数人太勤了,搞个手写mybatis,甚至有人钻mybatis里面研究ognl问题,还这类人该来个当头一棒:请停止学习框架。这些人不是高手,而是“能手”,是“忽悠小能手”。

标签: none


添加新评论