灵魂需要有个归宿

新的房子租在一座天主教堂旁边,每天上下班都会从神的注目下走过,却一直没机会走近。今天礼拜天,刚好回家路过,发现正好是对外开放时间,就走进去参观了一下。

印象很深的是教堂门厅的旁边有个小橱窗,贴着很多往生教友的教会证件,上面有他们的名字和照片。
瞬间,就感觉到好像本来空旷的教堂里坐满了无数的灵魂,在浮华和尘世中,安静的聆听着主的声音。

这让我想起了去年在山南,藏传佛教的第一座寺庙,桑耶寺中,有个不起眼的角落——地狱之门
紧缩的门上有很多头状的图腾,门上开凿了一个长孔,刚好人眼的高度,让人自然往里看,可是完全漆黑看不到任何东西。
门边挂着两个袋子,很沉。

袋子和门里都是虔诚的信徒放入往生亲人的身份证,或各种信物。一道大门,隔开了前世与今生。

其实很多时候,不管肉体有多强大,权利如何,亦或是信仰还是爱情,都算是灵魂的归属吧。

《代码整洁之道》笔记[1.命名]

关于命名

1. 名副其实

$ad->cloud()->ads(new AttributeFilter('status', Ad::STATUS_ACTIVE));

其实Query和AttributeFilter是一样的,但是一定要用Filter,因为这里是做Filter的事情。

如果你写出一个类,名叫“自行车”,然后后来写了一个方法:

$car = new 自行车;
$car->踩刹车();

典型的名不副实的错误!
如果“自行车”可以代替“小轿车”,也最好用 class 小轿车 extends 自行车(当然,这会犯另外一个问题),
然后使用 $car = new 小轿车。

2. 避免误导

下面的方法返回的是啥?

$ad->get('categorys');
$ad->get('categoryEnglishName');
$ad->get('createdTime');

3. 有意义的

$ad = new Ad;
$_ad = $ad->causeAd();
$tmpAd = $_ad->related();

$_ad是啥?$tmpAd是啥?
不要因为这是暂时的变量或者private的变量就可以随便起名,否则最终被恶心到的是你自己。

4. 读得出来

比如:$c = new Category,$cs是categorys,但是在编码时,思维会断一下。
再比如:antispamBoobyTrap,虽然在知道它的用途之后,大家都会觉得挺好玩的。。。
但是,别拌可爱,别用双关语。

5. 考虑搜索

写代码其实是读代码的过程。
如果想搜索一个类的使用实例时,如果这个类名字叫 class User,
然后还有几个类叫class UserOrder,class UserAddress,class UserExtendsInfo…
恭喜!杯具。。。。

6. 短,再短

之前写过一篇blog,lib里面的class应该是一个名词(名词短语),方法名应该就是一个动词(动词短语)
不是class knockThreeCmNailIntoPineHammer,而是class Hammer。

干掉驼峰是简洁的好办法。

7. 一一对应

下面的$r是什么东西?

$rule = new Rule();
$rules = $rule->getList();
if (!empty($rules)) {
foreach ($rules as $r)
$r->deal($ad);
}

或者,下面的$a又是什么东西?

$ads = $ad->cloud()->ads();
foreach ($ads as $a) {
if ($ad->title == $a->title)
echo 'duplicate title!';
}

还有,还有。。。
insert和append有啥区别? sort和order有啥区别?
避免混淆的好办法是一个概念只对应一个名字。

比如在所有的代码里class Bike的实例最好是一个统一的名字。
不要一会是$bike = new Bike,一会又是$bicycle = new Bike,然后$bke = new Bike;
很多时候,bug就是这样弄出来的。

8. 正常思维

$i应该就是一个计数器,$url应该就是一个URL字符串。

jquery的append原来是move

