十二
23
2010
2

CosHtmlCache静态化的自动化访问

为了提升访问速度并利于SEO,博主的博客使用CosHtmlCache插件进行静态化处理,该插件的一个不足就是就是必须在非登录状态下访问页面才会自动生成缓存,在后台的插件设置中只有删除缓存而没有一次性静态化的选项,这非常不方便,特别是当博文比较多达到几百篇时,显然人工点击是让人无法忍受的。

第一个想到的是直接修改插件,对文章内容进行变更后自动生成缓存,但是这里有一个问题:如果插件升级,就必须重新修改代码,另一方面这也破坏了封装原则。

鉴于此,我写了两个程序尝试解决这个问题,思路是用程序模拟GET请求自动访问所有页面,这样达到了与人工点击一样的效果。至于如何得到博客的所有文章和所有页面的地址,我使用了Google Sitemap XML插件。当然并不是单纯为了得到网址才安装的这个插件,之前为了优化Google的搜索,用这个插件自动生成了Sitemap然后在Google的Webmaster Tools里提交就可以起到比较好的收录效果。这个插件当然也可以提供博客所有的网址。

Java版本采用DOM对XML文件进行处理,PHP版本采用正则表达式解析出网址。 (更多…)

Written by Hesey in: Java,技术 |
十二
16
2010
0

浅谈多态机制的意义及实现

在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。这也是为什么有人说,使用面向对象语言的编程和面向对象的编程是两码事。

多态并没有一个严格的定义,维基百科上给它下的定义比较宽松:

Subtype polymorphism, almost universally called just polymorphism in the context of object-oriented programming, is the ability of one type, A, to appear as and be used like another type, B.

一、子类型和子类

这里我想先提一下子类型(Subtype)这个词和子类(Subclass)的区别,简单地说,只要是A类运用了extends关键字实现了对B类的继承,那么我们就可以说Class A是Class B的子类,子类是一个语法层面上的词,只要满足继承的语法,就存在子类关系。 (更多…)

Written by Hesey in: Java,技术,面向对象 |
十二
16
2010
4

吾生也有涯,而知也无涯

昨天有个朋友在 Twitter 上抱怨说不想继续上坑爹的大学了,说实话我也这么想过,总觉得学不到什么真东西,我相信这也是很多大学生的心声。但奇怪的是现在我却越发希望能继续留在学校,能够继续有去图书馆借书的权利,有大把能够自由读书的时间可以支配(当然事实上在学校里并没有这么多空闲的时间,很多时候你不得不去干一些很无聊的事情)。我想工作以后一是没有这么多读书的时间,二是也不会像现在这么有精力和兴致去读好多好多的书,但我仍然希望我能做到这些,你知道,这个行业的知识更新太快,并不是一个学会一项本领就能吃大半辈子的行业。 (更多…)

Written by Hesey in: 思考 |
十二
08
2010
3

为什么说思想高于语法

在普通人眼中,一名程序员懂的语言越多,做出的界面越华丽,很大程度上便意味着他的编程水平越高,但是从软件工程师的角度来说,只从语言、GUI编程这些角度并不足以窥之全貌。语言只是程序开发相对低层的东西(与“底层”有所区别),语言就像工具,和扳手、钳子一样,会用它们只是干活的起始,语言又跟英语差不多,会说Hello World不代表你能用英语和人探讨人生哲学了,相反,语言是基本关,是程序设计的必要条件。

Pascal之父,结构化程序设计先驱Niklaus Wirth提出了那个经典的等式:Algorithms + Data Structures = Programs. 事实上在程序设计、架构设计的过程中,很少会去考虑相关的语言细节(Don’t care for the implement, just design!),当然我会考虑这样的设计采用什么样的语言、哪种框架来做可行且对我来说最高效。这两年脚本语言大行其道,不是因为它们的功能之强大可以超越其它任何语言,恰是因其高效,生产力不仅可以用来衡量程序员,也可以用于评估一门语言。没有最好的语言,只有适合的语言,好的开发者应当懂得因地制宜,用最恰当的手段最高效地解决眼前的问题。 (更多…)

Written by Hesey in: 思考,技术 |

©2006 - 2011 Hesey (舒)