用历史的眼光去看待现在的问题!

发布新日志

  • Rich Internet Applications 的技术选项

    2007-09-02 11:36:37

    By Mr. Vaibhav V. Gadge (vaigadge@in.ibm.com), 软件工程师, IBM

    Web 应用程序就要进入下一级别了,Rich Internet Application (RIA) 可以极大地增强用户交互。在本文对 RIA 的概述中,您将学习如何将其应用于用户界面 (UI) 层。Web 开发人员和架构师可能对该领域里当前可用的几种常见技术 —— Laszlo、XUL、XForms、 Macromedia Flex 和 Dojo 的讨论特别感兴趣。本文还包括其他技术的链接。本文假设您相当了解传统的 UI 工具,比如 HTML 和 XML。

    Rich Internet Application (RIA) 超出了 HTML 提供的传统用户界面 (UI) 控件的标准有限集合,比如文本框、复选框或单选按钮。RIA 为用户提供了丰富得多的控件集合,以及一种更加高级的服务器交互机制。使用 RIA,当从浏览器提交数据时,用户不必刷新页面;他们可以仅刷新页面的一部分,具有更好的错误处理,等等。

    本文内容包括:

    RIA 概述

    术语 “Rich Internet Application” 已经出现几年了,但该概念还被称为:

    • 远程脚本
    • X Internet
    • 富 (Web) 客户机
    • 富 Web 应用程序

    Internet 是信息的巨大来源,许多技术在努力以高级和用户友好的方式改进 Web 上的信息传递和存储性能。在大多数 Web 应用程序中,大量处理发生在服务器端,只有用户交互发生在客户机端。从而使服务器承担了沉重的数据和处理负载,以及网络通信中不断增加的依赖性。

    传统的基于客户机-服务器的架构具有高的灵活性和丰富性,但随着 Web 的成长而日渐消亡。一个原因是缺乏客户机应用程序的一致性和标准化。现在,勿庸置疑,浏览器是已经被人们普遍接受的 Web 工具。但是,它缺乏智能处理。所以责任在于可以交付更丰富的用户体验并能在客户端进行简单处理的客户机应用程序。RIA 提供了设计更好、更快、更吸引人并更无限可用的用户体验的机会 —— 全部在浏览器中实现。

    致力于 Web 和 internet UI 层的开发人员通常在 UI 层上进行试验,尝试可以在最少外部支持下有效工作的各种 RIA 工具。但是,在多数情况下,浏览器需要一些支持以使插件、扩展或下载在浏览器内部无缝工作。

    本文讨论有助于为业务案例确定最佳 RIA 选择的工具和参数。本文不可能讨论 RIA 的所有因素,但我将重点介绍您在评估 RIA 技术时审核的一些重要特性。

    评估内容

    评估 RIA 技术时,需要考虑下列因素:

    UI 丰富性
    开发 UI 时有多少基本的、开箱即用的 UI 小部件或控件可以使用?可以如何使用这些控件进行数据绑定和事件绑定?新控件应易于使用,并易于插卸。一些 RIA 技术提供了添加丰富性的简单方法和信息更丰富的可视体验,比如页面中的动画 API。例如,为了确保用户仅点击某个按钮一次,可以将此按钮做成动画以从视图中移出。
    复杂性
    开发人员已经使用现有的基于页面的模型很多年了,因为它简单易用,但是可能很笨重。RIA 技术必须易于使用、构建和扩展。它还应该与现有 Web 技术相互操作。
    灵活性和组件化
    与不同中间件组件协作的灵活性非常重要。协作应该能够容易地组合和扩展,以创建新的自定义小部件。创建自定义小部件之后,就可以在应用程序中重用它们。
    刷新页面

    刷新页面的一块而不是整个页面有非常显著的好处,因为它直接依赖于网络流量。刷新一块使得应用程序更快、更可用并使用户具有更好的视觉体验。它还有助于更好地管理错误。

    假设用户在网页上执行一个操作或第一个任务,并且数据在后台提交给服务器。然后用户在同一页面上继续执行另一个任务。同时,来自第一个任务的反馈已经返回并更新同一页面的某个部分。因此,如果这样设计网页,则会使工作和任务更有效率。

    安全性
    采用 RIA 时,确保与传统应用程序相比不会增加安全性威胁。一定要清楚围绕服务器通信或下载在客户机上的浏览器插件和扩展的安全性。
    对基本 Web 范例的支持
    技术应支持当今 Web 应用程序中涉及的基本 Web 范例,比如国际化、用户设备独立、浏览器独立和对上载和下载功能的二进制文件传输支持。甚至技术的成熟度也很重要。
    工具
    检查以集成开发环境 (IDE) 形式可供开发人员使用的工具,以及单元测试和调试支持。工具可以是带有现有编辑器或受支持编辑器的插件。
    可用性
    用户期望浏览器应用程序使用常用的浏览器功能。具体来说,保存图片、Ctrl+F 以搜索页面上的内容以及复制粘贴等功能不能在基于 Flash 的解决方案中工作。以人机交互 (HCI) 原理设计您的 RIA 可用性





    回页首


    UI 技术

    本节讨论当前 UI 技术提供的一些不同选项。

    Laszlo

    Laszlo 是领先的开放源码平台,用于在 Web 中使用 Flash 来开发和交付 RIA。Flash 播放器最初具有一个小插件以在浏览器中运行 Flash 文件。因为其高可靠性和兼容性,它被扩展用于创建闪烁的动画图片。后来的版本合并了一些重要的脚本兼容性、与服务器的数据交换,Flash 6 添加了双向音频和视频通信。

    Laszlo 已经扩展了该丰富性,使用脚本语言来生成 Flash 并交付给浏览器。它提供了一个用于构建 RIA 的开发源码 XML 本地平台。

    什么是 XPath?
    XML Path Language 是 W3C 推荐的语言,设计用于寻址 XML 文档中的信息。XPath 的主要目的在于导航 XML 文档中的任何节点和属性。

    它只需要在任何浏览器上安装 Flash 5.x+。脚本以一种叫做 LZX 的基于 XML 的语言编写。LZX 是一种面向对象的基于标记的语言,使用 XML 和 Javascrīpt 语法创建动态生成的 Flash 文件。服务器上的 LZX 编译器编译 LZX 文件并将 Flash 发送到浏览器中。实际的数据交换是以 XML 形式进行的,LZX 控件使用 XPath 来表示 XML。事件也很容易与控件绑定。每个控件定义一组可以从父事件继承事件的事件。清单 1 中的示例展示了如何使用事件。


    清单 1. 示例 simplelaszlo.lzx

    				
    <canvas width="500" height="80">
    <view>
         <text align="center" valign="middle">Hello, World!</text>
         <button >Update
    <method event="onclick">
     Debug.write("Button pressed");
    </met>
    </button>
    </view>
    </canvas>

    您将发现 Laszlo 易于学习、开发新组件、组件化并与任何 Web 应用程序集成。与其他 RIA 工具相比,它具有丰富的组件库。

    LZX 能够让 HTTP 和 Web 服务使用 SOAP 和 RPC 协议在后台请求服务器,而无需刷新页面。插件已经就绪,可以将任何 Web 应用程序文件与 Laszlo 库集成。当前,基于 Eclipse 的 IDE 可供开发使用。还有一些工具可用于在客户端的 LZX 中进行调试。有趣的是,它们还提供了 Lzunit 框架以用于测试 Laszlo 应用程序。

    最近,Laszlo 宣布了支持使用相同的现有框架将应用程序以 DHTML 交付给浏览器。这使您可以选择配置时希望将应用程序交付为 DHTML 还是 Flash。Laszlo 还扩展了对 Ajax 社区和多个设备交付的支持。

    图 1 展示了 Laszlo 和 Dojo 的示例。


    图 1. 用 Laszlo 和 Dojo 创建的 RIA 图片
    Laszlo、Dojo 演示图片

    XUL

    XML 用户界面语言 (XUL) 是 Mozilla 的基于 XML 的跨平台语言,用于描述应用程序的用户界面。它提供了可用于页面中的现成组件库。目前,它仅应用于基于 Gecko 的浏览器中,比如 Mozilla Firefox 或 Netscape 6 以上版本。

    XUL 使用基于 XML 的标记语言描述用户界面控件。它提供了各种流行的富 Internet 控件,比如菜单、选项卡、树和弹出菜单。XUL 使用文档对象模型 (DOM) 存储节点树。加载了所有 XUL 文件之后,XUL 将所有标记解析并转换为层次文档结构的节点。然后可以使用此 DOM 结构、DOM 结构的方法以及 XUL 函数提供的其他方法来检查并修改数据。您始终可以从 Javascrīpt 访问并操作 DOM,并使之像典型的 HTML 控件一样易于处理。每个控件和每个节点都具有多个属性来定义其外观和结构。

    从远程位置访问时,浏览器像处理 HTML 或其他浏览器内容一样处理 XUL 文件。但是,当它们作为扩展而本地安装在其 chrome 系统的浏览器中时,条目将收到访问系统和书签的特殊权限。在这种情况下,它可以执行其他的特权操作。

    Mozilla 浏览器本身也是一组软件包,其中包括 XUL 文件、Javascrīpt 和样式表,但它是相当大的而且非常复杂的扩展。

    XUL 使用 eXtensible Bindings Language (XBL) 进行绑定。每个控件可以使用 Mozilla 的 XBL 被绑定。XUL 使用 RDF 格式,可用于存储资源。可以使用其他格式的数据,并从中创建 RDF 数据,该数据将绑定到 XUL 格式。

    因为 XUL 类似于 XML 文件,所以可以使用 IDE 的任何文本编辑器或 XML 编辑器。因为相同的底层代码处理所有 XUL 文件、HTML 和 SVG,所以可以使用 CSS 属性设置 XUL 文件的样式。它对定位具有内置支持,因为所有文本内容在浏览器中是保持分离的。

    皮肤 在 Mozilla 中由 CSS 文件组成,定义浏览器的用户界面。可以为不同的外观修改和创建皮肤,而无需更改代码。它类似于通过添加功能来扩展浏览器 API 的功能。

    如果在 Mozilla Firefox 中运行 清单 2 中的文件,它将呈现一个文本框和按钮。


    清单 2. 示例 simplexul.xul

    				
    <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
    <window id="example-window" title="Example 2.4.1"
            xmlns:html="http://www.w3.org/1999/xhtml"
            xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <label control="label" value="Enter some text"/>
    <textbox id="textid"/>
    <button id="yes" label="Yes"/>
    </window>

    XForms

    XForms 1.0 提供了一种新的用于联机交互的平台独立标记语言。W3C 已经出现了用于实现 XForms 的规范,而且 XForm 被认为是 HTML 形式的继任者。

    XForms 独立于表示设备。无需对传统浏览器、PDA 移动电话、语言浏览器、甚至一些更奇怪的新兴客户机(比如 instant messenger)进行任何更改,就可以传递 XForms。这使得 XForms 成为更吸引 RIA 的工具。

    在 XForms 中,实际数据(XML 表单定义)与表单表示分离。这种设备独立的 XML 表单定义叫做 XForms 模型,可以用于许多标准的或专用的用户界面。

    XForms 用户界面提供了一组标准的可视控件,旨在于替换当今的 XHTML 表单控件。它们可用于 XHTML SVG 或其他组、语言浏览器组中,还可以独立开发 XForms 的用户界面组件。XForms 模型被引用在每个 XForms 控件中以呈现数据。它遵循 XPath 以引用 XML 中的元素。提交数据时,它只能提交已填充的 XML 数据模型。

    XML 事件
    XML 事件 是一种 XML 语言,能够一致地将事件监听器和关联的事件处理程序与 DOM 事件集成。当事件发生时,它被通过文档树路径分配给元素(目标),并可以再次传递回树中。观察者可以响应路径中的事件。

    XForms 使用 XML 事件来处理事件和动作。XML 事件指定事件、观察者和处理程序。正如 清单 3 所示,DOMActivate 是事件,消息元素是处理程序,父触发器是观察者。

    可以将 XForms 与 AJAX 集成。当前,在 W3C 中,可以找到 20 多个 XForms 示例实现。许多供应商,其中包括 IBM,已经开发了 XML 的 XForms 引擎(参阅 参考资料 中的 XML Forms Package)。Mozilla 已经宣布在 Mozilla 运行的所有平台上支持 XForms。要查看 XForms 实现的优秀示例,请参阅 参考资料

    清单 3 展示了一个简单的 XForms 示例,显示了一个用 FormFaces™ 实现呈现的文本框和按钮。


    清单 3. 显示用 FormFaces 实现呈现的文本框和按钮的 XForm

    				
    <!DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:form=http://www.w3.org/2002/xforms
    xmlns:ev="http://www.w3.org/2001/xml-events"  xml:lang="en">
      <head>
        <title>Simple example</title>
          <link rel="stylesheet" type="text/css" href="xforms.css" />
          <scrīpt type="text/javascrīpt" src="../../formfaces.js"></scrīpt>
          <form:model>
          <form:instance>
            <data xmlns="">
              <greeting>Hi there!</greeting>
            </data>
          </form:instance>
        </form:model>
     </head>
     <body>
       <form:input ref="greeting" incremental="true">
        <form:label>Greeting:</form:label>
       </form:input>
    	<form:trigger>
    	<form:label>Trigger</form:label>
    	<form:message level="modal" ev:event="DOMActivate">You clicked 
    	   button</form:message>
      </form:trigger>
      </body>
    </html>

    Dojo

    Dojo 是用 JavaScrip 编写的开放源码 DHTML 工具包。Dojo Toolkit 提供了一组核心库,和一组丰富的不同的软件包库,每个库提供特定的函数。Dojo 提供较低级的 API 来编写可移植的 Javascrīpt 并简化复杂的脚本。可以很容易很快地原型化交互小部件和动画转换。它提供了事件系统、I/O 软件包和一般语言增强的库。可以用 Dojo 编写脚本,并根据您的需要包括任意多个可用的 API。

    Dojo 还提供了一组可直接用于任何应用程序中的小部件库。可以使用其中一些核心小部件作为 UI 控件,比如菜单小部件、选项卡集、树小部件等等。还有一般函数,比如布局小部件、日期选择器、SVG 小部件等等。

    Dojo 基于单个标记语言构建,提供了声明和使用响应 DHTML 界面组件的简单方法。清单 4 展示了一个简单的 Dojo 组件示例,它是 HTML 页面中一个面向用户的特殊按钮。


    清单 4. 示例 dojosample.html

    				
    <button dojoType="Button2" widgetId="helloButton">Hello World!</button>
    You need to include the Dojo widgets library that is required in your HTML page.
    <scrīpt type="text/javascrīpt">
    	  dojo.require("dojo.widget.*");
          dojo.require("dojo.widget.Button2");
    </scrīpt>	

    Dojo 工具包还包括一些调试选项。AJAX Toolkit Framework (ATF) 可用作功能强大的 IDE。这是 IBM 的 Emerging technology Toolkit (ETTK) 的一部分,是一组特殊的新兴技术。ATF 主要基于 Eclipse Web 工具项目,允许支持 DOM 浏览、Javascrīpt 调试等等。

    最近,Dojo Foundation 宣布了与 Laszlo 的合作协议。按照该协议,您可以在 Laszlo 的开放源码项目中使用 Dojo Toolkit。同样,Laszlo 将将库贡献给 Dojo Foundation,从而促进开放源码社区的发展。

    Macromedia Flex

    Macromedia Flex 是另一种基于 Flash 的用户界面。它提供位于应用服务器顶层的 Flex 表示服务器,并从该服务器动态生成 Flash 文件,然后交付给浏览器。这些 Flash 文件在浏览器的 Flash 播放器内部执行,并允许用户交互、执行操作、甚至生成 SOAP、HTTP 或 AMF 请求以连接回服务器。

    布局和 UI 组件在一种基于 XML 的语言 MXML 中定义。Flex 为可视组件、容器以及远程服务对象和数据模型提供了丰富的 MXML 扩展类。它还与控件进行数据绑定,并访问服务器端数据。

    ECMA 脚本语言 (Actionscrīpt 2) 嵌入在 MXML 中以处理事件、系统事件或构造复杂的数据模型。这是一种面向对象的语言,类似于 Javascrīpt 和 ECME 脚本。与 XForms 一样,Flex 保持数据模型、数据表示、数据验证器和数据服务分离(类似于 MVC 样式)。

    到达 MXML 的所有请求都通过 Flex 编译器进行处理,该编译器编译 MXML 并生成 SWF,然后将其高速缓存,直到它被修改并最终交付给浏览器为止。

    任何 XML 编辑器都可用于编写 MXML 脚本,但 Macromedia 还提供了一个特殊的 IDE 进行 Flex 应用程序开发,叫做 Flex Builder 1.5。它的优点是与 Flex 服务器集成。它还提供了一些组件,允许连接服务器、执行正常的 HTTP 调用、连接远程 Java™ 对象并从浏览器本身与 Web 服务交互。它可以与现有的 J2EE 和 .NET 应用程序模型集成。

    清单 5 展示了 Macromedia Flex 代码的一个示例。


    清单 5. Macromedia Flex 代码示例

    				
    <?xml version="1.0"?>
    <mx:Application xmlns:mx="http://macromedia.com/2003/mxml">
    <mx:Form label="Employee Information">
          <mx:FormItem label="First Name">
             <mx:TextInput id="firstName" />
          </mx:FormItem>
    </mx:FormItem>
    </mx:Form>
    <!-- The myEmployee data model. -->
    <mx:Model id="myEmployee">
       <name>
          <first />
          <last />
       </name>
       <department />
       <email />
    </mx:Model>
    mx:Binding source="firstName.text" destination="myEmployee.name.first" />
    </mx:Application>	

    Macromedia Flex 看起来类似于 Laszlo。二者都是丰富的功能强大的基于 Flash 的应用程序。Laszlo 位于 Flash 引擎外,所以性能可能有所欠缺,但它具有其他优点。





    回页首


    工具比较

    下表比较了上文讨论过的五种技术以及 Altiolive(一种丰富的企业应用程序)。


    表 1. 工具比较

    技术 浏览器技术 脚本 丰富性 亮点
    Laszlo Flash、XML LZX 文件+Javascrīpt 易于学习,丰富
    Mozilla XUL XUL 语言 XUL 文件+Javascrīpt 依赖浏览器,功能强大
    XForms Xform 取决于实现 限于一定程度 设备中立,遵循 W3C
    Dojo Javascrīpt HTML+Javascrīpt 限于一定程度 基于 Javascrīpt。正在成长,可适应。
    Macromedia Flex Flash、XML MXML 文件 非开放源码。Macromedia 的专有工具。
    Altiolive Applet、XML Java 限于一定程度 http://www.altio.com/





    回页首


    其他技术

    我们已经讨论了五种技术,当然还有其他一些技术。许多公司使用各种技术提供了非常特别的 RIA 原型。尽管一一讨论这些技术超出了本文范围,但下面这些技术值得一看:

    • Backbase —— 开发和销售帮助创建 AJAX 应用程序的软件。
    • Netvibes —— 自定义 Web 主页解决方案的免费服务。
    • Zimbra —— 下一代企业消息传送和协作的开放源码服务器和客户机技术。
    • Protopage —— 免费个人起始页面。
    • Nexaweb —— 用于绑定和部署 Enterprise Internet Application 的平台。
    • altio —— 浏览器中丰富的企业应用程序。





    回页首


    结束语

    本文介绍了 RIA,讨论了当前的 UI 技术,并推荐了其他技术。我希望工具比较将帮助您根据需要作出一个正确的选择。每种技术都有不同的优点,从而基于您的需要为开发人员提供了丰富的控件集合。

    本文讨论的技术为用户带来一些新奇的东西,并提供了更丰富的用户体验。您现在可以跨越浏览器并呈现给 PDA、跨平台的移动设备,并用音频、视频、图像和动画来丰富用户体验。RIA 几乎包含了 XML,因此 XML 无疑是优胜者。

    将来,我预计 RIA 将会在 Web UI 转换到下一级别中扮演重要的角色,并帮助准备支持 Web 2.0。



     

    参考资料

    学习


    获得产品和技术

    • Dojo 工具包:使用该 Javascrīpt 工具包加速您的 Web 开发。

    • Mozilla Firefox:设置浏览器以运行 XUL 文件。它还附带 Javascrīpt Debugger 扩展以帮助进行 Javascrīpt 调试。

    • Ajax Toolkit Framework:从 Eclipse Web 工具中,尝试着将它作为 Dojo 的 IDE 使用。

    • XML Forms Package:可从 alphaWorks 获得这些 XForms 引擎。

    • IBM 试用软件:使用可以直接从 developerWorks 下载的软件构建您的下一个开发项目。


    讨论



     

    关于作者

    Vaibhav V. Gadge 照片

    Vaibhav V. Gadge 是位于印度 Bangalore 的 IBM Software Lab 的一名软件工程师。他目前效力于 Websphere Product Center 的 Portal 团队。他是 Java 认证专家,具有多个平台上 Java、J2EE 和基于 Web 技术方面的大约五年的技术经验。他拥有从 Nagpur University 获得的电子工程学士学位。可以通过 vaigadge@in.ibm.com 与 Vaibhav 联系。

     

  • 在LoadRunner中实现对WebLogic的监控

    2007-04-08 22:20:45

    操作步骤:

    获得 LoadRunner Weblogic JMX Monitor ”。

    Controller 计算机上安装 Java 1.4 (如: j2re-1_4_2 )。

    为监控用户设置 管理员权限 ,以便监视 MBean MBean 是一个包含性能数据的容器)。

        用户名: weblogic

        码: weblogic

        Weblogic 端口号: 8001

    Weblogic 服务器加载类。

        weblogic.jar 文件从应用程序服务器安装文件夹(在 lib 文件夹中)复制到 < LoadRunner

    文件夹 >\classes 目录下。

    < LoadRunner 根文件夹 >\classes 目录下名为“ jmxri.jar ”的文件重命名为任意其它的文件

    名。(如:更名为“ jmxri_bak.jar ”) (或者移到其它目录,总之不要放在 classes 目录下)

    修改 < LoadRunner 根文件夹 >\ dat \monitors 目录下的 weblogicmon.ini

        [WebLogicMon]

        JVM=javaw.exe -Xms 64M -Xmx 256M ( JVM=javaw.exe)

    JavaVersion= 1.4.2

    (注意:此处的 JVM JavaVersion 一定要是 WebLogic 所使用的 JDK ,同时 contoller 所在机器上的 JVM 也需要有与之对应版本的 JVM 温馨提醒:如果 controller 所在机器上的存在多个 JDK ,此时要特别注意把路径指对。如 JVM=C:\Java\bin\JDK1.4.2\javaw.exe

        其余内容不作修改,保存修改后的配置文件。

    在“ Weblogic JMX Monitor 中添加需要的监控度量。

        Add Machine 128.32.99.113:7001 (端口号要加上!) UNIX

        Login Information weblogic / weblogic

     

    (以下步骤可以不执行)

    Weblogic 用户权限的设置

    设置用户权限,请执行下列操作:

    1 )打开 WebLogic 控制台( http://< 主机 : 端口 >/console )。 端口: 8001

    2 )在左侧的树中,选择“安全性” > ACL ”。

           如果正在使用 WebLogic 6.1 控制台,单击屏幕右侧的“新建 ACL... ”。

    3 )在“新建 ACL 名”框中,键入 weblogic.admin.mbean ,并单击“创建”。

           如果正在使用 WebLogic 6.1 控制台,请单击屏幕右侧的“添加新权限 ... ”。

    4 )在“新建权限”框中(或在 WebLogic 6.1 控制台的“权限”框中),键入 access 。在

    WebLogic 6.0 控制台中,单击“创建”。

    5 )在“用户”框和“组”框中,输入用于监视的任何用户或组的名称。

    6 )在 WebLogic 6.0 控制台中,单击“授予权限”。在 WebLogic 6.1 控制台中,单击“应用”。

  • 30岁前不必在乎的30件事

    2007-01-06 13:24:57

    放弃
      
      把握的反面就是放弃,选择了一个机会,就等于放弃了其他所有的可能。
      
      当新的机会摆在面前的时候,敢于放弃已经获得的一切,这不是功亏一篑,这不是半途而废,这是为了谋求更大的发展空间;或者什么都不为,只因为喜欢这样做,因为,年轻就是最大的机会。人,只有在三十岁之前才会有这个胆量,有这个别资本,有这个资格。
      
      失恋
      
      不是不在乎,是在乎不起。三十岁前最怕失去的不是已经拥有的东西,而是梦想。爱情如果只是一个过程,那么正是这个年龄应当经历的,如果要承但结果,三十岁以后,可能会更有能力,更有资格。其实,三十岁之前我们要做的事情很多,稍纵即逝,过久地沉溺在已经干涸的爱河的河床中,与这个年龄的生命节奏不合。
      
      离婚
      
      不是不在乎,是一切还来得及。一位三十八岁的女友与老公结婚十五年,冷战十三年,终于分手。她说:“如果说后来不愿意离婚是为了孩子,那第他第一次提出离婚我没有同意,现在想来真不知道为什么。如果个时候早分手,我的生活绝不会是今天这个样子。现在再重新开始,总觉得一切都晚了。”
      
      漂泊
      
      漂泊不是一种不幸,而是一种资格。趁着没有家室拖累,趁着身体健康,此时不飘何时飘?当然,漂泊的不一定是身体,也许只是幻想和梦境。新世纪的时尚领袖是飘一代,渴望漂泊的人惟一不飘的是那颗心。
      
      失业
      
      三十岁以前就尝到失业的滋味当然是一件不幸的事,但不一定是坏事。
      
      三十岁之前就过早地固定在一个职业上终此一生也许才是最大的不幸。失业也许让你想起埋藏很久而尘封的梦想,也许会唤醒连你自己都从未知道的潜能。也许你本来就没什么梦想,这时候也会逼着你去做梦。
      
      时尚
      
      不要追赶时尚。按说青年人应该是最时尚的,但是独立思考和个性生活更重要。在这个物质社会,其实对时尚的追求早已经成为对金钱的追求。今天,时尚是物欲和世俗的同义语。
      
      格调
      
      这是小资的东西,小资这个词在今天又二度流行,追求格调就是他们的专利。小资们说,有格调要满足四大要件:智慧、素养、自信和金钱。格调就是把高尚理解成穿着、气质、爱好的品位和室内装潢。也就是大老粗只会表现谈吐的庸俗,小资们已经有能力庸俗他们的心灵了。主流观念倒不是非要另类,另类已经成为年轻人观念的主流了,在今天,老土倒显得另类。关键是当今社会是一个创造观念的时代,而不是一个固守陈旧观念的时代。
      
      
      
      评价
      
      我们最不应该做出的牺牲就是因为别人的评价而改变自我,因为那些对你指手画脚的人自己也不知道他们遵从的规则是什么。千万不要只遵从规矩做事,规矩还在创造之中,要根据自己的判断做每一件事,虽然这样会麻烦一点。
      
      幼稚
      
      不要怕人说我们幼稚,这正说明你还年轻,还充满活力。成熟是个吓人的词儿,也是个害人的词儿。成熟和幼稚是对一个人最大而无当、最不负责任、最没用的概括。那些庸人,绝不会有人说他们幼稚。不信,到哪天你被生活压得老气横秋,暮气沉沉的时候,人们一定会说你成熟了,你就会知道成熟是个什么东西。
      
      不适应
      
      在一首摇滚里有这么一句:这个城市改变了我,这个城市不需要我。不要盲目地适应你生存的环境,因为很可能这环境自身已经不适应这个社会的发展了。
      
      失败
      
      我的老师曾经跟我说,一个人起码要在感情上失恋一次,在事业上失败一次,在选择上失误一次,才能长大。不要说失败是成功之母那样的老话,失败来得越早越好,要是三十岁,四十岁之后再经历失败,有些事,很可能就来不及了。
      
      错误
      
      这是年轻人的专利。
      
      浅薄
      
      如果每看一次《泰坦尼克号》就流一次眼泪,每看一次《大话西游》就笑得直不起腰,就会有人笑你浅薄。其实那只能说明你的神经依旧非常敏锐,对哪怕非常微弱的刺激都会迅速做出适应的反应;等你的感觉迟钝了,人们就会说你深沉了。
      
      明星
      
      不是不必在乎,是不能在乎。明星在商品社会是一种消费品,花了钱,听了歌,看了电影,明星们的表现再好,不过是物超所值而己,也不值得崇拜呀?就像你在地摊上花五十块钱买的裙子,别人都猜是八百块钱买的,物超所值了吧?
      
      你就崇拜上这身裙子了?
      
      代价
      
      不是不计代价,而是要明白做任何事都要付出代价。对我们这个年龄的人来说,这绝不是一句废话。否则,要到三十岁的时候才会明白自己曾经付出了多少代价,却不明白为什么付出,更不明白自己得到了多少,得到什么。
      
      孤独
      
      这是为自由付出的代价。
      
      失意
      
      包括感情上的,事业上的,也许仅仅是今天花了冤枉钱没买到可心的东西,朋友家高朋满座自己却插不上一句话。过分在乎失意的感受不是拿命运的捉弄来捉弄自己,就是拿别人的错误来惩罚自己。
      
      缺陷
      
      也许你个子矮,也许你长得不好看,也许你的嗓音像唐老鸭……那么你的优势就是你不会被自己表面的浅薄的亮点所耽搁,少花一些时间,少走一些弯,直接发现你内在的优势,直接挖掘自己深层的潜能。
      
      误会
      

      如果出于恶意,那么解释也没有用;如果出于善意,就不需要解释。专门说到误会倒不是因为一个人在三十岁之前被人误会的时候更多,而是这个年龄的人想不开的时候更多。
      
      谣言
      
      这是一种传染病,沉默是最好的疫苗。除非你能找出传染源,否则解释恰恰会成为病毒传播最理想的条件。
      
      疯狂
      
      这是年轻人最好的心理调适,只能说明你精力旺盛,身心健康。说你疯狂是某些生活压抑、心力交瘁的中老年人恶意的评价,他们就像一部年久修的机器,最需要调试,但只能微调,一次大修就会让他们完全报废。
      
      稳定
      
      三十岁之前就在乎稳定的生活,那只有两种可能,要么就是中了彩票,要么就是未老先衰。
      
      压力
      
      中年人能够承受多大压力检验的是他的韧性;年轻人能承受多大压力,焕发的是他的潜能。
      
      出国

      
      也许是个机会,也许是个陷阱。除非从考大学的那一刻你就抱着这个目标,否则,对待出国的态度应该像对待爱情一样,努力争取成败随缘。
      
      薪水
      
      只要是给人打工,薪水再高也高不到哪儿去。所以在三十岁之前,机会远比金钱重要,事业远比金钱重要,将来远比金钱重要。对大多数人来说,三十岁之前干事业的首要目标绝不是挣钱,而是挣未来。
      
      存款

      
      这倒不一定是因为我们钱少,年轻人现在谁都知道钱是有生命的。机会这么多,条件这么好,可以拿钱去按揭,做今天的事,花明天的钱;也可以拿钱去投资,拿钱去充电。钱只有在它流通的过程中才是钱,否则只是一沓世界上质量最好的废纸。
      
      房子
      
      除非你买房子是为了升值,要么就是你结婚了。我有个同学,家在外地,大学毕业之后,单位没有宿舍,家里就给他买了一套房子。他曾经有过去北京工作的机会,但是他觉得刚买了房子就离开这座城市说不过去,就放弃了。到现在他工作稳定,但一事无成。唯一的成就就是结婚了,并且有了孩子,因为他觉得该让这房子永远空着,所以房子变成了家。房子是都市生活的寓言,这个寓言不应该过早的和我们相关。
      
      年龄
      
      女孩子一过二十五就开始隐瞒自己的年龄,其实大可不必。现在青年期都延迟到四十五岁了,二十五又算得了什么呢?
      
      在乎

      
      这是一种拿不起、放不下的心态,它的反面不是放弃,而是天马行空,自由自在,永远保持革命乐观主义的精神。
Open Toolbar