我正在读一本关于ASP.NET MVC的书,它说:
“NVelocity是Java Apache Velocity模板引擎的一个端口,NHaml是Ruby on Rails Haml引擎的一个端口”。
“port”这个词在这个例子中意味着什么?
答案 0 :(得分:6)
来自维基百科上的Porting (Software Engineering)条目:
在软件工程中,移植是调整软件的过程,以便可以为不同于最初设计的计算环境创建可执行程序[或库](例如[不同的语言,]不同的CPU,操作系统或第三方库)..
..术语“港口”源自拉丁语portare,意思是“携带”。当代码与特定操作系统[或语言]或体系结构不兼容时,代码必须“携带”[或“移植”]到新系统。
因此,“端口”是“移植”的结果,并且有许多不同类型的“端口”。
在某些情况下,端口可能“仅在精神上”,它大量借用原始实现的 ideas ,但在其他方面不共享代码;图书馆通常会进一步分歧以利用目标语言特征。
另一方面,应用程序端口 - 尤其是那些旨在可在不同“UNIX”环境之间移植的端口 - 可以共享除构建过程之外的所有内容。