分层设计架构模型的真正思想

笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构的理解上存在两个比较大的偏颇:

1.没有从本质角度去理解分层的内涵,而只是了解其表象。

2.对分层架构的理解过于狭隘,只是少数概念,而又不够深入。

许多朋友言“分层”则必称“DAL”、“BLL”、“表示层”等概念,殊不知“DAL”的内部还有“Data Source 架构模式”、“Object-Relational Behavioral 模式”、“Object-Relational Structural 模式”等方面,而其中每个方面下下又有诸多具体模式,如“Data Source 架构模式”又有“Table Data Gateway”、“Row Data Gateway”、“Acitive Record”等等。再说“BLL”,大家都知道“BLL”是“业务逻辑层”,可是什么是“业务逻辑”?“BLL”又可以构建为“Transaction Script”、“Domain Model”、“Table Module”三种模式,各是什么意思?另外,分层也不仅只有“数据访问层”+“业务逻辑层”+“表示层”这一种分法,诸如“服务层”、“持久化层”、“应用控制层”的概念朋友们是否真的熟悉呢。

造成这种现象,我想很大一部分原因是因为大多数.NET平台的开发者(包括我在内)理解分层架构是从Microsoft的PetShop开始的。因为PetShop是官方的Demo,所以被众多.NET开发者奉为圣经,甚至成了.NET平台上分层架构的标准方案。我就曾看到许多朋友在我的博客中留下“分层架构还是PetShop最经典”、“想学分层还是看PetShop吧”、“你这是跟PetShop学得吧”这样的留言。朋友们太崇敬PetShop了,却忽略了一个事实:它仅仅是一个Demo。退一步说,即使它是一个实际应用的项目,这样通过一个具体项目去定义一个抽象概念的方式也是不科学的。

举个例子,一个人不知道“牛”是什么东西,于是请教一位奶牛场管理员,管理员迁出一头奶牛,告诉他:“这就是牛”。从此以后,如果有人问他“牛”是什么,他就会告诉别人“牛”是一种体型庞大,行动笨拙,性格温顺,身上有黑白斑块图案,还有一个好大的咪咪,可以挤奶供人喝。有一天,他听说西班牙有斗牛这项运动,他大惊道:“这怎么可以!牛那么温顺,怎么能用来斗呢!而且牛是用来挤奶喝的啊!”

故事中这个人犯了一个什么错误呢?他把“具体的一头奶牛”和“牛”这个抽象概念给划等号了。他认为牛就是“体型庞大,行动笨拙,性格温顺,身上有黑白斑块图案,还有一个好大的咪咪,可以挤奶供人喝”。殊不知这世界上还有黄牛、水牛、牦牛、斗牛、肉牛等各种牛。他没能做到“透过想象看本质”从而形成抽象概念,而犯了“一叶障目”的错误。

其实,许多朋友之所以对分层架构理解片面或偏颇,是因为与故事中这个人犯了相同的错误。当初,我们不知道何为“分层架构”,于是微软给了我们一个PetShop,说:“看!这就是.NET平台下分层架构的产品。”于是我们“恍然大悟”:“噢!这就是分层架构啊!”。就这样,我们把“分层架构”这样一个内涵和外延都极大的抽象概念和一个具体的Demo划了等号,从而也变成了故事中那个人——我们言分层架构必称DAL、BLL,我们做项目必然依照PetShop方式架构……

我们确实被PetShop“毒害”了。但这不是微软的错,更不是PetShop的错,就像在故事中,我们不能把罪责归咎于奶牛场管理员或那头奶牛。错在我们自己!当微软给我们PetShop时,我们应该在脑中清醒认识到:这是一个分层架构的Demo。而不是理解成了“这就是分层架构”。我们应该钻研、思考,从而抓住分层架构的本质,可是我们没有。与其说我们是被PetShop“毒害”了,倒不如说我们是被自己、被自己那种不良的学习习惯毒害了。我们仅看表象,还是只看了一个表象,然后就冒然对分层架构盖棺定论。而没能透过想象看本质。所以,我们同样犯了“一叶障目”的错误。

