什么是回调函数?

在任何一个函数是「一等公民」的编程语言里,这都不会成为一个问题。简单说,回调函数就是传递给其他代码的函数实体或引用,但其内涵远没有这么简单。

回调函数本质上提供了一种与常规的上层调用下层代码相反的模式,使得底层代码也有机会反调高层的代码,这大大提升了代码的能力,也同时给工程化项目带来了新的问题和挑战。

回调函数也是事件驱动式编程的基础,使得程序不必像传统的流程驱动式编程那样亦步亦趋的向下进行,而是可以被动性的由外来事件来触发进行,这几乎是所有图形化编程最基础和标准的实现方式。

阅读全文 »

独立书店,维基百科给的描述是「主要以当地人拥有、经营的书店」、「可以是连锁书店的相反词」,这个描述多半还给「独立书店」这个词涂抹上了一点纸质书年代的理想主义色彩。在电商平台、互联网经济大行其道的今天,甭说是「当地人经营」的书店了,即便是那些可以给不同地域的人留下共同回忆、实力还算雄厚的半独立半连锁书店,其生存状态同样不容乐观。又或者说,作为一家「书」店,单看其书籍的销售量,基本已经可以用「垂死挣扎」来形容了。本文就着眼于这些宽泛定义的独立书店的生存困境。当然,新华书店至少是不在这个讨论的范围之内了。

阅读全文 »

窗外是早晨浓重的雾。那的确只是雾,而不是在这座城市常见的霾。

窗子属于道路边一幢十多层高的居民楼,楼的西边儿有一棵不知名的树。树长得很高,树顶已经没过了两旁的建筑。虽然高,但看起来并不显得十分茂盛。树枝均匀的分布在树干上,让树整体上显得很有层次,像二十多岁少女的身姿。

透过洒落在晨雾里的朦朦胧胧的阳光,还是可以勉强从树下看到树上叶子的形状。椭圆形的树叶,面积并不大,长度只及人类中指的二分之一左右。叶片边缘有细小的锯齿,但在这么大的雾里肯定是分辨不出的了。或许是因为阳光的缘故,树南侧的叶子明显比北侧要茂密一些。

阅读全文 »

「学习一门新的编程语言」是每个程序员都必然会面对的一个课题(注:本文特指工程实践中常用的高级编程语言)。自从高一开始编程到现在,我也接触了不少的编程语言,有的语言已经能在工作中得心应手的使用;有的语言用的不多,但大概了解其设计,也能在官方文档的帮助下简单使用;还有的则之前很了解,但很长时间没有使用过了。

换一份新的工作是最有机会让程序员接触到新的东西的,最近我就应工作需求开始接触一门新的编程语言,学习过程中难免会和已经熟悉的编程语言进行对比,然后发现其实编程语言的学习完全是有「套路」可循的,这篇博客试图总结一下这种「套路」。

阅读全文 »

Shared mutable state is the root of all evil
共享的可变状态是万恶之源

Pete Hunt

大概是从去年年底开始,我开始断断续续地了解 Erlang 这门语言。之所以会想要去学习它,是因为它跟我已经比较熟悉的任何一门语言都有着截然不同的设计理念,而且我了解得越深,就越为其设计思想所折服。

虽然这门语言的年纪早已不算年轻,而且似乎从未「大众流行」过,但在如今 CPU 多核化和云计算的时代背景下,Erlang 却焕发出了不一样的生机。

阅读全文 »
0%