摘要: 我认为,JS最精彩的思想是突破了当时 OOP 的局限性,把object而不是class变成了一等公明(Eich 的1,4,5三条都是这一思想的展现)。 C++,Java,C#等语言其实是class-oriented,强调type,没有作为个体的object的支持,只有“共性”而没有“个性”。JavaScript作为一“动态语言”,理所当然地支持动态地创建object,支持动态地修改object. 阅读全文
posted @ 2014-09-02 14:46 Yang_Lian 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 理解C++变量的六大属性,是深入理解C++变量,也是C++语义的重要一环。由于“总分性”的概念不为专家强调,这里专门著文小序,以期抛砖引玉。 阅读全文
posted @ 2014-09-26 05:20 Yang_Lian 阅读(1158) 评论(6) 推荐(3) 编辑
摘要: C++ 11 的lambda expression(简称LB),在可以保证和inline expression同样性能的条件下,增加了参数功能和闭包功能,是我们写出简洁,明了,易维护代码的绝佳工具。应用时,为了避免代码重复和增加隐身类的数量,可用有名无型的LB变量。LB也可以赋值于std::function,当作函数指针使用,但是性能不及简单地inline使用。 阅读全文
posted @ 2014-09-13 06:01 Yang_Lian 阅读(2550) 评论(0) 推荐(2) 编辑
摘要: C++ built-in array对class object的支持是十分重要的语言构造,它是C++把class object和原始变量同样对待的又一反映,它大大增加了C++的附加值。 然而我们一如既往,需要对C++这一语言构造的语义深入了解。以便正确使用C++ built-in array。 阅读全文
posted @ 2014-09-10 06:18 Yang_Lian 阅读(1251) 评论(0) 推荐(2) 编辑
摘要: 异常处理是C++中具有重要附加值的语言构造,为安全可靠的应用程序提供了基石。 但是它也同时具有时空两方面的代价(trade off),我们在应用时要清楚这个方面。异常应该在“异常时”用 (好像是废话,其实是设计思想和模式的重要一环),不要把它当作方便的“控制构造 control construct”来用。如果应用容许,也要尽可能减少“热点”,减小热点列表。 阅读全文
posted @ 2014-09-08 10:07 Yang_Lian 阅读(2854) 评论(3) 推荐(0) 编辑
摘要: C++ 11加了许多新的功能。其中对C++性能和我们设计class的constructor或assignment可能产生重大影响的非 rvalue reference 莫属!我看了不少资料,能说清它的不多。下面我企图用简单的例子来说明,希望读者能够理解并应用这一重要的语言构造。 阅读全文
posted @ 2014-09-05 07:28 Yang_Lian 阅读(1546) 评论(4) 推荐(1) 编辑
摘要: 在应用inheritance时,除去基类里无用的constructor,对大量构造的object的性能来说,会有明显的影响。不幸的是,微软的__declspec(novtable) class modifier对解决这个问题没有提供任何帮助。在设计海量存储的object的应用中,我们应该尽量用POD来做其基类,避免上面CTest类那样明显的性能漏洞。 阅读全文
posted @ 2014-09-04 01:53 Yang_Lian 阅读(1143) 评论(5) 推荐(1) 编辑
摘要: 我的上篇博客标题不对,造成一些误解。我认为博客的宗旨不是背教科书,而是分享研发心得。我的上篇标题因该改成“JavaScript 闭包的一个议题:它对outer scope 的影响”,因为我没有严格地去分析闭包的定义,而是分析了实现闭包的其中一个语义问题。网友“穆己”的“scope chaining”的确是比较接近闭包的实质,但也不全面。我只好抛砖引玉,再做一次企图。 闭包的含义包含了下列三个主要概念 阅读全文
posted @ 2014-08-27 14:51 Yang_Lian 阅读(1170) 评论(4) 推荐(2) 编辑
摘要: 在JavaScripot函数闭包的定义中,一般都有一个outer 函数,一个inner函数。那么“闭包”到底是指outer函数呢,还是指inner函数? 从官方定义来看,并不清楚:A closure is a combination of a code block and data of a context in which this code block is created. 阅读全文
posted @ 2014-08-26 15:08 Yang_Lian 阅读(901) 评论(3) 推荐(0) 编辑
摘要: 通常认为,性能的改进是90 ~ 10 规则, 即10%的代码要对90%的性能问题负责。做过大型软件工程的程序员一般都知道这个概念 阅读全文
posted @ 2014-08-24 04:24 Yang_Lian 阅读(1151) 评论(0) 推荐(0) 编辑