以上的错误,笔者也曾经犯过!所以,在下文中,我想和朋友们一起分享一下我在反省自己的过程中,悟出的一些心得体会,希望能借此帮助更多朋友尽快走出“一叶障目”。

洞悉分层的本质

我们可以讨论如何分层,可以讨论分层的利弊,可以讨论分层有没有价值……但在这一切一切讨论之前,我们要先弄清楚一件事:分层的本质是什么?或者说:分层是怎么来的?如果这个问题不明晰,那么我们其他的讨论犹如“浮沙之上筑高台”,再精辟的言辞,如果没有一个牢固的基础,也是站不住脚的。

想要了解分层的本质,就不得不说说分工。分工可以说是劳动生产力上最大的改良,最初分工的好处体现在“比较优势”上,由于各司其职,每个人可以从事其最擅长的劳动,再加上单纯劳动所带来的劳动熟练度提升和减少了更换劳动时的损失,使得劳动生产率大幅提升。然而,随着社会的发展,我们发现某些特殊形式的分工不但可以提高生产力,还有另一些好处!为了理解这些好处,我们举个实际的例子。

今天是六一国际儿童节,一位母亲想给她的女儿买一个奶油蛋糕作为礼物。我们知道,蛋糕需要面粉、需要鸡蛋、需要牛奶等等,还需呀经过一系列复杂的加工和包装过程,但是这位母亲不需要关心这些,她只要去附近的超市直接买就行了。而超市里既没有养鸡场,也没有奶牛场,更没有种小麦的农民伯伯和烘焙蛋糕的工人师傅。这个简单的“买蛋糕”场景,大约可以用下图表示。

图1、制作蛋糕的分工

图1大约说明了一个蛋糕是如何从到达顾客手里的。可以看到,制作蛋糕不是一个单一的劳动,需要许多的分工,如果自底向上看,主要的分工包括:基础物质资料的种植生产、原料加工、蛋糕加工、商业销售。并不是所有分工都如上图这样,上图所示的分工,有一些特点,下面总结一下。

1.下层不知道上层的存在。例如奶牛厂生产牛奶,它不必知道牛奶被拿去做什么,可能被奶油厂收购去做奶油,也可能被雪糕厂收购了做雪糕,也可能被收购去做奶糖,总之,它只管完成自己的职责——生产牛奶,而对于它的上层一无所知。同样,奶油加工厂只管生产奶油,它不必知道奶油被拿去做蛋糕还是做摩卡咖啡。

2.每一层仅仅知道它的下一层(最后一层除外,因为最后一层没有下一层),而不知道另外的下层。例如,蛋糕厂只需知道从面粉厂、奶油厂和鸡蛋厂提取面粉、奶油、鸡蛋就行了,而不必关心面粉是怎么来了、奶油是怎么来的这些问题。

可以说,符合以上两点的分工就是分层架构的思想来源。下面说的稍微正式一点。所谓分层思想,就是这样一种分工:它将系统按不同的职责组织成有序的层次。其中,除最上层外,每一层仅提供若干服务供其相邻的上层使用,但不知道上层的存在;除最下层外,每一层仅调用其临近下层的服务。

所以,所谓“分层思想”,不过是一种特殊的分工形式。而计算机软件架构中的分层思想,是将这一思想应用于软件开发中的特例,而PetShop所使用的“DAL+BLL+PL”的方式,又不过是将这一思想应用于软件开发中的特例的特例。例如,如果某个系统的业务很简单,仅仅是增删改查,那么BLL就没有作用,“DAL+PL”的方式就可以很好完成,这也是很好的分层架构。再如,如果某个系统的业务很复杂,需要先规格化,再做运算,再做整理,那么“DAL+规格化层+计算层+整理层+PL”这种五层架构也是很合理的啊。如果某个系统BLL所暴露的接口太繁杂,那么使用Facade模式在BLL和PL之间加一个“Facade Service Layer”也是很正常的。再者,如果某个系统不需要数据存取功能,例如计算器程序,我们只是想把表示和业务(计算功能)分开,那么就没有DAL了,“BLL+PL”就是合理的。所以,用分层的思想进行架构,本质是“将系统按不同职责组织成有序层次……”这一段话描述的,而不是简单“将系统分成DAL+BLL+PL”,更不是“按PetShop的方式进行架构”。

