python基础教程_学习笔记26:好玩的编程

好玩的编程

程序设计的柔术

当大家坐下来并计划应该如何组织程序的时候,对于这个具体的程序,还没有任何的经验。在实现功能的时候,会逐渐地学到对原始设计有用的新知识。不应该无视一路走来所吸取的教训,而应该将它们用于软件的重新设计(或重构)中。

灵活性的实现包括许多方面,下面是其中两个:

原型设计:python最棒的功能之一就是可以快速地编写程序。编写原型程序是更充分地了解问题的一种很好的方法。

配置:灵活性有很多种存在形式。配置的目的就是让程序某部分的改变更简单,对于你和用户来说都是这样。

第三点是自动化测试。如果希望轻松改变程序的话,那么自动化测试绝对是必不可少的。使用原地测试,就能保证你的程序在进行修改后还能工作。

原型设计

在将一些思想融入到程序的结构中后,建议实现一个简单的版本,这个版本的功能可能非常有限。

还能在任何程序设计语言中使用原型设计,但python的强大之处就在于编写一个模型只需要很少的投入,而不用大动干戈。

配置

另外一种更加简单的在程序中引入抽象的方法:从代码中提取符号化常量。

提取常量

为了标识变量是作为符号化常量对待的,可以用特殊的命名规则——名字之用大写字母,并且用下划线分隔每个单词。

配置文件

为自己使用方便提取常量是一码事,还要考虑有些常量是要公开给用户的。

 

这里不是将这些配置变量放在模块的开头,而是将它们放在单独的文件中。实现这个功能的最简单方法就是为配置创建单独的模块。

使用配置文件具有两面性:一方面,配置功能很有用,但对整个项目使用集中、共享的变量库会让项目的模块性下降、整体性上升。一定要确保没有破坏抽象(比如封装)规则。

 

另外一种方法是使用标准库模块ConfigParser,它的作用是对配置文件使用适当的标准格式。它接受标准的python赋值语法:

greeting = ‘hello,world!’

另外一种在很多程序中使用的配置格式如下:

greeting: hello,world!

 

需要使用[files]或者[colors]这样的数据头将配置文件划分为几个区段。名称可以随意设定,但需要将它们用方括号括起来。

 

日志记录

日志记录在大幅度更改程序内核时候很有用,它可以帮助找到问题和错误所在。日志记录基本上就是收集与程序运行有关的数据,这样可以在随后进行检查(或累计数据)。print语句算是一种简单的日志记录形式。只要在程序开头放上下面这条语句:

log=open(‘log.txt’,’w’)

随后就可以将任何感兴趣的程序状态信息像下面这样放在文件中:

print >> log, (‘Downloading file from URL %s’ % url)

text=urllib.urlopen(url).read()

print >> log, ‘File successfully downloaded’

 

可以使用标准库中的logging模块,logging是个高级模块,值得学习。

如果还想学

推荐阅读:

《程序员修炼之道》

《重构》

《设计模式》

《测试驱动开发》

UNIX编程艺术》

《算法导论》

《计算机程序设计艺术》卷1-3

《Concepts, Techniques, and Models of Computer Programming》

 

就算不读完每本书的每一页,也要随手翻翻看,这样能培养在开发过程中的洞察力。

python基础教程_学习笔记26:好玩的编程,布布扣,bubuko.com

python基础教程_学习笔记26:好玩的编程

上一篇:使用idea引入注解@SpringBootApplication报错Cannot resolve symbol 'SpringBootApplication'


下一篇:C++ unordered Associative Containers(C++11)