JS-Git是一款采用JavaScript实现Git核心功能,并且保证其能在多个平台上可以运行的开源项目。目前,CSDN记者采访了其创始人Tim Caswell,让他来分享JS-Git项目的开发经历。 之前,CSDN研发频道的曾推荐一款纯JavaScript实现Git客户端和服务器端的开源项目——JS-Git,该软件的主要目标是让用户能够在每一个平台上使用Git。 JS-Git并不是单纯的克隆Git的所有功能,它只是实现Git的核心功能,取其精华,并且添加了一些更加灵活的功能。该项目的另一个目标是构建一个可以让儿童编程的开发环境。 项目介绍:https://www.bountysource.com/fundraisers/325-js-git 项目托管地址:https://github.com/creationix/js-git 记者采访了JS-Git作者Tim Caswell,让他来给大家详细介绍一下JS-Git项目背后的故事。 Tim Caswell CSDN:请您先介绍一下自己的编程经历。 Tim:编程只是我的业余爱好,编程可以给我带来很多快乐。在80年代的时候,我在Commodore64上编写一些简单的程序,当互联网蹦出来以后,我就开始编写网页程序。最终,我得到了一些关于PHP、Ruby、Python和Node.js等方面的工作。现在,我会开发一些新东西,比如JS-Git。 CSDN:分享一下JS-Git背后的开发故事,最初为何要创建这个项目? Tim:实际上,我的职业是教师,我喜爱教孩子们编程,但大多数孩子并未接触到真正的开发工具。JS-Git可以运行在笔记本、平板电脑、手机、Chromebook等任何可以运行浏览器的设备上。 CSDN:JS-Git的设计目标是什么? Tim:JS-Git旨在实现Git的核心功能,并且尽可能地在可以运行JavaScript的平台上运行。存储和网络bits都是可插式的,可以创建出各种有趣的组合。 CSDN:相比较Git,JS-Git有哪些优势? Tim:在运行方面,JS-Git要比Git更加灵活,当然,它也可以以Git工作流的方式来构建产品,而不是代码编辑。Git为应用创建了很好的资料库,包括基于文档的数据并且进行同步。 CSDN:起初,有多少人参与JS-Git的开发,你们是如何协作的? Tim:起初,只有我一个人参与项目开发,几个月后,有一些开源志愿者加入进来。Chris Dickinson在早期做了不少东西,最近,Aaron Powell为JS-Git实现IndexedDB适配器帮了不少忙。 CSDN:在开发过程中,遇到过什么困难,你们是如何解决这些难题? Tim:迄今为止,最难的部分是找到合适的抽象和API以保证代码可以很好地进行模块化,并且可以在更广泛的平台上工作。即使是一些简单的东西,比如模块、二进制数据、持久性以及跨越多平台的网络接入等。目前,这些问题还未得到很好地解决,我们在探寻最佳的解决方案。 CSDN:你为什么想去构建一个教孩子编程的环境?对此你有什么计划? Tim:当我还是孩子的时候,我已经开始学习编程了。与以往任何时候相比,现在的编程机会更多,也更需要程序员。但是在大多数消费级设备上,这些编程工具表现得很糟糕,我想去解决这一问题。 我的计划是在JS-Git开发完成后,创建一个针对孩子的学习型IDE。现在我已经开始一部分工作了,比如创建了一个编辑框的演示。 CSDN:JS-Git适用于哪些项目? Tim:JS-Git非常适合基于文档的项目。我有一个想法——创建一个图书馆项目,也可以是一个基于JS-Git的移动App,如果图书发布更新,一个简单的git fetch操作就可以获取所有更新的图书内容,你也可以将资源克隆到本地,以便能够离线阅读。 同时这个项目也可以用于示例文档,或者帮助社区用户创建能够共享的内容,这会对使用git的数据模型带来极大的好处。当然,JS-Git也可以用于创建在线IDE。 CSDN:对于JS-Git,未来你有什么计划和目标?正如我们所知道的,JS-Git已经成功进行了第二次筹款,这对于今后的工作有什么帮助? Tim:目前我主要工作重心是发布首个里程碑版本。如果发布后,我缺钱了,就需要找个工作来赚钱支撑JS-Git的开发。对于JS-Git,我没有具体的计划,我只是首先想把它完成。 CSDN:对于使用JS-Git的开发者,你有什么建议? Tim:我已经将JS-Git用于我开发的一些Web应用程序中,以便测试它的功能性。事实上,JS-Git使得构建离线应用非常容易。 |