三重境界

三重境界

古人参禅,今人学理。谁都想通过一片花就看懂整个世界,但最后才发现泛泛而谈不能让自己升华,只有经历了风雨的洗礼才能感受到生活的真谛。

例如人生的三重境界,一重境界是看山水是山水,二重境界是看山水不是山水,三重境界是看山水还是山水。

不懂的人并不是俗人,懂得人也并非看破了红尘。 这三重境界指的是什么,从百度上找了一个比较满意的答案。

宋代禅宗大师青原行思提出参禅的三重境界:参禅之初,看山是山,看水是水;禅有悟时,看山不是山,看水不是水;禅中彻悟,看山仍然山,看水仍然是水。 佛家讲究入世与出世,于尘世间理会佛理之真谛。人之一生,从垂髫小儿至垂垂老者,匆匆的人生旅途中,我们也经历着人生的三重境界。
人生第一重界:看山是山,看水是水。涉世之初,还怀着对这个世界的好奇与新鲜,对一切事物都用一种童真的眼光来看待,万事万物在我们的眼里都还原成本原,山就是山,水就是水,对许多事情懵懵懂懂,却固执地相信所见到就是最真实的,相信世界是按设定的规则不断运转,并对这些规则有种信徒般的崇拜,最终在现实里处处碰壁,从而对现实与世界产生了怀疑。
人生第二重界:看山不是山,看水不是是水。红尘之中有太多的诱惑,在虚伪的面具后隐藏着太多的潜规则,看到的并不一定是真实的,一切如雾里看花,似真似幻,似真还假,山不是山,水不是水,很容易地我们在现实里迷失了方向,随之而来的是迷惑、彷徨、痛苦与挣扎,有的人就此沉沦在迷失的世界里,我们开始用心地去体会这个世界,对一切都多了一份理性与现实的思考,山不再是单纯意文上的山,水也不是单纯意义的水了。

人生第三重界:看山是山,看水是水。这是一种洞察世事后的反璞归真,但不是每个人都能达到这一境界。人生的经历积累到一定程度,不断的反省,对世事、对自己的追求有了一个清晰的认识,认识到“世事一场大梦,人生几度秋凉”,知道自己追求的是什么,要放弃的是什么,这时,看山还是山,水还是水,只是这山这水,看在眼里,已有另一种内涵在内了。

哲学的高明之处在于,沉默是金,用一个字表达了一百个字。
他说的并不多,但是说的很广泛,其中阐述的道理大多数人都能适用,每个人抵达的归宿也不太一样。

我觉得,哲学并不能告诉你改怎么做,而是安慰你这样做也挺好的。

对于三重境界的第三重,是大多数人寻找的宝藏。 我想说的是不管终极的真理是什么,或许就没有中终极的真理,我们总会从心出发,找到一个让自己释怀的道理,或许你现在就在第三重境界。

成都,成都,再见

匆匆去成都出差一周,难得抽空拍下几张照片。

可惜差铺加上工作压力大,有几晚都没睡好,还好成都的火锅算是拯救了我对这个地方的恐怖的印象。

出差的办公地点,天府国际中心。原成都市政府办公所在地,因为建筑太豪华后来被温家宝批斗了,市政府搬了出去,现在是金融中心。

第一天下午,和同事找了家串串,我们运气不错,这家店应该正宗的,因为排队的人超多,听口音也都是本地的顾客。

某一天下班,写字楼门口的圣诞树,才想起来圣诞节快到了。

连续的几天加班,目标达成,临走前一天,在宽窄巷转了一个下午。





Zentao bug Killer,禅道bug提醒工具

Zentao bug Killer,是一个谷歌浏览器插件,用来提醒禅道上新BUG

如何安装

1. 下载 Zentao bug Killer,地址:https://pan.baidu.com/s/1c2fIwr2

2. 打开谷歌浏览器,地址栏键入 chrome://extensions/,将下载的插件拖入该页面

如图所示,即代表安装成功 ## 如何使用 工具会在后台静默刷新,如果有了新BUG会自动弹出消息框,并且不会自动关掉。当前有几个BUG,也会显示在角标上。 效果如下: 有BUG的情况下,会显示红色角标

同时会在桌面有下角显示通知,注意,即使是浏览器关闭的状态下,该通知依然可以弹出

展开,显示BUG的标题,点击BUG编号,可以打开BUG的详情页

如果BUG解决了,自动恢复到默认状态

使用JSduck生成技术文档