下面,摘录一段Fowler在《Patterns of Enterprise Application Architecture》中对分层的定义:

When thinking of a system in terms of layers, you imagine the principal subsystem in the software arranged in some form of layer cake,where each layer rests on lower layer. In this scheme the higher layer uses various services defined by lower layer,but lower layer is unaware of the higher layer. Furthemore, each layer usally hides its lower layers from the layers above.

——Martin Fowler, 《Patterns of Enterprise Application Architecture》, P17

大致译文如下:

当我们说一个系统是分层架构的时候,你可以把这个软件想象成一个有很多层的蛋糕的样子,其中每一层放在它的下一层上。较高层使用诸多较低层定义和提供的服务,但较低层并没有察觉较高层的存在。另外,每一层都会对其上层隐藏更低的层。

——马丁 福勒, 《企业应用架构模式》, P17

但是,这里有一点需要声明:虽然说“DAL+BLL+PL”不等价于分层架构,而仅仅是一种实例。但同时我们要清楚的认识到,这个方式之所以如此流行,以至于微软的官方示例都这样架构,是因为对于许多系统,特别是大中型MIS系统,这种架构方式是应该优先考虑的。在这一节中,笔者绝对没有对“DAL+BLL+PL”进行批判的意思,相反,当开发系统时,这种方式可以优先考虑,然后可以根据系统的特点,进行一定得改良。笔者在本节所强调的是:不能把“DAL+BLL+PL”看做分层架构的本质,更不能和“分层架构”这个思想概念划等号。

分层架构的利弊分析

在理解了分层架构的本质的基础上,我们才可以放心大胆的对分层架构进行利弊分析。废话少讲,这一节我们直接切入正题。

分层架构的优点如下:

1.分离开发人员的关注。由于某一层仅仅调用其相邻下一层所提供的服务,所以,只要本层的API和相邻下一层的API定义完整,开发人员在开发某一层时就可以像关注集中于这一层所用的思想、模式、技术,这样,就等同于将分工带来的生产力提高优势引入软件开发。又如买蛋糕的例子,作为超市,只要知道下层API(如何从蛋糕厂获取蛋糕)和本层需要实现的API(把蛋糕销售给客户),就可以制定自己的业务模式很策略计划了,而不必关心如何种小麦、如何磨面粉、如何做奶油、如何做蛋糕等。这样,超市只需进行商业运作,而不必进行产业运作,如此专一,必然提高业务水平。

2.无损替换。想象一下,如果某家奶牛场倒闭了,奶油加工厂也要跟着倒闭吗?当然不会,它可以迅速更换一家奶牛场,因为各个奶牛场都可以实现“提供牛奶”这项服务。再譬如,如果某天国家出台政策,要求所有奶油厂必须从审查合格的奶牛场引进原料,恰好某奶油厂的合作牛奶供应商没能通过审查,那么,只要换一家通过审查的合作就行了。而且奶油厂内部的各个环节一动不用动,因为不同的奶牛场都可以提供“供应牛奶”这个服务。而如果奶油厂自己养牛生产牛奶,一旦遇到这个政策,还得自己去有关部门进行审查,调整相应业务流程,牵一发而动全身。程序中同样的道理,最常听说的可能就是迁移数据库了。

3.降低了系统间的依赖。还是蛋糕那个例子,如果某天蛋糕厂内部换机器了,或业务流程调整了,请问顾客需要关心吗?显然不用,因为顾客只调用超市提供的服务。而超市为顾客隐藏了下面所有产业细节。如果每一个顾客买一样商品,都要了解这个商品从原料生产到成型再到销售的一系列细节,岂不累死了。换做程序中,就如表示层只管调用业务层的服务,至于业务层下还有几层?各种数据是怎么来的?怎么存的?是真实的还是捏造的?都不需要了解,这大大降低了系统各职责之间的依赖。

