软件工程:你是思考还是思想? — JAVA频道

来源:百度文库 编辑:神马文学网 时间:2024/07/07 15:43:22
软件工程:你是思考还是思想? (2)
作者:itzealot 发文时间:2006.04.18 来源:赛迪博客
【Java专区】 【安全专区】 【网管专区】 【linux专区】 【进入论坛】 【IT博客】
6.枝节与细节
前面说到目标和质量的问题时,提及“平衡时间、资源和功能三者的关系”。这其实是一个实施过程中的细节。或者说,它是一个具体的方法,而不是目的。
所以我们通常所说的细节,其实是对实施方法的一些有限量的描绘。比如“软件工艺”概念本身的提出,就是考究“细节问题”的。从这个角度上来说,我并不反对“细节决定成败”的观点。但请注意一个前提:这是技术或方法的细部。
我在前文中一再地混用了“细节”与“枝节”这两个词。枝节是事实发展的次要的分枝,它不涉及行为本身,也不是对行为本身的考量。因此我在前面的文字中说到“跳出细节”,本意是“跳出枝节”??细节只有做到何种程度的问题,而并不是关不关注(或做不做)的问题。
大多数情况下,管理人员有责任去审核、评估其它成员的工作成果。这个时候可以讨论“细节决定成败”类似的问题,因为这决定了产品的最终质量,而质量是工程的目标之一。
而在另一些情况下,例如管理人员做事件决策的时候,就必须要学会忽略枝节问题。
混淆这两个名词的使用,其根本原因在于一大部分读者并不能区分“细节”与“枝节”。从惯于“实做”的程序员一路走来的工程人员,很难分清自己什么时候是在“工作”,而什么时候是在“决策”。
因此我只好用最笨的方法提示管理者:别管它是细节还是枝节,只要你感到你的脚趾已经沾上了泥淖,就快点回头。
用脚趾去感觉,有时比用头脑去思维来得有效。
7.灵活的软件工程
并不像现代人想象的那样,古诗词一定是“逐字论平仄”的。变化或者变通,其实是常见之事。因此古词谱中,才常会见到冠以“摊破”、“减字”、“添字”等字的词格。然而古人在词格上的这种变通,是基于“音律”的。通常说的词律是指词格,这与音律是两回事。词律(格)是平仄,音律则是乐器、音调与歌舞。古词中用来吟唱与歌舞的词牌就不能混用,律不同,调不同,如是之。然而古词的音律(亦即是律谱)已经失传了,也就是说,今天的词是用来读的,不是唱,也不是舞,甚至连吟哦也不是。所以今人总是拿普通话中的一、二声作为平声,三、四声为仄声来填词,并以此论平仄,而全然不想词的格律的根基是“词律”与“音律”这两个部分的融合。
我曾经参与过一个讨论,叫“古人是如何说话的”。在我看来,古人做文章和说话是两回事,文章中之乎者也,日常交流中还是市井俚语的。因此评论中会说“以俚语入词”。也可见填词做文章与说话毕竟是不同。再者,说话也存在方言的问题,因此方言之间平仄音调也不尽相同。古代的歌妓是要求会“官话”的,这相当于现在“普通话”的地位,她们歌唱起来,也是用的“官话”。
更进一步的推论是:古代的词律中的平仄是以官话为基础的。然而如今的普通话毕竟不是古时的“官话”。也就是说,即使我们以普通话的四声为基础讨论平仄,在古人看来,也是可笑的,这样做出来的词依旧不可唱,也不可读。因此今人做词的标准是应该重定的了,除了词格(这里仅指字句的格式)和用韵之外,其它的部分是无法遵循的了。在各自的平仄以及句式上,应当以“能通顺”和“能品味”为准,风格上则以古雅为益。
仅此而已。
对于我这样的格律观点,一位网友曾有一句“未蕴而变,自欺也;知律而变,智者之道也”,实为良言。变向不变求。不变者,万变之所源,亦万变之所归。习诗词之法度,若蚕虫之结茧,若无结茧于前,何有破茧于后?故,知律而变,智者之道也。
“知律而变”中的“律”字,若解释为“规律”,便是可以用于软件工程中了。“道”是规律,如果明“道”,而可以变化无穷,这样做软件工程才是活的。就如同今人难于填词一样,不明道,则不明智,不明智则无所以为,因而在软件工程实施中不可避免地盲目与停滞。
“知律”的另一层意思,是在于“知道原理”。明白“为什么要这样”或者“为什么不是那样”。这在软件开发中是常见的问题,大多数人不知究竟地使用着技巧和方法,而一旦出了问题,则归咎于这些技巧和方法的不好。而真正的问题在于,这些人(我们通常叫做Copy&Paster)并不知道这些技巧、技术和方法的原理,因而不知道变通,也不知道回避错误。
死读一本《软件工程》的人不会做真正的软件工程,所以我写了本书,聊做软件工程实践者的思想之著。
<<上一页1 2