python – 如何决定何时从头开始包装/端口/写入
作者:互联网
我将在Smalltalk(Pharo)中建立一个项目.还有一个python库,我打算用它来做同样的事情.现在,有3个选项:
>那些python库的Smalltalk包装器
>将python库移植到Smalltalk
>从头开始编写库(在Smalltalk中)以便在我的项目中使用
以下是我的疑问:
>移植/包装的“基本”差异是什么(在任何地方都找不到令人满意的解释)
>如何知道何时使用(三者中的哪一个)?
>任何资源或指针,我可以得到进一步的帮助/一些启动我的项目.
谢谢!
解决方法:
包装纸
用本机语言编写函数,其唯一目的是调用外部库中的函数.目标是尽可能少地使用母语.例如,将数据类型从本机语言翻译为外部库语言等.
当外部库是这样时,包装器是有意义的:
>用比本机代码更有效的语言编写(例如,从Python调用的C库)
>大/复杂,并且会耗费时间或容易翻译
>定期更新;在维护良好的库中,接口(包装器所关注的)将比实现功能的更改频率更低;因此,如果你有关于功能的包装器,更新到新版本的库应该相当简单
移植
端口只是从一种语言到另一种语言的翻译.通常,尽可能保持相同的逻辑.
移植在以下情况下有意义:
>母语比外部库更有效
>库很简单,人们希望节省包装所需的开销
>一个打算用母语制作和维护移植代码的更改
>没有计划以自己的语言使用外部库
>一个人想要学习所涉及的一种或两种语言
改写
将重写写为具有大量重构的端口.目标是利用本地语言的功能以某种方式改进库(效率,可读性等)
重写在所有与移植相同的场景中都有意义.决定是做简单端口还是完全重写通常归结为一个问题:
>有没有更好的方法来实现本地语言中的外部库的功能?
标签:python,smalltalk,wrapper,porting,pharo 来源: https://codeday.me/bug/20190716/1481097.html