APP下载

GitHub与Fast.ai推出文学式程式设计工具Nbdev

消息来源:baojiabao.com 作者: 发布时间:2026-05-28

报价宝综合消息GitHub与Fast.ai推出文学式程式设计工具Nbdev

GitHub和人工智能非营利研究组织Fast.ai合作,共同开发出称为Nbdev的文学式程式设计环境,借由Nbdev,开发者可以在Jupyter笔记本中,创建完整的Python套件,编写单元测试程式,并以功能丰富的文件系统编写文件。

文学式程式设计是一种结合程式语言和文件的开发方法,开发者编写的文字,一部分会成为可编译和执行的程式码,另一部分则成为说明文件,比起仅使用高阶程式语言进行开发的方法,文学式程式设计让开发者,更能够表达程式逻辑以及流程,也使得程式码更容易维护。

Nbdev是一个探索性程式设计系统,Fast.ai解释,大多数开发人员进行探索和试验时,会花费大量的时间,像是测试从未使用过的API,或是了解算法的行为,甚至是对程式码进行除错的过程,Fast.ai认为探索的过程本身就很有价值,开发者应该把这个过程储存起来,以便其他开发者可以透过阅读前人的经历,学习更多的知识。

人们通常使用笔记本开发系统进行探索,并在真正进入开发工作阶段时,回到IDE或文字编辑器,而Nbdev的目的,是要将程式码编辑器的主要优点,带入笔记本系统中,让开发者可以直接在笔记本中,完成整个程式开发周期,GitHub提到,已经有部分工具融入了文学式程式设计的概念,像是Swift Playgrounds、Jupyter以及Mathematica,但是这些工具仍无法涵盖整个软件开发周期。

为了支援这样的想法,GitHub与Fast.ai一起,以Jupyter笔记本基础上建立Nbdev,以填补现阶段文学式程式设计需求的空白。Nbdev有很多功能与GitHub平台整合,像是托管在GitHub页面的Jupyter笔记本,可以自动根据程式码产生超链接文件,这些文件可被搜寻,并且能够根据关键字,自动连结到相对应的文件页面。

而GitHub Actions也会配置持续整合功能,自动进行单元测试,即便开发者不熟悉GitHub Actions也没关系,因为过程不需要开发者干预,GitHub Actions就能自动运作。Nbdev环境是由多个部分组合而成,包括可预览文件网站的网页服务器,还有用来编写程式码的Jupyter服务器,以及一系列命令列工具,开发者可以与GitHub Codespaces一起用,让使用过程更加简单。

Nbdev除了和GitHub整合之外,Nbdev本身也提供许多功能,例如笔记本与源代码之间会维持持续且强健的双向同步,因此在需要的时候,开发者可以从笔记本切换到IDE中,快速进行编辑,而且开发者也可以直接在笔记本中,编写测试程式码,且不需要学习使用特殊的API,只要使用单一命令列工具或是GitHub Actions,就能开始平行执行测试。Nbdev也可以被用来自动发布pypi和conda套件。

Nbdev不只可以用来创建Python软件,开发者也可以扩充Nbdev,以创建新型工具,像是GitHub最近以Nbdev开发了部落格平台fastpages,让开发人员能直接使用Jupyter笔记本,编写部落格文章,fastpages会利用GitHub Actions和GitHub Pages自动将笔记本转成部落格文章。另外,GitHub还用Nbdev和部落格平台fastpages,创建武汉肺炎(COVID-19)仪表板,该互动仪表板可自动以Jupyter笔记本更新资讯。

2020-11-24 10:50:00

相关文章