4.复用。例如,你可以去这个超市买东西,我也可以去这个超市买东西。蛋糕厂可以从面粉厂提取面粉,馒头厂也可以。这样,同样的层就可以为不同的上层提供服务,达到了复用的目的。具体到程序中,例如气象局制作发布了一个“Service Layer”,用于提供天气预告信息。这样新浪、搜狐这些网站可以利用这个服务层提供的服务,制作天气预告页面,QQ也可以利用这个服务在它的聊天工具上添加天气预告,你自己做一个软件需要用到天气预告功能,也可以调用气象台的“Service Layer”。

说罢优点,再来谈谈分层架构的弊端:

1.级联修改问题。这个问题在现实中不好比喻,但在程序中相信很多朋友都明白。例如,一个人事管理系统,本来查看人员信息只能分页查看,而现在,需要增加一个功能:在分页的同时还能分部门。例如,可以查看“销售部的前50个人”,这样,为了这个功能所有层都需要修改。

2.性能问题。本来直来直去的操作,现在要层层传递,势必造成性能的下降。就如在购买蛋糕的例子中。顾客在享受分工带来的便利时,也要承受由于不同层的部门分布各地而造成的蛋糕价格上升,这是因为分层增加了成本,如运输、不同层间部门的协调管理成本等。

纵观以上分析,分层架构有利有弊。这是一定得,世上任何事物都有利弊,所以,把“分层架构捧上天”和“一棍子打死”这两种做法都是不明智也是不科学的。对待分层架构,我们的态度应当是明晰其本质和利弊,然后根绝具体情况做出理性的分析和抉择。

从上面的分析可以看出,分层架构可以降低层内变化的成本,而对于API的变化非常敏感。如在级联修改中提到的“在分页的同时还能分部门”的新需求,就是对API进行的变动。API的变动对于分层架构是致命的,修改起来难度非常大。所以,一个简单的判断法则就是:如果您的系统层内频繁变动(甚至整层替换)可能性很大,而API变动可能性很小,就使用分层;而如果API可能会频繁变动,那就要谨慎使用分层架构了。

后面的话

其实,我想说的主要内容,就是前面三节了。不过还是有些话,想和大家唠叨唠叨。

这篇文章,不是一篇技术文章,所以通篇不提技术细节,而只是想帮大家澄清对分层的误解。最近看了很多对分层架构(或三层架构)的探讨,其中以批判居多,有的甚至认为分层就是个没用的垃圾东西。我想,产生这种想法的人,大致经过了以下阶段:听说分层,粗略学习分层、模仿使用分层、用得十分不爽、出来批判。

其实,任何技术都是客观的,都没有错误,错误在人,是人没有正确使用,或没有用到合适的地方。就像我们不能批判刀片不适合劈叉,也不能批判柴刀不适合刮胡子。一项技术想要发挥威力,关键要正确运用,而要正确运用,就需要有深厚的功底,需要我们努力学习,勤于思考。这不是一朝一夕的事情,要有持久的毅力。我们要争取做一个善于用功、善于把握事物本质的人,而不是一个用刀片劈柴、用柴刀刮胡子,然后大骂刀片和柴刀都是垃圾的人。

分层思想从来就不是软件架构中首先提出来的,我们天天上网用到的网络,都遵循OSI七层协议,网络结构的设计是分层思想合理应用的一个典范。另外,在许多其他工程技术领域,分层思想也是很普遍的。所以,不要把分层当成计算机人士甚至软件开发人士独有的能力,相对那些领域,将分层应用于软件架构的技术还很不成熟,还有许多事情等待我们去做。

最后强烈推荐一本书:Martin Fowler的《Patterns of Enterprise Application Architecture》,相信看完这本书,对于分层思想的理解和分层中具体模式的运用决策都会有大幅提高。你会明白,原来分层不是只有“DAL”、“BLL”,原来分层还有怎么多内在的东西。

