编程之美

好久没有更博客,天天忙也不知道都忙了什么; 之前说要连续写30天博客,连续推送30天代码的目标在某一天给断了. 结果也不了了之 昨天晚上临睡前看了一会 O' Reilly Media, Inc 出的 Python学习手册, 在书中有一段讲Python和其他语言进行对比的段落,觉得说得很棒; 真是说到我心坎里了,因为最近正好做了一个项目,是二次开发; 嗯 ,说得好听的话叫做项目重构,说的不好听了叫项目重写; 当时拿到项目代码之后整个人是崩溃的,文件结构大概是这样子

AAAClass.h
AAAClass.m
BBBClass.h
BBBClass.m
CCCClass.h
CCCClass.m
....
....

嗯,还没有文档….. 花了两天读了一下代码, 没有重构,没有继承,各种oop思想没有;生生把Objective-C给写成了C语言; 我想所有的程序员应该都知道, 代码是写给人看的, 不是写给机器和电脑看的.. 我觉得代码在设计和编写的时候更应该注重可读性,提高代码的可重用性,可维护性, 遵循这个原则,你的代码才不是写一次就丢掉的程序; 当然,一个人做项目是挺爽,没有约束,天马行空,肆意汪洋,但是一周两周三周一个月两个月后呢,当你去维护项目的时候怎么办…. 对比Python和Perl这两种语言, 你可以用Python做到一切用Perl能到做到的事情, 但是做好之后, 你还可以阅读自己的程序代码; Python的美在于容易编写,容易阅读;更注重工程项目的可维护性;Perl就不一样,Perl很容易便携,但是程序员很难去阅读,你看代码很难猜到某一段代码的意图; 当然,这是因为两个语言的设计者背景不一样; 但是,这能体现人们选择使用Python的一些主要原因, 代码具有高度的统一性, 语法和工具集相当一致, 有一个很核心的概念, 简洁优美统一; Perl呢, 完成的方法不只有一种,所以,有了这种鼓励,每个人的代码风格都充满了独特性,充满技巧性;而这种独特的技巧常常是Perl使用者之间的骄傲来源; 我想,任何做过实质性的代码维护工作的人,应该都可以正式, 自由的表达是一门很棒的艺术,但是对于一个工程来说就是很让人厌恶的一件事情了;在工程世界中,我们需要最小化功能集和可预测性;在工程世界中, 表达式自由度会造成维护的噩梦; 结果往往都是, 不行就推倒重来吧… 艺术和工程之间的关键差异在于个体的自由选择和一些独特的想法;但是一个优秀的程序员应该知道,代码应该是为下一个阅读它而进行维护或者重用的人写的. 如果下一个人无法理解代码,那在实际开发场景中就毫无用处了; 所以呀,好好写代码; 做好文档建设工作,认真写注释;