`
庄表伟
  • 浏览: 1150640 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《代码大全》——软件开发的世界地图

阅读更多

  我有很浓厚的“地图情结”,以前我写过一篇《我的信仰地图》,最近又做了一次关于Ajax的演讲,名字叫做《Ajax技术地图》。我一直以来的观点是,世界是一个整体,在这个巨大的世界之中,任何事物、任何知识,任何观点,都有其合理、自然的位置。理解这个世界的过程,就是逐步将需要了解的各种事物,在作为整体的一个世界中,找到其位置。了解这个位置的前后左右,相互关系,相互影响。这样的理解世界的学习方式,我认为是最为有效的。所以当我在JavaEye看到关于《代码大全》的广告时,我的第一反应就是:这不是世界地图吗?
 
  看了看他的目录,竟然有35章之多?架构、分析、设计、编程、测试、重构、面向对象、调试、规范、管理、软件质量控制、协作、优化、开发工具、注释、甚至个性、开发艺术等等等等,只要是与软件有关的,基本上他都写到了。
 
  说实话,我当时相当的不屑......可能吗?居然有这么一个家伙,能够像当年的托马斯•阿奎那一样,以一己之力,写出《神学大全》?CSDN的网站上介绍这个Steve McConnell,在1998年的时候,被Software Development杂志的读者评为软件业最具影响力的三大人物之一,与Bill Gates、Linus Torvalds齐名。一个写书的,能和两个写代码的天才齐名?网站上的那些推荐的话,个个都是大名鼎鼎,个个都是推崇备至。作为我这样一个有逆反心里的家伙来说,直觉上就是:“会不会呀,有这么牛吗?”

 

  当然了,我也不好多说什么,毕竟没有看过书~~~

 

  没想到好事居然找上门来了,博文视点的魏泉是我要写的那本Ajax书的责任编辑。而《代码大全》也是他们负责出版的。那天他找到我,说是让我看看这本书的书稿……看看能不能写一篇书评。这等美差,我很爽快的就答应下来了。

 

  一看之下,果然是很喜欢,作者的思考问题的方式,与我的方式相当的接近,都是尽可能将多种、甚至矛盾的事物,放在一个整体的环境中来理解。比如对于隐喻,用于描述软件开发的特征的各种各样的隐喻,其实各有其价值,如果能够组合运用,自然能够获得一种平衡。正如作者所说:“使用隐喻又是件说不清楚的事情(fuzzy business)。你需要适当地引申它的含义,才能从其中蕴含的深刻启发中受益。但若你过分地或者在错误的方向上引申了它的含义,它也会误导你。正如人们会误用任何强大的工具一样,你也可能误用隐喻,但它的强大的功效,还是会成为你智慧工具箱中的一个宝贵部分。”

 

  这样的一种看法,可以说“中正平和、深具智慧”,这是我们在大多数关于软件开发的论述中,很难看到的。

 

  再比如说,作者在第三章时给出的一个表格:三种常见的软件项目种类,及其典型的良好实践。就将软件分为商业系统、性命攸关的系统以及性命攸关的嵌入式系统。然后指出对于这三类不同的应用,在开发手段、管理强度、设计、构建、测试、部署等等方面的差别化策略。这样的分类,自然就避免了将各种开发手段,简单的对立起来比较的方法,显得更加具有说服力。

 

  再比如说,全书给出了相当多的Check List,这样的表格,实在是大有益处,借用地图的隐喻来书,这样的CheckList,就是一个一个的定位器,它能够帮助你认清自己的位置,了解问题所属的范畴,了解应该努力的大致方向。这样的“开发工具”,真是独一无二。

 

  这本书我目前只看了前面的5~6章,实在没有太多的发言权,不过我现在已经可以肯定,这是一本非常有价值的好书,我推荐所有没有看过的朋友去看看这本名副其实的经典之作。

 

  说实话,天下没有免费的午餐,我这篇书评,也是属于交差之作。人家出版社把样书给你看,请你写书评,当然希望你能说些好话幸运的是,这些好话,的确都是我自己愿意说的。

分享到:
评论

相关推荐

    《Visual C++开发GIS系统——开发实例剖析》附书源代码.zip

    通过学习《Visual C++开发GIS系统——开发实例剖析》一书,读者可以系统地掌握上述知识点,并通过源代码实践提升自己的GIS开发能力。无论是对GIS感兴趣的初学者,还是希望深入研究GIS开发的专业人士,这本书都是一份...

    开源的魔兽世界参考架构——mangos

    ### 开源魔兽世界服务器架构——mangos #### 一、引言 随着网络游戏的兴起和发展,越来越多的人开始关注网络游戏背后的服务器架构和技术实现。暴雪娱乐的《魔兽世界》作为一款全球知名的大型多人在线角色扮演游戏...

    Visual C++开发GIS系统——开发实例剖析.pdf 这个书的代码

    《Visual C++开发GIS系统——开发实例剖析》这本书专注于利用Microsoft的Visual C++编程环境来构建地理信息系统(GIS)的应用程序。GIS是一种用于处理、分析和展示地理数据的软件技术,广泛应用于城市规划、环境保护...

    RGMViewer软件——地图数据下载工具

    在使用RGMViewer时,我们注意到压缩包中包含的"core.dll"是一个动态链接库文件,它是软件运行的重要组成部分,包含了实现RGMViewer核心功能的代码和算法。"RGMViewer.exe"是主执行程序,双击运行此文件即可启动软件...

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    4.2.2自定义切片地图图层——百度地图 4.2.3自定义图层——三维建筑图 4.3地图操作 4.3.1地图窗口操作 4.3.2地图属性获取 4.3.3事件处理 4.4地图参数的基本配置 4.4.1漫游与缩放动画的参数配置 4.4.2比例滚动条的...

    ArcObjects GIS应用开发——基于C#.NET(第一版).pdf

    1.5章节提到了ArcGIS软件开发套件(SDK)和资源: - ArcGIS SDK提供了详细的文档、示例代码和工具,帮助开发者构建基于ArcObjects的应用程序。 - ESRI Developer Network网站是一个宝贵的资源库,提供最新的开发信息...

    公交查询系统课程设计——软件工程

    公交查询系统课程设计是软件工程领域的一个典型实例,它涵盖了软件开发的多个关键阶段,包括需求分析、系统设计、编码实现、测试与维护。在这个项目中,学生将学习如何运用软件工程的理论知识来构建一个实用的信息...

    安卓Android源码——精典源码之百度手机地图实例集合.zip

    在安卓(Android)平台上,开发地图应用是一项常见的任务,而百度地图API则为开发者提供了强大的支持。本资源“安卓Android源码——精典源码之百度手机地图实例集合.zip”包含了一系列关于如何在Android应用程序中...

    安卓Android源码——百度地图API源码.zip

    本压缩包包含的“安卓Android源码——百度地图API源码.zip”提供了详细的源码示例,这对于理解和实践百度地图API的应用非常有帮助。 首先,我们来深入了解一下安卓Android源码。源码是程序的原始形式,它包含了...

    基于Android平台的-无间盗-防盗软件——地图追踪及远程指令毕业论文.doc

    本文主要探讨了一款基于Android平台的防盗软件——“无间盗”,该软件具有地图追踪及远程指令的功能。随着Android系统的普及以及智能手机的广泛使用,手机安全和防盗问题日益凸显。这款软件旨在通过集成Android系统...

    基于android平台的“无间盗”防X盗软件——地图追踪及远程指令毕业论文设计.doc

    本文主要探讨了一款基于Android平台的防盗软件——“无间盗”,该软件具有地图追踪及远程指令的功能。在智能手机日益普及的今天,Android系统的安全性和防盗问题变得至关重要。这款毕业设计旨在通过Android的短信和...

    android 源代码3D娱乐游戏——3D迷宫

    在Android平台上,3D游戏开发是一项充满挑战与乐趣的任务,特别是在..."GL_MASE"和"地图设计器"是这个过程中两个关键的工具,分别处理3D渲染和地图设计,使得开发者能够在Android平台上构建出引人入胜的3D游戏世界。

    地图下载工具代码,可以下载各个图层的地图切片

    标题中的“地图下载工具代码”指的是一个用于获取地图切片的软件开发项目。地图切片是地图的一种分块表示方式,通常在Web地图应用中使用,以便快速加载和浏览大范围的地图数据。这个工具可能允许用户按需下载特定...

    iOS游戏应用源代码——whg-Visualising-the-London-Underground-cdff0e5.zip

    标题中的“iOS游戏应用源代码——whg-Visualising-the-London-Underground-cdff0e5.zip”表明这是一个关于iOS平台的游戏应用源代码库,具体项目是“Visualising the London Underground”。这个项目的目的是通过代码...

    二维码——QR码编码软件

    本软件“二维码——QR码编码软件”专门用于生成QR码,用户可以输入文字信息,软件会自动将其转换为相应的二维条码格式。这在需要快速分享大量信息或者创建个性化二维码时非常有用。例如,你可以用它来创建包含个人...

    世界地图 shapfile

    本文将深入探讨一种广泛用于GIS领域的数据格式——shapfile,以及如何使用它来展现2016年更新的世界地图,特别是国界线的细节。 Shapfile是一种开源、轻量级的地理空间数据存储格式,由Esri公司开发。它被设计用来...

    毕业设计英文翻译——基于全球卫星定位系统GPS的软件开发

    《基于全球卫星定位系统GPS的软件开发》毕业设计英文翻译 全球卫星定位系统(GPS,Global Positioning System)是现代科技的重要成果,广泛应用于导航、定位、测绘等多个领域。在软件开发领域,尤其是针对无线设备...

    ArcObjects GIS应用开发——基于C#.NET.pdf

    ### ArcObjects GIS应用开发——基于C#.NET #### 一、ArcObjects简介 在地理信息系统(GIS)领域,ArcObjects是一套由ESRI提供的组件集合,用于开发与ArcGIS产品集成的应用程序。ArcObjects提供了丰富的类库,允许...

    安卓Android源码——百度地图定位,显示周围的人,类似于E代驾的首页效果.rar

    在本项目中,开发者使用Java或Kotlin语言编写了应用程序,遵循安卓的SDK(软件开发工具包)和API来实现各种功能。 2. **百度地图API**: 百度地图提供了丰富的SDK和服务,使得开发者可以方便地在应用中集成地图、...

Global site tag (gtag.js) - Google Analytics