熟悉码农翻身的朋友都知道,我的公众号特点就是:用故事讲解技术。
也有很多人在问我这些技术故事是怎么写出来的? 写一篇得花费多少时间? 这个真不好说。我来举个例子,大家就明白了。
我刚工作的时候,看过一篇文章,讲的是用C语言实现面向对象,当时粗粗看了一下,没留下太多印象。
那时候抱微软的大腿,得学习C++,还有COM这个技术,我就注意到在一些经典书例如《深度探索C++对象模型》,《COM技术内幕》,还有潘爱民的《COM原理与应用》,老是提到虚函数表这个东西,我都有点烦了。
但是想到这是基础知识,就耐着性子研究了一下,才知道这个虚函数指针和虚函数表是如此重要,是C++实现OOP的多态,以及COM技术的基础。
(ps . 曾经热门的COM技术已经不再有人提了,但是虚函数表在C语言实现的各个系统中依然是必备的技术,可见我们应该学习和掌握的应该是这些核心的东西。)
春节前我奉命在新华书店给孩子买书, 忍不住上了四楼去计算机的区域逛逛, 无意间翻了翻Bob大叔的《架构整洁之道》, 站着看了一会儿面向对象编程这一章,书中讲到了OOP编程并不是Java, Python这样的语言所独有的,C语言也可以支持。
这一下子就触动了我, 要不我也写一篇如何用C语言实现面向对象的文章? 转念一想,这种文章太枯燥了,会C语言的人都不多,谁会在意用C语言做OOP啊,写出来也没人看!
但是我作为一个程序员,总觉得这个技术很有趣,不吐不快。 于是我就把这个想法记录了下来, 暂时搁置,以后开发。
转眼间就要过春节了,我突然想到很多人回家都会遇到一个问题: 有男/女朋友没有?
灵感来了!我为什么不写一个段子,让C语言回家过年,被小伙伴们问:有对象没有? 然后顺理成章,把C语言如何实现OOP讲一下?
再加上Unix的发明人Ken Thompson,Linus大神等插科打诨,应该是个有趣的故事。
有了故事的包装,就不那么枯燥了,就会有更多的人把这个故事看下去,理解C语言如何实现封装、继承、多态。
于是就在假期把它写了出来。
写的时候为了运行代码,需要建立一个C语言的环境,正好我有一个Linux虚拟机,就在里边用GCC来编译,后来觉得这虚拟机实在太慢,操作起来很不爽。就下载了一个Dev-C++, 其实本来想用Turbo C来着,但是它实在是太古老了。
就这么一边写文章,一边写代码,断断续续估计得花了七八个小时,主要是C的功力退化得厉害,出了一些错误还得Google才能搞定......
你看写个技术文章是很不容易的,远远比蹭个热点,快速攒一篇难得多。
文章写完了,还得起个好的标题,要不然还是没人点开看,想了几个标题后,确定为《C语言:春节回家,我发现只有我没有对象》。
春节后发了出去,效果还不错!
后来有朋友反馈,C老头儿(这肯定是看过《C老头儿和Java小子的硬盘夜话》)和Java ,Python, JS他们都不是一辈的,不应该和他们一起混......
但是没办法,为了突出C语言没有对象,也只能如此了。
所以你看,没什么秘籍,一篇有趣有料的好文章还是得靠平时的积累,经常是有那么一个线索在脑海中盘旋很久,只是没有合适的机会,没有合适的突破口把他表达出来,有那么一天,灵感激发,下笔如有神,哈哈。
但是这种方式也有很大的弊端,那就是写出来的东西不系统,这也是没办法的事情,灵感是可遇而不可求的东西,大家多多包涵吧!
你可能会喜欢