Submitted by gouki on 2010, April 19, 2:03 PM
hooks这玩意,一向是被认为是可扩展的代名词,当一个系统启动了hooks后,他就变得可扩展了,同样,他的性能也就需要被众人拿出来做比较了。
目前被很多人拿来做比较的是两款程序:drupal和wordpress,是使用量最大的博客程序之一,在很多人眼里,这两个程序已经脱离了博客,而是CMS了。drupal前后台不分是我最不舒服的地方,所以wordpress才是我的首选。或许大家看到我的TAG里面还有ThinkPHP和QeePHP,那是因为这两个框架都在考虑有行为加入,行为嘛,相对于框架,就当于一个hooks,所以我也加上了这两个框架
thinkphp的Add_filter,add_action和wordpress有点相像 ,而qee因为没有仔细看过,所以不太清楚(flea的时候好象没这个功能)
跑题半天了。上文了
Drupal怎么就知道什么时候调用一个模块来处理特定的请求?
这个是通过Drupal的hook机制完成的,下面解释一下hook的工作机制。
当Drupal处理来自用户的一个请求,它通过一系列步骤进行。比如:Drupal核心首先引导这个应用,确定关键变量和经常使用的功能。接下来,它加载 关键库、主题和模块。接下来,它继续处理请求,将请求的URI映射到正确的处理代码,等等。然后它为数据应用一个主题,为输出来格式化信息。最后它返回输 出结果到用户的浏览器。
在循序渐进的预定义时刻,Drupal进行勾取。这意味着什么呢?简短的说,它意味着Drupal测试部分或全部当前启用的模块,寻找遵循特定的预定义模 块的函数。一些已经连接这个进程到“回调”的模式经常被用在事件处理模块中。Drupal和这个是类似的,但是更加充满活力。
比如说,当它正在创建一个页面浏览内容时,Drupal可能再模块中寻找叫做<modulename>_block() 和<modulename>_view()的函数(在这里<modulename>被每个Drupal检测的模块的名称代替)。 寻找模块包含的这些函数被叫做实施hook_block()和hook_view()勾取。
当Drupal找到这些函数,它执行它们,并且利用这些函数返回的数据创建一个响应来发送给用户。然后Drupal继续循序渐进的处理请求,或许在它进行 过程中执行许多其它的钩子。
当所有的步骤完成并且一个响应发送给用户,Drupal自动清除并且推出。
模块可以定义自己的钩子,这些钩子又可以被其他模块使用。这样一来,hook机制可以扩展到提供复杂的定制行为。
当一个模块提供匹配一个钩子的签名的功能,我们就说那个模块执行那个钩子。比如,假设Drupal有一个叫做hook_example()的钩子。如果我 们定义一个叫做 mymodule 并且包含一个叫做 mymodule_example() 函数的模块,我们就会用到 hook_example().
Hook对于面向对象程序员的启示:
那些对面向对象编程熟悉的程序员可能发现在面向对象语言中考虑将钩子作为一个类似于接口方法或者抽象方法的机制是很有用的。钩子是Drupal将寻找的函 数并在某些情况下需要出现在你的模块中。就像接口方式,一个钩子的函数签名必须匹配Drupal的预期签名。而和接口不同的是,模块开发者可以选择(在一 定程度上)哪个钩子去实现、哪个钩子去忽视。Drupal不要求每个定义的钩子都实现。
参考:《Learning Drupal 6 Module Development》
原文来自:http://www.cnblogs.com/stylesheet/archive/2010/04/16/1713512.html,上次我也写过wordpress的hooks,其实原理都差不多。
Tags: drupal, hooks, wordpress, thinkphp, qeephp
PHP | 评论:1
| 阅读:25529
Submitted by gouki on 2010, April 19, 1:46 PM
发这个新闻,主要不在新闻的内容,而是在回复。仿佛当年的项庄舞剑,意在沛公差不多。
新闻原文是这样的:
Linux基金会执行董事Jim Zemlin声称Linux的市场地位十分稳固,尽管几位Linux内核的关键维护者已经头发花白。Linux Weekly News的主编Jonathan Corbet在上周举行的Linux基金会协作峰会上挑 明了这一问题,他指出Linux内核团队的年龄一年比一年长,而年轻一代的开发者没有参与进来。为 什么Linux现在无法吸引年轻开发者?
著名的内核开发者Andrew Morton也承认,他们越来越老,越来越累,而且没有看到其他人像他们过去那样充满激情的投入到一件事上。他同时指出,这个问题比较复 杂,因为随着内核代码越来越复杂,进入这个领域的门槛也越来越高,参与内核开发的开发者需要有丰富的经验和知识。他表示Linux内核 团队鼓励年轻一代的热心参与。
也有人评论认为,这种状况和学校的计算机教育也有关系,现在的计算机科学教育不再和1980年代和90年代那样关注底层开发和硬件交互,而 是主要学习高级语言如python、.Net、java等等。
编译/solidot
回复是这一条:
XML/HTML代码
- 匿名人士 发表于 2010-04-19 13:33:05
- 因为年轻人要买车买房娶老婆……
极有同感,大家可以去
为什么Linux现在无法吸引年轻开发者围观
Tags: 开发者, 内核
Linux | 评论:2
| 阅读:18192
Submitted by gouki on 2010, April 19, 9:28 AM
这篇文章有点意思,不过我更多的想的不是他所说的这种分类,一般来说,在电子商务里面这方面,这方面其实是最难界定的。产品A既可能属于B分类,也可能是属于C分类。但是在促销的时候,B分类产品不打折,C分类可以打折,这时你把A产品怎么处理?打折还是不打折?
QQ好友列表:
+太原(9/39)
+运城老乡(9/49)
+西安(9)
+学校(19)
问题:
QQ好友上新建了一个女孩组和一个西安组,上面的整理方式,发现经常 弄错,比如“XX“同学,是我女友介绍认识的,我将她顺便放在太原组里面,后来知道她不在太原,山西运城人士,当我和她聊天时候,连我自己都很吃惊经常 问,太原的一些情况,很是影响人家心情,搞的自己也很尴尬。
很长一段时间,渐渐习惯这种分类,突然间觉得这样的分类很不科 学,很明显,这涉及SNS的经典问题,以及信息架构的经典问题:如何做一个有效分类?
我的需求:
1. 新添加一个朋友的时候固定存放
2. 常联系的人立马可以找到
3. 和我趣味相投的统统放在一起,玩到一起的,闲来没事可以出去一起 疯狂的
4. 能够表达出我的职业规划,定位明确,可以清楚的阐述我的社会活动 能力与人际关系
详细说明:
要做到:
1. 清楚地表现好友信息:一看这个分类,就知道这一类型的人是干什么 的,和他们应该在那些方面可以顺利沟通清楚问题。
2. 层次结构清晰:一看这个分类,就知道什么人在这个分类下面,分类 下面涉及到什么朋友
不应该是:
1. 这个分类给人一种距离感,陌生
2. 我想找的是分类A, 但你却出现在分类B中?NND
3. 这个分类做出来不能让我自己都犯晕!
问题的表象是如何找到一个合理的好友分类方式,深入问题的本 质,其实是不满足我的需求,而QQ体现的核心是我的二字,因此人际关系、社会活动能力、我的职业规 划就是该信息架构问题的关键!这样就有了看似简单但能立刻解决问题的分类方式:
QQ好友列表:
+熟人(9/19)
+一家人(9/19)
+一帮子(9/14)
+光屁股长大(9/100)
+刚认识(2/10)
+xxx公司
+xxx公司
一切就这么简单,采用这个分类以后,立 即心旷神怡!
--EOF--
原文来自:http://www.cnblogs.com/u_xiaomo/archive/2010/04/18/1714953.html
不过话说回来,抛开电子商务的因素,wordpress的分类设计的就是挺不错的。一篇文章在你迷惘的时候,可以放到多个分类里,分类又只是相当于一个标签。这样的设计让使用者也很爽。只是开发的时候累一点,SQL的性能差一点点而己。
Tags: wordpress, qq, 架构, 数据库
DataBase | 评论:2
| 阅读:25620
Submitted by gouki on 2010, April 18, 9:17 PM
Google教你如何SEO,听到这个,你是不是很不相信?很意外?说实话我也真的很意外的,作为一个搜索引擎,你居然把SEO方法教给大家,想想都不可能。可是事实上,在 Inside AdSense-中文网站上已经有类似资料了,比如Google SEO 入门教程,又比如这篇:优化网站的抓取与收录。
说白了,其实google也希望大家多用用google也只有这样,他的广告才能推销得出去。可惜对我来说不太好。要知道我用了google广告很久,但真的没有什么点击率。而另外的朋友做了一段时间却已经有了不菲的收入。
因此对于google的这些SEO资料,我也就纯粹做做参考,不过,有些东西对于增加用户粘度啥的,还是有点用户的,比如作为一个用户,当你看到你的域名把整个地址栏都填满的时候,恐怕你也没有多大的兴趣把它复制给你的朋友吧。当然我想信,如果某个用户复制了很长很长的域名给你看的时候,你会点击它吗?这样地址在我眼里就是垃圾网站的代名词,只有那些作骗子网站才会有这么长的网址。
- 去除URL中的用户相关参数。那些不会对网页内容产生影响的URL中的参数——例如session ID或者排序参数——是可以从URL中去除的,并被cookie记录的。通过将这些信息加入cookie,然后301重定向至一个“干净”的URL,你可 以保持原有的内容,并减少多个URL指向同一内容的情况。
- 控制无限空间。你的网站上是否有一个日历表,上面的链接指向无 数个过去和将来的日期(每一个链接地址都独一无二)?你的网页地址是否在加入一个&page=3563的参数之后,仍然可以返回200代码,哪怕 根本没有这么多页?如果是这样的话,你的网站上就出现了所谓的“无限空间”,这种情况会浪费抓取机器人和你的网站的带宽。如何控制好“无限空间”,参考这 里的一些技巧吧。
- 阻止Google爬虫抓取他们不能处理的页面。通 过使用你的robots.txt 文件,你可以阻止你的登录页面,联系方式,购物车以及其他一些爬虫不能处理的页面被抓取。(爬虫是以他的吝啬和害羞而著名,所以一般他们不会自己 “往购物车里添加货物” 或者 “联系我们”)。通过这种方式,你可以让爬虫花费更多的时间抓取你的网站上他们能够处理的内容。
- 一人一票。 一个 URL, 一段内容。在 理想的世界里,URL和内容之间有着一对一的对应:每一个URL会对应一段独特的内容,而每一段内容只能通过唯一的一个URL访问。越接近这样的理想状 况,你的网站会越容易被抓取和收录。如果你的内容管理系统或者目前的网站建立让它实现起来比较困难,你可以尝试使用rel=canonical元素去设定 你想用的URL去指示某个特定的内容。
上面这些内容都可以值得作为参考。无谓的重复的内容,只会浪费大家的精力。呵呵。
SEO本来就是一些小技巧 慢慢的累积起来的。觉得有用就参考一下吧。
Tags: google, seo
Misc | 评论:0
| 阅读:18281
Submitted by gouki on 2010, April 18, 11:49 AM
昨天刚说QQ域名邮箱升级,却发现原来网易的域名邮箱又悄悄的开通了。
其实在刚刚网易的域名邮箱开通时,我还是准备想用的。只是我刚准备用的时候,它就关闭了。。
后来尝试使用了微软的域名邮箱live.com还用了google的域名邮箱(由于google的不能绑CNAME【因为功夫网】,导致只能到google页面登录。)
再后来就是QQ域名邮箱了,那也是09年的事情了。
昨天又听说网易域名邮箱开通,是在cnbeta上的事情:
--start--
前几天听说网易将在今天提供免费域名邮箱服务,今天一早就打开,结果还没有上线,中午打开也还没有。刚刚发现已经上线了,可惜需要邀请码。记得网易在前两年就搞了免费域名邮箱,启用的域名是ym.126.com,但是上线没多久就关闭了。自从腾讯搞了个免费域名邮箱后,我就一直使用腾讯的域名邮箱,还不错,相当于是QQ邮箱名换成自己的域名后缀。 网易在中国算是邮箱老大,但是QQ邮箱上线后,腾讯抢了不少用户,眼看蛋糕一点点被抢走,看来网易也得想法子了。
网易域名邮箱是免费的,网址是:http://ym.163.com ,目前是需要邀请码才能注册,我也还没能得到邀请码。虽然很想试用,但是最终我可能还是使用腾讯的域名邮箱,因为真的很方便。
--EOF--
原文地址为http://www.cnbeta.com/articles/108827.htm
Tags: 网易, 域名邮箱
Misc | 评论:0
| 阅读:16230