如何决定何时包装/端口/写入FromsCratch

2024-09-29 23:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我要在Smalltalk(Pharo)中构建一个项目。还有一个python库,我打算用它来做同样的事情。现在,有3个选项:

  • 那些python库的Smalltalk包装器
  • 将python库移植到Smalltalk
  • 从头开始编写库(在Smalltalk中)以便在我的项目中使用

以下是我的疑问:

  1. 移植/包装的“基本”差异是什么(目前还没有找到令人满意的解释)
  2. 如何知道何时使用(三者中的哪一个)?在
  3. 任何资源或指针,我可以得到进一步的帮助/一些启动我的项目。在

谢谢!在


Tags: 项目选项差异资源事情指针smalltalk三者
1条回答
网友
1楼 · 发布于 2024-09-29 23:17:07

包装纸

其唯一目的是在本机语言中编写外部函数。目标是尽可能少地使用母语。例如,将数据类型从本机语言转换为外部库语言,等等

当外部库为:

  • 用比本地代码更有效的语言编写(例如,从Python调用的C++库)
  • 大型/复杂且翻译耗时或容易出错
  • 定期更新;在一个维护良好的库中,接口(您的包装器所关注的)的变化要比特性的实现少;因此,如果您在功能上有包装器,那么更新到库的新版本应该非常简单

移植

端口只是从一种语言到另一种语言的翻译。一般来说,尽可能保持相同的逻辑。在

移植在以下情况下是有意义的:

  • 母语比外部库更有效
  • 这个库很简单,人们希望节省包装的开销
  • 我们打算用本机语言对移植的代码进行修改和维护
  • 目前还没有计划以自己的语言使用外部库
  • 一个人想学一种或两种语言

重写

把重写看作是一个有很多重构的端口。其目标是利用母语的特性,以某种方式(效率、可读性等)改进库

重写在所有与移植相同的场景中都是有意义的。决定是执行简单端口还是完全重写通常归结为一个问题:

  • 有没有更好的方法来用本地语言实现外部库的功能?在

相关问题 更多 >

    热门问题