上杉谦信的关于“悟”的箴言

[url]http://www.agileway.cn/?p=73[/url]


昨晚和L君在下班后一起结对编程,使用Play!框架做一个小工具,
期望能够应用于内部的学习活动中。
我们在几周前开始,因为之前我们都熟悉Rails的编程风格,
而Play!是极力模仿Rails的Agile Java框架,
所以我们很快的就达成了将贯穿我们进行结对开发的一个最基础原则:最小惊讶原则(LSP)。
这个原则也是Ruby语言的设计原则。
我们期望我们哪怕在使用模仿(Ruby编写的)Rails的Play!时,
也能暗合这个原则。

刚巧前阵子在卓越上买了一套海音寺潮五郎的小说《上杉谦信》,
在空闲时间随便翻阅几页,就搁在手边。
上杉谦信,是日本战国时期的名将。
在小说的外封上有一段上杉谦信关于"悟"的箴言,颇有意味:

[quote]"人们经常认为自己生存的社会是扭曲、不完整、污浊而不正当的,
心想过去应有均衡正当的人世。然而,实在事物皆有个性,
因此常常扭曲,常常混淆,也常常动摇。
完美的世道过去不曾有过,今后也不可能有。
因此,知道完美只存在于人的观念中,是悟的第一境界;
即使当下抓到这实在而不失望,反而心情略好地努力做事者,
就达到悟的第二境界;
不谈不完美,也不期待完美,
但一切言行举止自然朝完美前进着,可说达到了大悟之境了。[/quote]


在我们正在结对编程的时候,因为是下班后时间,
旁边有些同学会好奇的过来看看我们在干什么。
刚巧,邻座Y君,今天刚刚报道,也很好奇的问我们在做什么。

于是,我们就先把"车"停下来,和他聊了会儿。
从Domain Driven Design,说到其它些杂七杂八的东西,
反正就是随便聊吧。中间,聊到了"分层(Layering)"。

Y君表明他的观点:必须进行严格的分层。
我们以前也多是此想。但自从我们准备仅以LSP作为根本指导时,
我和L君异口同声的说道:我们的观点稍有差异。
虽然我们认同分层的重要性,但我们比较倾向让分层自己自然的涌现。

这时,我恰巧眼光落在手边的《上杉谦信》的那段箴言上。
忽有灵光,觉得谦信的这段话如果作下特化(Specialize),真是很有意思。

[quote]
程序员经常认为自己维护的软件系统的分层设计是扭曲、不完整、污浊而不正当的,
心想过去应有大师构建出均衡正当的分层设计。然而,实在软件系统皆有个性,
因此常常扭曲,常常混淆,也常常动摇。
完美的软件分层过去不曾有过,今后也不可能有。
因此,知道完美的分层只存在于人的观念中,是悟的第一境界;
即使当下抓到这实在而不失望,反而心情略好地努力编程者,
就达到悟的第二境界;
不谈分层的不完美,也不期待分层的完美,
但一切编码行为均自然朝完美分层前进着,可说达到了软件分层的大悟之境了。
[/quote]


如此特化,纯属偶然的机缘,并不表明我和L君对如何处理分层已达大悟之境,
只是这忽闪而过的灵光,忽然穿过了我们想要表达的模糊的迷雾。
也许,这就是"守在当下"的禅意,象一阵偶起的清风拂过我们的身旁吧!

但愿我们能够跟随住它!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值