早上醒来头痛的病因及建议

头痛( headache )是人类最常有的病徵之一,根据英国统计数字显示有85%人口在一年之内最少会遇上一次头痛,亦有38%成年人将会在两个星期之内遭受到头痛困扰。由此看到头痛这个病徵是多麼常见。幸好大多数头痛并非因为身体有什麼严重毛病所引致,亦通常并非头颅裏( intracranial )的组织有病变所引起。但是头痛成因却十分之多,绝对需要专业医疗人员的帮助才能准确地找得出来。

治疗方法:

服用适量的阿司匹林

对于一个月发生一、二次的紧张性头痛,阿司匹林或其他常见的消炎药可派上用场。但过度使用这类药物,将引起更多疼痛。"就像抓疹子,会愈抓愈痒。"赛柏博士说。

勿迟疑

若你决定使用阿司匹林治头痛,"应在头痛一开始时;就立即 服用,否则效果不明显。"梭巴克博士说。 运动 "运动是预防头痛的有效方法之一,因为运动可帮助你排解紧 张与压力。"所罗门博士说。

照常运动

如果头痛的情形不太严重,则运动有益于改善情况。"假使你 有轻微的紧绷性头痛,运动可以帮助你消除。"梭巴克博士说。 但若头痛剧烈,切勿运动;以免情况更糟,尤其是偏头痛患者。

睡觉

许多人用睡觉消除头痛。但应避免睡得过多,以免睡醒后,反 而出现头痛。

勿打盹

小睡片刻或许可以消除头痛,但若你没有头痛时,最好不要小 睡。 "小睡可能引起偏头痛。"戴蒙医师说。" 平躺着睡 睡眠姿势怪异或甚至趴着睡(腹朝下),皆会收缩颈部肌肉,进 而引发头痛。"平躺的唾姿有益。"戴蒙医师说。 同样地,当你站立或静坐时,身体勿向前倾斜,也勿使头扭向 某个方向。 冷敷 有些人喜欢在额头及颈部冷敷,梭巴克医师说这方法有效。

热敷

但有些人偏好热敷颈部或洗热水澡。

深呼吸

深呼吸是缓解紧张的好方法。当你的胃部的起伏比胸腔还明 显时,表示你的作法很正确。

自我检查

专家建议你检查自已是否有任何紧张的征兆,包括紧咬牙齿、 握紧拳头、肩膀耸起。这些征兆可能引起头痛。

按摩穴道

有两个主要的止痛穴道,一个是在拇指与食指相连的部位(用 力压至疼痛为止),另一个是在颈部背后的脊椎两侧(用两只拇指 同时施压)。

使用铅笔

在上下排牙齿之间放一支铅笔,但勿用力咬铅笔。这帮助你松 弛紧张,因为这动作必须放松肌肉才办得到。

戴头带

在头上绑一绷带,可减少流向头皮的血液,因而减轻偏头痛。

不擦香水

"浓烈的香水可能引发偏头痛。"梭巴克博士说。 勿用力过猛 信不信由你,当你没有头痛,且气氛颇佳时,性交期间可能出 现头痛。"这是属于用力型的头痛。有偏头痛的人比仅是紧张性头 痛的患者,还经常发生这种情形。"康凯医师说。

避免吵杂

过多噪音是引发紧张性头痛的常见原因。

注意咖啡因的用量

假使你每天未服用适量的咖啡因,你的血管将扩张,可能促成 头痛。但服用过量也可能使你头痛。因此,最好限制每天最多喝两 杯咖啡。

勿嚼口香糖

咀嚼时的反覆动作可能使肌肉紧绷,因而引发紧张性头痛。

少吃盐

有些人摄取高量的盐会引发偏头痛。

准时用餐

省略或延迟用餐皆可能引起头痛。错过一餐,会引起肌肉紧 绷,而当血糖因缺乏食物而降低时,脑部的血管会收缩。当你再度 进食时,会使这些血管扩张进而引发头痛。 一位慢性头痛的患者说:"我发现若我不经常吃东西,就会出 现头痛。现在,我改成少量多餐,结果似乎颇有帮助。"

