把Tcl库代码放入包(package)中是一个复杂的过程。Tcl 8.x名字空间(namespace)令人困惑。把这两个东西放一起,你很可能搬起石头砸自己的脚。更糟的是,未来使用这些包的用户比包的作者更容易“中枪”。
标准的Tcl发布有很多的文档介绍namespace和package命令如何工作,但是很少有关于如何干净、有效的使用名字空间和包的介绍资料。在网上搜索,也未找到任何怎么使用Tcl 8.x 名字空间、包最好的任何资料。
下面的指导原则是我工作过程中总结的,也接收了其他Tcl/Tk社区评价和建议。 这些指导原则对我收益匪浅,使我的包和程序减少了很多麻烦。这是一个进展中的工作,如果发现有什么错误,欢迎提出意见改进。
假定读者是已经读过至少一本关于Tcl的书,不会解释具体Tcl命令,只是介绍怎样使用这些命令。
规则
如果你遵循下面的规则,通过非常简单的方式就能使你的包正常工作,别人也更加容易使用你的包。
规则1 遵循Tcl Style原则
Tcl Style 原则,是由Sun Microsystems的Tcl/Tk开发团队编写的,已经成为事实上的Tcl/Tk的社区编程风格指南。像其他风格指南一样,它的要求有点强制性。它的目的不是为了让代码运行高效,而是为了让代码简洁、易读。
这些指引,坚持“风格指南”中设置的规则,只要它们涉及到的命名,代码布局,等等问题。这些准则违反规定,他们这样做的明确表示原因。
规则2 把库代码放入package
包是创建Tcl库代码的最好方式