然来自己的顿悟,只是别人的基本功

2019-04-07  本文已影响0人  Thehrdertheluck

在上一篇文章《万字长文》感慨到然来自己的顿悟只是别人的基本功,经常性格物致知明白其所以然,无论工作生活还是社会现实方面,总有这样的体会。这次借助最近对工作中框架源码的学习谈谈我的顿悟。之所以最近学习框架源码,当然是和自我驱动力有关系,一是兴趣驱动,二是技术驱动,三是面试驱动;对框架源码有兴趣就好像对北京鸟巢感兴趣一样,对内部的结构精美非常好奇,为什么要这么做这么编程,另外一方面总会感受到自己技术太菜了,总会从源码中学到含金量高的质量高的编程思想;再次是技术驱动,曾经自己在外包公司划水划得厉害,没有沉淀没有成长,倒是对区块链对投资着迷了,大部分时间精力投入区块链,转回头才发现已经面临淘汰边缘,所以想加速技术上成长;最后当然是面试驱动,无论大公司小公司总喜欢问技术性原理,事实上如同问“造航母的技术,做螺丝钉的活”,不管怎样都是为了面试好拿到满意的offer 所以框架源码的学习是计划之内做的事情。

我写东西一贯秉持着“学习、分享、创造”原则,这里不谈我对框架源码的代码学习,谈通过看源码以及相关源码资料所感悟的编程思维。说个题外话,最近李笑来老师的新书《自学是一门新手艺》谈自己如何学习Python,并把自己学习过程和笔记公开在开源(Open Source )GitHub 社区——可谓是程序员业界内的天堂,没有你想不到只有你写不出来的代码,在这应有尽有。

我把感悟的编程思维同时是别人的基本功,用3个词分别来讲述,3个词分别是:优盘化、模块化和组件化。

优盘化

挺喜欢用这个词,优盘这个大家都很熟悉,格式化想必都知道,就是清理垃圾文件释放内存空间,就像大脑需要放松呼吸新鲜空气,而代码的内存可以近似看作优盘存储空间,而代码中的基本类型、数组和对象可以看作优盘的文件和文件夹。这还不是重点,代码里的垃圾回收机制和内存释放及性能优化,则是重点。好比优盘里面东西装太多东西了,已经不能再装了,需要删除清理一些文件或文件夹。大脑学习也是这样,工作时间长了或者学习时间长了,总会晕头转向导致脑壳疼转不动,也需要休息。

关于垃圾自动回收,大脑的“垃圾自动回收”就发生在我们睡觉的时候,正所谓一日之计在于晨并无道理,大清早脑袋里面所想则是当天要做的紧急之事或重要之事。对于我而言,要么是写点东西要么是看点技术性文章,把最佳状态把最清晰大脑拿去攻克比较困难的事情。

模块化

早在之前写过一篇《重要法则:万法归一归纳演绎》谈到了模块化,因为它跟我的工作紧紧相关,模块化开发思维潜移默化影响着自己,对模块化又有了新的认识。对模块化的概念可以想象搭积木的一个个木块,可以想象汽车的一个个零部件。进而想想每个木块每个零部件是不是之间有耦合有嵌套有依赖关系,它们互相作用互相集成,就一步步变成工程化的项目。

确实在工作中模块化开发感觉很爽,想实现什么功能什么业务就去看看有没有这样的模块这样的轮子,可以好不夸张地说,做个纯粹的“拿来主义”。另一方面当然不能止步于此,再去想模块化的意义何在作用何在,工作上能感受到模块化带来的高效率办公,并从模块化中有序性和有效性的特点,启迪于生活的思考。

常常说人要靠谱,如何去衡量一个人的靠谱,有一句话说得好,要做到靠谱就看他做事有没有“事事有回响,件件有着落”。结合模块化,把一件一件事情看作一个个模块,假如你对张三做一件事对李四做一件事,相当于张三在你身上调用一个模块李四在你身上调用一个模块,进而假设你的信用你的个人品牌就是一个个模块积攒而成,而张三李四就是你的品牌用户信用评级者,他们自然而然想到你的“模块”好不好,有没有给他们带来高效率合作,有没有给他们用得愉悦,就成了衡量的标准。
以上是对模块化思考的心得分享。


image.png

组件化

如果把模块化比作原材料,组件化则是加工厂。组件化是模块化的进阶版,是模块化的延伸拓展。在我们工作开发中有个专有名词叫“颗粒度“,是针对于组件化开发衡量的,要论组件化开发好不好,就看颗粒度细不细,细致化的组件往往意味着代码的健壮程度。所以对于组件化开发,很容易衡量我们的技术水平,简而言之,归根到底是你开发的组件能给多少人带来便利能承受住多少环境下的压力测试;当然最终还是为了自己“偷懒”,凡是要重复三遍以上的事情,在程序员眼里就会条件反射动脑筋想该如何封装成“黑盒子”,写一次就可以用N次,正如write once, use everywhere,这正是计算机的伟大之处之一——复制粘贴。

在程序员的世界里“懒是第一生产力“,就离不开模块化组件化甚至是造福大多数程序员的框架。 那么如何把程序界的组件化迁移运用于其他方面,先想象人的每个阶段,当我们说“在我年轻时候……我在你这个阶段……”就等同于“感同身受”,在调用我们的记忆与经验,于是可以简单把记忆与经验结合的阶段当作组件;也许还是不好理解,那就把微信的小程序支付宝的小程序理解成组件,虽不能等同,但满足一大特性,就是“拿来即用,用完即走”。根据这一特性再延伸我们自身,就可以把“组件=能力”划等号了,你的能力是运用实际当中解决实际问题,而且是拿来即用用完即走的东西。

以上就是我在学习框架源码收获的心得,并尝试把优盘化、模块化和组件化思考迁移运用其他方面。为什么要取“自己的感悟,只是别人的基本功”,原因在于学的越深越觉得渺小,当觉察到框架思维的伟大之处,别人早就运用在框架上造福了作为程序员的我们。向为我们造福的人致敬。另一方面不会因为学无止境学海无边,再怎么觉得渺小再怎么觉得累困,也要再接再厉,因为时代节奏变化太快太大了。

努力吧,加油,骚年!

上一篇下一篇

猜你喜欢

热点阅读