避免对你不利的食物

有些人发现牛奶对他们不利,当他们禁食牛奶后,头痛也减少 了。也应注意其他会引起头痛的食物,如热狗及一些腌渍食品,它 们含硝酸,此化学物质会扩张血管,引起剧烈头痛。另外,也应避免 味精。有些无法吸收味精的人说,味精会引起悸动性的头痛。

拒绝巧克力

吃巧克力不仅易发胖,它也含有干酪胺(qrramine),这是引起 头痛的主要可疑物。幸好许多年轻人对此化学反应已具有抵抗力。 另外,核果及陈年的乾酷也含有干酪胺,应避免。

勿边开车边抽烟

当你在交通繁忙的路上一边开车,一边抽烟,同时,又未关上 车窗,会有何不妥?你正在加倍地吸人一氧化碳!这种气体对脑部 的血流有负面彤响。

少喝酒

畅饮一回,或许无大碍,但饮酒过度可就不妙了。烈酒里也含 有干酪胺。

慢慢品尝冰淇淋

你可能还记得曾经大口地吃下冰洪琳,随后便出现一阵剧烈 的头痛。不妨慢慢地品尝,使你的口腔逐渐适应冰冷。

培养幽默感

如果你经常把事情看得很严重,你可能常扳脸皱眉,满脑都是 烦恼,这也难怪你常患头痛。应学习放松自己,看淡周围事物。

用维他命c及阿司匹林

高海拔处会引发头痛。此时,服用维他命C及阿司匹林有益。 当你要到高海拔处旅行,应在出发前一天及旅途中,每天服用 3,O00-5,000毫克维他命C,以及两片阿司匹林。(但服用前应先 请教医师。服用任何高剂量的维他命之前,应得到医师许可。)

作脸部美容操

下面介绍的7种柔软操,是专为脸部及头皮设计的,它们可以 帮助你松弛这些部位的肌肉,并使你在初见头痛的征兆时,采取控 制行动。

·扬眉:同时将两边的眉毛抬起,再放下。

·眯眼:快速地眯上双眼,再放松。接着,用力眯右眼,放松。接着,眯 左眼,放松。

.皱眉:用力地挤眉,放松。

·张嘴:慢慢地将嘴巴张到最开,再慢慢闭上。

·移动下颚:嘴巴微张,左右移动下领。

.皱鼻:用力将鼻子向上挤,像闻到恶臭一样。

·扮鬼脸:随兴地作鬼脸,像小时候一样。别担心,你的脸不合就此 变形。

要知道头痛只是一种病徵,本身并非疾病,每次遇到头痛就买止痛药( pain killer )来吃,令头痛消失并非治疗头痛的好方法。要治疗头痛首先必须找出引致头痛的病因,然后对准病症采取医疗才是上策。

引致头痛的主要疾病有紧张性头痛( tension headache ),混合头痛( combination headache ),脊骨错位 ( subluxation ),颈椎退化 ( cervicospondylosis ),颈椎关节病( cervical arthritis ),群发头痛( cluster headache ),偏头痛( migraine ),药物依赖性头痛( drug dependence headache ),情绪低落( depression ),血糖过低( hypoglycemia ),糖尿病( diabetes ),贫血( anemia ),甲状腺毛病( thyroid diseases ),牙科毛病( dental problems ),青光眼( glaucoma ),眼部光学性毛病( optic problem ),鼻窦炎( sinusitis ),创伤性头痛( traumatic head injury ),脊椎手术后遗症( post spinal surgery ),上气管道感染( upper respiratory tract infection )或一些较少见但却是十分严重的病患例如中风( stroke ),脑出血( intracranial bleeding ),颞动脉炎( temporal arteritis ),脑膜炎( meningitis ),脑压( intracranial pressure )上升,脑部肿瘤( brain tumor )………等等,真是难以详列。

幸好大多数头痛是由紧张性头痛,混合性头痛,脊骨错位,颈椎退化,颈椎关节病所引致。只要寻找出正确的诊断,在治疗上并没有太大困难。