使用JSduck生成技术文档

为什么要有技术文档?

优点
1. 如果代码看不下去,那么看文档
2. 对功能模块有一个全局的视角
3. 使项目易于维护

缺点
1. 需要额外的人力来整理文档
2. 需要额外的时间来做文档的变更

so,有没有一种更简单的方式,在现有人力的情况下,在限有时间的前提下,做到技术文档的输出呢?

其实,可以用框架来生成技术文档,这个框架就是 JSduck

JSduck 由 Sencha 开发,因此对于自家 extJS 具有非常强大的支持功能,包括令人咋舌的实时代码修改。但即使你不是使用 extJS 进行开发,JSDuck 仍然是一个非常强大的工具,一方面它的语法非常灵活,描述支持 Markdown 语法,上手难度远远低于 JSDoc

3;另一方面它生成的文档可读性堪比 YUIDoc,同时支持源码的对照,学习起来也非常的容易。要说 JSduck 有什么不好的地方,估计就是它把一切都 Handle 太完美了以致于没有给你提供什么可以自己定制的余地。

JSduck 运行原理?

JSduck + 代码注释=文档 JSduck 也是一套程序库,运行这个程序库,它会读取你的源代码中的注释文档,最终生成一套网页文件,这些文件既是文档。

      • 注释规范需以“/*” 开头和“/”结束,不同的注释标签会生成不同的文档内容,JSduck 提供了很多注释标签,大部分都是通用的注释标签,例如 @auther 用来指定代码作者,@return 用来描述方法的返回值,@param 用来描述输入参数等等。

安装 JSduck

  1. 安装 ruby
  2. 从 github 上下载并解压 JSduck,解压目录中 JSdcuck.exe 既是可运行文件
  3. 将 JSduck 的运行目录配置到 PATH 当中

运行 JSduck

从 cmd 中输入以下命令即可运行
jsduck <源代码目录> —output <文档输出目录>

JSduck API

JSduck 玩的就是注释符,下面是 JSduck 提供的所有注释符

@abstract用来标记抽象方法或类,通常用于标记还有没实现的方法

@accessor

@alias

@alternateClassName

@aside

@author 指定类/方法的作者

@cfg 用于组件或类的配置描述

@chainable 用于标记一组链路方法,链路方法是什么?我的理解是方法总会返回 this

@class** 标记一个类,JSduck 会根据该标记来生成树的结构图

@constructor 如果为了一个类写了构造函数,那么需要使用改注释符

@deprecated 如果某一个函数不再使用,但是为了不影响线上版本不能删除改方法的情况下,需要将改函数标记为已废弃

@docauthor 类似于 @author,不过 @author 用于代码的作者,该标记用于描述文档的编写者

@enum 枚举

@event 描述一个事件的定义

@evented 描述一个事件的影响者

@experimental 用于描述一个不稳定的方法,因为改方法可能会在以后的版本中移除掉,以此来警告方法的使用者

@extends 继承

@fires 描述某一个方法中,可能会触发某一个事件

@ftype

@hide

@ignore 某些注释只用于开发者阅读,但是并不希望在出现在文档中,可以使用该标记

@inheritable

@inheritdoc

@link 用于引用其他对象(类,方法,事件等)

@localdoc

@markdown

@member

@method 描述一个方法

@mixins 混合某一个对象的注释

@new 标记某一个最新创建的方法

@override

@param 描述入参

@preventable

@private 描述私有对象

@property描述属性

@protected将成员的可见性记录为受保护。受保护的成员只能从类本身及其子类中使用。

@ptype

@readonly描述只读属性

@removed 描述某一个方法在某一个版本中已经移除掉

@requires描述依赖对象

@return** 描述方法的返回对象

@scss mixin
@since 描述从哪个版本开始加入的新的对象,使用该标记
时,会在文档中自动加入 @new 标记,但不会影响源代码。

@singleton描述单态对象

@static描述静态对象

@template提供一种作为扩展类的功能的钩子提供的方法。该标签通常与@protected 一起使用。

@throws 文件方法抛出的异常。异常类型默认为 Object。可以使用多个@throws 标签来记录多个可能的异常。

@type** 记录属性的类型,另外将记录的东西标记为属性。 不建议使用此标记。它只支持向后兼容旧的 ext-doc。对于新代码,始终使用@property 标签。

@uses** 定义文档类使用的类。

@var** 记录 SCSS 变量:其名称,类型和默认值。

@xtype