2015-02-12 derekchan
WordPress在加載眾多插件和請求的情況下加載速度很慢,而且沒有靜態頁面緩存,用了插件really static效果還是不怎麼樂觀,只能自己寫個頁面緩存了。 頁面緩存的原理就是,用戶通過客戶端訪問網站頁面時,如果沒有靜態頁面緩存則生成靜態頁面緩存,然後加載靜態頁面,有則直接加載靜態頁面。 继续阅读 »
2016-05-26 JustWe
你的问题在于读书太少,想的太多 —— 杨绛 昨天惊闻杨绛先生去世,突然想到了几年前看到的杨绛先生的这句话。我觉得在计算机领域理论知识更是尤为重要,现在某乎上盛行的计算机理论知识(尤指算法)无用论当真特别可悲。在这里我觉得讨论科班非科班的人都是别有用心的,重要的问题在于这些基础的训练,而不是科班非科班,我们知道很多大神都不是计算机相关专业的,但是他们的基础的深厚程度,确是很多科班出身的人无法能及的,所以说一切的问题还是要积累知识。 这学期一直在学编译原理的课程,我实实在在的感觉到了这个课程和相关内容的有趣。尤其是我在学习之前试着自己不借助任何的理论去写一个解释器,竟然也命中了不少的知识,这让 继续阅读 »
2016-11-10 Robert Zhang
你可能听说过Rails、Sinatra这些Ruby Web框架,也可能尝试过其中一、两个,但如果你还不了解Rack甚至根本没听说过它,那么你的Ruby Web开发还停留在表面:Ruby Rack是前面这些Ruby Web框架的基础,Rails和Sinatra都建立在它之上;不了解Rack的原理就无法真正理解你的Ruby Web应用的架构与工作机制、对一些复杂的问题也无能无力。任何一个正经的Ruby Web开发者都应该了解、掌握Rack。 继续阅读 »
2014-01-23 W.Y.
delete 操作符用于删除对象的属性。 似乎很多同学(包括我)对 delete 操作符都是似是而非,为什么有的属性可以被删除,有的却不能被删除?为什么能够删除对象的属性却不能删除变量或函数?在 eval 和 严格模式下,delete 操作符又有哪些特性?等等。。 本文将从基本概念到 ECMPScript 内部原理来学习 delete 操作符。 语法 表达式 javascript delete object.property // 点操作符方式,常用方式 delete object['property'] // 字符串属性名方式 参数 object - 对象名称,或者返回一个对象的表达式 property - 继续阅读 »
2014-01-12 W.Y.
算法原理 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的流程如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需 继续阅读 »
2014-01-14 W.Y.
算法原理 先上一张堆排序动画演示图片: 1. 不得不说说二叉树 要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于 2 的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第 i 层至多有 2i - 1 个结点;深度为 k 的二叉树至多有 2k - 1 个结点;对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则n0 = n2 + 1。 树和二叉树的三个主要差别: - 树的结 继续阅读 »
2014-05-08 W.Y.
AOP
原文连接:Intro to Aspect Oriented Programming 本文简单地介绍了 AOP 的原理,以及 AOP 与其他方式的异同,并没有涉及太多的复杂逻辑,另外推荐下面两篇文章,这些文章中都间接或直接提及了 AOP: 用 AOP 改善 JavaScript 代码 使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求 面向切面编程(AOP)是一种非侵入式扩充对象、方法和函数行为的技术。通过 AOP 可以从“外部”去增加一些行为,进而合并既有行为或修改既有行为。 虽然有很多技术可以用来增加和合并行为,例如继承、组合、委托,然而,在很多情况下,AOP 被证明是更灵活和更少侵入的方式,非常值得将其纳入我 继续阅读 »
2017-04-30 Robert Zhang
Ruby Rack及其应用(上)对Rack的定义、基本原理和构建方法做了介绍,并且提到Rails、Sinatra等web框架都是在Rack之上构建的。现在让我们来看几个Rack作为中间件的典型例子,包括Auth、Session以及Log。 继续阅读 »
2014-01-19 W.Y.
原文链接:Make Your Own AngularJS, Part 1: Scopes And Digest Angular 是一个成熟和功能强大的 JavaScript 框架,也是一个庞大的框架,要正真有效地使用它,需要掌握许多新概念。在 Web 开发人员涌向 Angular 的同时,许多人都面临着同样的疑问:Digest 到底是做什么的?可以有哪些不同的方式来定义一个指令(directive)?service 和 provider 之间有些什么区别? Angular官方文档是非常好的学习资源,并且还有越来越多的第三方资源,不过,想要深入了解一个新的框架,没有比分解它,然后研究其内部运作原理更加有效。 在本系列文章中, 继续阅读 »
2016-06-23 jude
《编程珠玑》第 32 页,提到:“尽管第一个二分查找程序于1946年就已经公布了,但是第一个没有 bug 的二分查找程序在 1962 年才出现。”还说参加课堂测试的专业程序员中, 90% 写的二分查找程序都有 bug 。 真的有那么难吗?我心血来潮,动手写起了快排(不要问为什么不是二分查找)。隐约记得快排的原理如下: 继续阅读 »