紧张性头痛(Tension Headache),痛楚的范围通常是对称的,由后枕伸延到前额【如图】,头痛维持大约数小时,病发其间,头痛每日法作,通常患者不会察觉到头痛是与精神紧张有关,但当经过仔细的查问,不难发现患者的紧张情绪与头痛的直接关系。一名澳洲医学权威Dr J.Murtagh 於1994年的著作中指出,紧张性头痛除了精神因素以外,颈脊椎的功能失常也是引致紧张性头痛的主要成因。

混合性头痛(Combination Headache),发病时与紧张性头痛,颈椎病变性头痛,偏头痛,药物依赖性头痛等病症的徵状都相似。患者经常形容头痛的程度有如头颅就快爆裂般,整天都感觉到痛楚的存在,幸好通常只维持3-7天,但有时亦会维持数个月之久。头痛发作期间常於工作忙碌的时候,有时也发生在交通意外后,颈部或头部曾经受过创伤之后。

颈椎病变性头痛(Cervicogenic Headache)是由颈脊骨错位,颈椎退化,颈椎关节病所引致。有些学者称这类头痛为后枕神经痛。引致头痛的原因主要是颈椎神经根第一,二,三条出毛病所引起。痛楚的范围常常只是一侧,由颈伸延到后枕,头的侧面及到达眼球的后面【如图】。不少医疗人员把颈椎病变性头痛错误地诊断为偏头痛。

上述的三种是常引致头痛的病患,脊医都可以很有效地替病人解决。至於引致头痛的其他成因,脊医亦能替患者诊断出来给予患者适当的治疗及转介。

09年度我收集的经典语句

