`
javasee
  • 浏览: 965325 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

等度的流明——代码之美·序

阅读更多

没想到华章已经把这篇序在china-pub上放出来了,那我也就公开了罢。不过更没想到的事情是,这本书有38位作者固然是令人称奇,而这本书(中文版)共有八篇序,大概也是出版中少有的了罢。

代码之美Beautiful Code(中文版)(9.22日china-pub全国独家首发)

等度的流明

        ——代码之美·序

一
~~~~~~
我上一次印象深刻的美的体验,大概已经是在十年之前了,那只是在午后睡醒,面对窗外的
一棵大梧桐树时的感觉。不过这并不是说我这十年来都只看到了丑的事物,而是说我已经忘
了去观察既已存在的美。

直到我拿到这本《代码之美》,我忽然地回到了那种仰望着星星烁耀的夜空,或低头沉思于
一两句大家文字的日子里。那时刻我既不是在思考,也不是在分析,更不是在解释,而只是
在感受自然的、文字的,或将自然蕴于文字之中的,美。


二
~~~~~~
有一本书开启了一个时代,而我们如今仍然在这个时代之中而不知觉于这本书的深远影响,
那是三位图灵奖得主合著的《结构程序设计》(1)。其中Dijkstra将人“理解一个程序的种
种思维方法”归为三种:枚举、数学归纳和抽象。

显然Wirth先生更为深层地看到了程序的本质,他说“程序=算法+数据结构”(2)。他揭示
了这样一个事实:一个未知的、无序的世界是不可能实现“程序”的,于是我们抽象它——
使它成为结构,或者对象,或者网,或者某个相对规则的事物。然后,我们再着之以“算法”。

《代码之美》这本书,三十八位大师,在三十三章的内容中详细讨论了代码中抽象的过程、
算法的过程和编程的过程。显然的,这些正是程序中最深刻的美。如同花之蕊,叶之脉,以
及维系花蕊叶脉的美的,那些汁液。这种对美的触及,使他在我面前闪耀着与前两本书等度
的流明。


三
~~~~~~
“只有在不仅没有任何功能可以添加,而且也没有任何功能可以删除的情况下,设计师才能
够认为自己的工作已臻完美。”(3)然而编程的过程呢?我们最初只是想实现一个功能。但
为了实现它,我们写了一段功能代码、一段测试代码、一段功能代码的配置代码,一段功能
代码的配置代码的测试代码……

如此往复不休。

我们回到原始的问题,原本只是要做一个“实现某项功能”的代码,我们却为何把代码做到
了“往复不休”的绝地?

或者你做的事情并不完美,但是你应该知道所谓完美的终极。代码要不停的测试,以及为测
试代码再写测试代码,这一过程也不是美的。或许你认为它“必须”,但你应知道它终究不
美。

四
~~~~~~
大师们也并没有创生完美的能力,他们只是在一步步地进行着。在这本书里,Adam Kolawa
告诉你的,Lincoln Stein告诉你的,以及Elliontte Rusty Harold等等告诉你的,就是
那经年累月地或亦步亦趋地进行过程,和那个“终极完美”的定义。

这只是过程和隐于过程中对美的追求。而“美”是什么,还是在你的心底。你心中原本就没
有美的感受,如何写得出美的代码?所以代码写到烂处,写到心胸滞涩处,便不如寻一清静
所在,捧《代码之美》一册,回顾一下,品味一下,吐故纳新一下了。

看得多远,取决于你站得多高;要想成为他们,你得先知道他们。

这就是我的建议了。
注:
~~~~~~
(1) 《结构程序设计》出版于1972年,作者分别是1972、1980、2001年图灵奖得主Edsger W.Dijkstra、
C.Anthony R.hoare和Dahl。
(2) 《算法+数据结构=程序》出版于1975年,作者Pascal之父Niklaus Wirth,是1984年图灵奖得主。
(3) 出自Antoine de SaintExupery,法国战士与文学家。本书的第3章中Jon Bentley引用。

分享到:
评论

相关推荐

    流明诺瑞ARM与IIC

    流明诺瑞ARM与IIC相关的知识主要集中在嵌入式系统中的微处理器——ARM和IIC(Inter-Integrated Circuit)总线的使用上。ARM单片机是嵌入式领域广泛应用的一种高性能、低功耗的处理器,而IIC总线则是一种在微控制器和...

    流明光通量的計算方法與公式

    ### 流明光通量的计算方法与公式详解 #### 光通量(Luminous Flux, Φ) - **定义**:光通量是指由光源发射并被人眼感知的所有辐射能量,用符号Φ表示,单位为流明(lumen, lm)。 - **公式**:光通量可以通过以下...

    群星系列(流明)单片机的I2C写法

    在压缩包中的"I2C.c"文件中,应该包含了实现上述步骤的函数代码示例。通过对这个文件的分析和学习,你可以更深入地理解群星系列(流明)单片机如何使用I2C进行数据写入。同时,也可以了解到如何调用库函数来简化开发...

    流明芯半导体LED照明驱动方案选型指南.pdf

    流明芯半导体LED照明驱动方案选型指南pdf,流明芯半导体(LumenChip)是一家从成立伊始即专注于LED照明驱动解决方案及元器件供应的企业。创新的LED驱动产品涵盖了DC 1.8V~80V,AC 85V~265V宽输入电压范围(隔离/非...

    LED基本术语,比如流明发光强度等知识。

    一个典型的LED由PN结组成——即P型半导体和N型半导体结合在一起形成一个结。当正向电压施加到这个结上时,电子和空穴在结区复合,释放出能量,这种能量以光的形式被释放出来。LED的工作电压通常较低,在1.5至3伏特...

    赛事制作技术之电视照明器材.pptx

    发光效率——21~23流明/瓦; 氙灯:色温——6000k 显色指数——Ra95~97 发光效率——30~50流明/瓦 ; 镝灯: 色温——5500~6000k 显色指数——Ra80~90 发光效率——80流明/瓦; 三基色荧光灯管: 色温——3200k ...

    投影机与球幕有效对比度白皮书.pdf

    投影机与球幕有效对比度的白皮书是一份详细分析球幕影院视觉表现的关键参数——对比度的专业文档。球幕影院与传统影院相比,具有强烈的沉浸感,但同时也存在一些固有缺陷,其中最重要的缺陷之一就是对比度相对较低,...

    辐射度绘制精解

    《辐射度绘制精解》是一部面向程序员的全面指南,它不仅详细介绍了辐射度绘制的基本原理和技术实现,而且还提供了丰富的示例代码供读者实践参考。通过阅读本书,即使是没有深厚数学背景的读者也能轻松掌握辐射度绘制...

    首尔半导体创新“暖白Acriche”环保照明技术——近似天然阳光 正式于照明市场推出 创造更光亮的照明环境.pdf

    首尔半导体公司,这家在韩国上市的企业(KOSDAQ 0468901),宣布了一项重大的技术创新——“暖白Acriche”环保照明技术,这是一项旨在创造更明亮、更接近自然阳光的照明环境的新技术。Acriche是一种先进的半导体照明...

    显示/光电技术中的首尔半导体最新LED光亮度可达900流明/10瓦特

    首尔半导体作为全球领先的LED制造商,最近发布了一项突破性的技术——Z-Power P7系列。这个系列的LED产品在光亮度和能效方面都取得了显著的提升,有望引领LED照明技术进入一个全新的时代。 Z-Power P7系列的突出...

    半导体照明(LED)漫谈——LED照明为什么这么亮.pdf

    《半导体照明(LED)漫谈——LED照明为什么这么亮》 LED照明,即半导体发光二极管照明,近年来因其高效节能、寿命长、体积小、色彩丰富等优势,备受业界关注,成为未来照明领域的主流趋势。半导体照明的核心在于其...

    嵌入式系统/ARM技术中的首尔半导体宣布420流明单一模组LED研发成功

    首尔半导体的最新突破——开发出420流明的单一模组LED,不仅提升了照明效率,还展示了嵌入式系统在优化硬件性能方面的潜力。 嵌入式系统是一种专门设计用于特定功能的计算机系统,通常整合在更大的设备或产品之中。...

    显示/光电技术中的首尔半导体研发出超过400流明的超高亮LED

    Ltd.”)宣布其研发队伍成功研发出单一LED可达到超过400流明的超高功能技术,远远超过传统最高约100流明亮度的LEDs。首尔半导体这个超高功能LED是新一代照明光源,相信会将传统照明加速转换成LEDs。  基于两项的...

    光通量的单位-流明

    发光强度为1坎德拉(cd)的点光源,在单位立体角(1球面度)内发出的光通量为“1流明”,英文缩写(lm)。  名称定义  所谓的流明简单来说,就是指蜡烛一烛光在一公尺以外的所显现出的亮度.一个普通40瓦的白炽灯泡,...

    lumen-server:流明服务器

    流明服务器 流明框架的后端服务 启动服务器 php -S localhost:8000 -t public 它正在创建一个命令来启动PHP内置的服务器。 服务器在端口8000上运行,服务器文件来自./public目录。 图书馆 jenssegers / mongodb ...

    流明:功能脚本编程语言

    在流明中,你可以利用高阶函数、闭包和惰性求值等特性来编写清晰、简洁的代码。 1. **高阶函数**:流明支持将函数作为参数传递给其他函数,或者作为函数的返回值。这种特性使得代码模块化程度更高,更易于复用。...

    lumen-generator, 你找不到一个流明发生器.zip

    lumen-generator, 你找不到一个流明发生器 腔发生器 你是否错过了流明项目中的任何 Laravel 代码生成器? 如果是的话,你就在正确的位置。安装要使用中的某些内置生成器命令,你需要添加该软件包:composer require ...

    STM32单片机读写BH1750FVI光照度传感器软件例程源码.zip

    STM32单片机读写BH1750FVI光照度传感器软件例程源码,可做为你的学习设计参考。 本例程使用GPIO模拟I2C时序访问光照度传感器 BH1750FVI. 通过串口实时打印采样数据,每秒刷新一次显示。 光照度芯片位于开饭右上角...

    显示/光电技术中的Nichia研制出100流明/瓦高效白光LED芯片

    在显示和光电技术领域,Nichia公司的一项重大突破引起了广泛关注:他们成功研发出了一款具有100流明/瓦效率的白光LED芯片,并计划在今年实现量产。这一创新不仅标志着 Nichia 在竞争激烈的市场中取得了领先地位,也...

    投影机市场关注度分析报告.doc

    2. 亮度:2000流明以下产品关注度下降,2000流明以上适合会议室和教室的产品关注度上升。 3. 重量:3-3.9公斤的投影机(多数教育用)关注度增加最多,1.9公斤以下产品关注度增长最少。 六、不同价格段投影机关注度...

Global site tag (gtag.js) - Google Analytics