其实这也可以作为一道题:
<div id=”a”>aa</div>
<div id=”b”>bb</div>
<script>
$(function() {
$(‘#b’).append($(‘#a’));
$(‘#a’).append($(‘#b’));
});
</script>
上面的代码运行之后,HTML是什么样?
答案是(外加一个js报错):
<div id=”b”>
bb
<div id=”a”>aa</div>
</div>
想清楚了,append原来是move。

risk game

risk是个很不错的桌面游戏,中文翻译为“大战役”,据说有长久的历史。

玩起来很耗时间,不习惯“浪费”时间的同学也可以找单机版来玩,电脑的AI也还不错。

下载了单机版,和电脑玩了一下午,最后终于赢了最菜的电脑们一局。
总结一下个人的经验:

1. 地域很重要,独占某大洲就可以在每轮多增兵,亚洲虽然有7个,但是地域众多,与很多大陆“接壤”,易攻难守。北美和欧洲稍好,但是需要守住的隘口也很多,如北美要守阿拉斯加、格林兰和墨西哥三个地方。南美、非洲和大洋洲地域最少,但也最好控制。个人比较喜欢从大洋洲开始布局,只有一个与亚洲相邻的口,且很容易在开局的时候就独占,获得额外增兵名额打开局面,且进可攻最肥沃之亚洲。

2. 抢占先机也很重要,如果是6人玩,一开始能灭掉一家,获取其手牌相当重要。因为3张手牌就可能有机会组合成增很多兵的bonus。

3. 最后局面变化很大。我最后一次赢的时候一开始3家各灭掉另外3家,形成3足鼎立的局面,其中我最弱小,被打压得龟缩在大洋洲。后来终于憋出了一次bonus增兵的机会,就马上反击,灭掉一家,独占了90%的地盘,把另外一家压到北美的4块地里。然后它也bonus增兵一次,反扑了70%,但是最后拉锯几次之后还是因为我“地大物博”,产兵众多而被灭。

最后,骰子的运气也很重要,某次电脑人品爆发,连掷10几个6点,我以优势兵力打了三次都没打下阿富汗。。。太汗了。。。

最最后,推荐大家都来玩~ 哈哈!

——————–[又是一晚的分割线]——————–

晚上又玩了很多轮,有些新的感觉:

– 先手的优势很大,六个人中的第一个不仅在选地盘的时候有先机,而且率先进攻的话更有机会获胜。

– 游戏名不虚传,risk——真的是要冒险。有一次,我最后一个选地,但是第6回合冒险了一把,在大家都获得2、3张手牌但还没有使用的时候先孤军深入,歼灭了一家,在获得他的手牌后,继续以集中消灭敌人有生力量为目标,每次干掉一个都能获得他的手牌并增兵,最后一鼓作气的全拿下了。

Geowhy 2009-11月报

本来是想表现出新同学的积极,瞬间解决掉11月的月报~

但在写着写着才发现,写月报是件很人肉很痛苦的事情。

因为对各位同学的名字还在熟悉的过程中,如果发生惊人雷同与巧合,请保持微笑。如有遗漏,请朝天大喊:“亚克西!”

—————————[ o | o ]————————-

11月是秋高气爽,适宜出门旅游的季节,直观感觉上大家写的东西都比较少。把精彩交给了伟大祖国60华诞,而把感悟留在了09年底。

一筐烂桃坚持不泻的每博一推很多很多的电影,我都没看过。我承认,其丝袜奶茶中的丝袜吸引了我的目光,可惜我喜欢的是黑丝。>.<

AsiaPan用深厚的繁体中文打击着我薄弱的汉语能力,不知道百万庄大街走到九遍是啥感觉?

hedgehog是个非常有创新能力的好青年,用twitter来做地理研究让我很兴奋地看到了SNS的又一功能。彩虹博士带着一颗粉肌肉男的内心写下关于《高级生物学英文论文写作》的博文看得我一愣一愣的。强烈建议他们在变成Desperate Labwolf前多多发博~

照片是个好东西。cress在11月用数码胶片记录了秋天的日子。dying用无数艳丽的照片诠释了性感拧巴的共存。浅口 .M同学的黑白照片也很好看~

秋天很伤感,牧牧子vacuohghgSpriteSpirit四名同学都不约而同地在思考人生乃至人生的意义甚至人生的终极意义,其最后的结果基本上都是2012

小明同学与DOU同学热爱厨房的表现,向大家推荐一个朋友做的美味工厂(此处植入广告一条)。georgexsh同学则依然是强大的技术流。

还有,还有。。。

还有什么鱼同学的两字标题很好很强大,可惜不老歌的归档不是很好找,建议York以后改进改进。还有我从来没坐过的,貌似很好玩的双层巴士。还有回顾非典与甲流。还有公孙欠扁同学绞尽乳汁写出的梨花体

还有su27milesyaleon在整个11月都消失了,还有shore同学的blog挂了(数据库连接不上?)~

—————————[ + | + ]————————-

月报是个体力活,从joyque同学写完月报之后再没更新可以看出其威力。