从“凌波微步”到“道法自然”

从“凌波微步”到“道法自然” ( 专家韩磊2004-9-20 10:58:12)     12人同意、20人反对
王咏刚的文章,曾经在《程序员》杂志以“凌波微步II”的专栏题目发表过多篇。其实这个专栏是其著作《凌波微步》的后续——盖作者认为一本书尚不足道尽各种秘辛,故另辟疆土,继续战斗。
  除杂志文章外,王咏刚还常在其Blog专栏中撰文,主题涉猎颇广。显然作者试图跳出《凌波微步》讲项目管理的圈子,在其它开发相关领域“讲述自己的故事”。
   听说王咏刚与其兄长王咏武合著《道法自然——面向对象实践指南》,不由得心中一惊——王氏作品,常因为“务虚”——一些读者的看法,我对此并不赞同——而为人所诟病,写这样一本书,是否意味着某种意义上的“硬着陆”呢?再,面向对象是每位程序员耳熟能详、甚至每天要干的事情,这样一本书,会不会让人觉得是老生常谈,絮絮叨叨不知所云呢?避“虚”就“实”,再加上一个普通得不能再普通的题目,这本书的命运似乎就值得担心了。
  
  
   从博文公司拿到还没有出版的《道法自然——面向对象实践指南》,看完之后,有几个感觉:
  
   一、 不管是软着陆还是硬着陆,这本书的确落到了实处。全程跟踪解析一个实际项目,描述过程中种种问题及解决方案,总结出应当遵循的原则……每一章节都是来自于实践,也对项目实践有指导性的意义。
  
   二、 在回归实践的同时,作者眼界却比《凌波微步》时更高了。我们每天都在将世界抽象为类,都在不停地创建对象,都在与继承、接口打交道;在因为对这些技术运用自如时,往往会陷入偏执,执着于寻找“银弹”——放之四海而皆准的面向对象解决方案。书中告诉读者:面向对象领域充满了辩证关系,开发者不得不在每一个设计和实践环节中仔细权衡,择善而从。这句话可谓是贯穿全书的“书眼”,一语道破天机。的确,在项目开发过程中,每一阶段都会面临和做出选择,误入歧途的结果就是满盘皆输。可以说整个项目开发过程,就是不断做选择的过程:从需求分析到具体实现,从系统框架到一个类的设计。没有选择的项目是不可想象的。
  
  
   三、 如果说《凌波微步》是销金断玉的宝剑,那么,《道法自然——面向对象实践指南》就是一把黑黝黝实沉沉的重剑。所谓“重剑无锋,大巧不工”,这把重剑让我们看到王氏兄弟轻灵步伐后面的深厚功力和丰富经验。那些不喜欢《凌波微步》的程序员读者,大可在这本书中扭转对作者的印象。俗语说得好:光说不练是假把式,光练不说是傻把式。前后两本书,一说一练,形成了有趣的对比。
  
  
  
   《道法自然——面向对象实践指南》是作者经验和理论的凝聚,虽然是讲一个项目,但聪明的读者却能从中悟出禅机来。我想要紧的是怎样去读这本书。书的开头,作者就给出了“一份关于本书的FAQ”,给出了具体的指引。我总结一下,再加上点自己的理解,大致如下——
  
   一、 你需要有基本的面向对象知识和技能(也包括UML相关知识)。这本书不是入门读物,不会教你怎么扎马站桩,对OO一无所知的朋友,应该先去补补课。
  
  
   二、 你要做好被顿喝的准备。曾经见过许多以用面向对象语言开发的非面向对象程序,这些程序的作者,也许会被接连不断的“顿喝”打击得不知所措。
  
  
   三、 善于模仿、善于总结。阅读这本书的过程,如同在观看别人练剑术。练剑者也许不会把每一招的诀窍和要点讲出来,对整套招数的讲解也许只停留在点到为止的层面。这时,如果你能一步一步跟着书中项目组成员去做,随时思考,再从全局角度返观内照,才能悟到“剑法”之外的“心法”。
  
   我会毫不犹豫地向每一位程序员推荐这本书。同时我也强烈期待作者的下一部著作。从《凌波微步》到《道法自然——面向对象实践指南》,是从宝剑到重剑的转变;下一本书,能否来一次彻底升华,“枯枝断木,无不遂心所用”,真正做到“道法自然”?想必这也是作者自己想去回答的问题吧。
在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值