Package的应用通常在代码文件较多或者复用别人的代码的时候会用到,这就导致了这块东西容易被忽略。本文内容分两部分,第一部分通过类比来介绍package包的两大作用,第二部分将提供package的代码例程作为编程指导。
package两大作用
Package这个概念在很多编程语言中都有对应的语法结构,比如Python、Java、Perl等等,足以说明它有多么重要!Package有两大作用,一方面是为了代码分发,package提供了代码封装效果,提高了代码的重用性(reuseability);另一方面是为了提供对代码元素(比如数据结构、函数等)访问权限的控制机制。
先看看第一件事情,代码分发。代码分发(release)是软件开发工程中非常常见的需求,换句话说可以理解为代码的发布和复用方式。代码分发本身没有一个严格的规范,更多的是按照协作者之间约定好的方式就可以进行了。这样一来,代码分发的方式就非常多样,可以只是源代码的拷贝,可以是提供一个文件列表(filelist),也可以是通过Package包来发布等等。
Package在代码分发上的作用不容忽视,举两个例子,在Python开发中经常会依赖于各种各样的轮子(wheel),当我们需要哪些功能的时候就导入对应的package,这样就可以尽情地使用这些package中提供的函数了;UVM作为目前最通用的芯片验证方法学,它的代码库同样是通过package来进行封装和发布的。