1、执子之手,方知子丑,泪流满面,子不走我走。
2、西游记告诉我们:凡是有后台的妖怪都被接走了,凡是没后台的都被一棒子打死了。
3、你有什么不开心的事?说出来让大家开心一下。
4、我那么喜欢你,你喜欢我一下会死啊。
5、我又不是人民币,怎么能让人人都喜欢我?!
6、令人不能自拔的,除了牙齿还有爱情。
7、当生活心怀歹毒地将一切都搞成了黑色幽默,我顺水推舟把自己变成了一个受过高等教育的流氓。
8、时间太瘦,指缝太宽。
9、小姑娘们梦中都想找一匹白马,睁开眼发现满世界都是灰不溜秋的驴,悲痛欲绝后,只能从驴群中挑个身强力壮的,这样的驴就被命名为:经济适用男 。
10、我就要哭,我就要闹,一宿一宿不睡觉,手里拿瓶安眠药,拿根小绳要上吊。再丑也要谈恋爱,谈到世界充满爱。
11、我们的目标:向钱看,向厚赚。
12、我是你转身就忘的路人甲,凭什么陪你蹉跎年华到天涯?
13、没有医保和寿险的,天黑后不要见义勇为……
14、挤公交是包含散打、瑜珈、柔道、平衡木等多种体育和健身项目于一体的综合性运动。
15、老娘法眼一开就知道你是个妖孽了。
16、手插口袋,谁都不爱 。
17、手拿菜刀砍电线,一路火花带闪电。
18、单身并不难,难的是应付那些千方百计想让你结束单身的人 。
19、幸福是什么?幸福就是你吃鱼,我吃肉,看着别人啃骨头。
20、念了十几年书,想起来还是幼儿园比较好混!
21、我当年也是个痴情的种子,结果下了场雨……淹死了。
22、很多人说婚姻是爱情的坟墓,但是能够入土为安的爱情总比暴尸街头要好 。
23、有空学风水去,死后占个好墓也算弥补了生前买不起好房的遗憾
24、据说,人只有两个选择,忙着死或是忙着活,我想我有了第三种选择:忙着等死 。
25、春困夏乏秋无力,冬日正好眠。
26、思念不能自已,痛苦不能自理,结果不能自取,幸福不能自予。
27、小时候我以为自己长大后可以拯救整个世界,等长大后才发现整个世界都拯救不了我。
28、如果你注定不能给予我期待的回应.那么就保持在安全距离之外吧。
29、请不要把我对你的容忍,当成你不要脸的资本。
30、女子无才便是德,我一定是太缺德了。
31、诸葛亮出山前也没带过兵啊,你们凭啥要我有工作经验。
32、用嘻哈的蓝调精神来过二胡一样的生活。
33、鸵鸟的幸福,只是一堆沙子。
34、老天,太蓝!大海,太咸!人生,太难!工作,太烦!和你,有缘!想你,失眠!见你,太远!
35、一觉醒来,天都黑了。
36、喝药递瓶,上吊给绳,跳楼的挥着小手绢送行。
37、铁杵能磨成针,但木杵只能磨成牙签,材料不对,再努力也没用。
38、你要搞清楚自己人生的剧本——不是你父母的续集,不是你子女的前传,更不是你朋友的外篇。
39、树愈静而风不止,我愈恋而他不在。
40、多想某天醒来睁开眼,发现自己坐在小学教室的课桌椅上。老师掷来的粉笔头正好打在额头上。
41、少年不胡作妄为,大胆放肆,试问老年时哪来的题材话当年。
42、作为一个怪兽,我的愿望是至少消灭一个奥特曼。
43、再过几十年 我们来相会 送到火葬场 全部烧成灰 你一堆我一堆 谁也不认识谁 全部送到农村做化肥~
44、学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨;女人之美,在于蠢得无怨无悔;男人之美,在于说谎说得白日见鬼。
45、我以为我很颓废,今天我才知道,原来我早报废了。
46、不成熟男人的标志是可以为了理想壮烈的牺牲,成熟男人的标志的可以为了理想卑贱的活着。
47、生活就像宋祖德的嘴,你永远都不知道下一个倒霉的会是谁。
48、阳光温热,岁月静好,你还不来,我怎敢老去?
49、人又不聪明,还学别人秃顶。
50、我以神的姿态,闪耀在这美的瞬间.凡人勿扰…
51、年轻的时候,我们常常冲着镜子做鬼脸;年老的时候,镜子算是扯平了。
52、要努力!!为了你的奥迪我的迪奥。
53、我是白领:今天领了薪水,交了房租水电,买了油米泡面,摸了口袋,感叹一声,这个月工资又白领了…
54、执子之手,将子拖走。子说不走,好吧,关门放狗!
55、生活,就是这样.永远占领着绝对领导的位置,当无数的傻子高呼着自己控制了生活,掌握了命运.却没看到,生活在更高的苍穹上.露出讥笑的嘲讽的面孔。
56、他就是一盆水,倒入你的米堆里,若干年后,清水变成了醇香的酒,而你变成了一堆废弃的烂米,不是没用了,还可以拿来喂猪的。
57、不愿做奴隶的人民,愿做人民币的奴隶。
58、我不是天桥上算命的,唠不出那么多你爱听的磕。
59、生活二字二几十年来回味得我大小脑抽搐,脊髓痉挛。始终不得要领。
60、真的猛士,敢于直面自己未化妆的脸。
61、天山童姥——外表正太,内心却有三百六十五道裂痕,每道裂痕上书春夏秋冬四字,沧桑到妖。
62、世事往往如此,想回头也已经来不及,即使你肯沦为劣马,不一定有回头草在等着你。
63、曾经我们都以为自己可以为爱情死,其实爱情死不了人,它只会在最疼的地方扎上一针,然后我们欲哭无泪,我们辗转反侧,我们久病成医,我们百炼成钢。你不是风儿,我也不是沙,再缠绵也到不了天涯,擦干了泪,明天早上,我们都要上班。
64、曾经和朋友一起仰望星空,随之我们泪流满面,他是因为失恋,我则是因为扭伤了脖子。
65、其实你我都一样,人人都在装,关键是要装像了,装圆了,有一个门槛,装成了就迈进去,成为传说中的性情中人,没装好,就卡在那里了。就是卡门。