首页 > 娱乐前沿 > 科技
Go套件版本控制头很大?试试语意输入版本控制的vgo
尤慧 2018-03-27 19:38:49

Google工程师Russ△Cox在在官网向社交征询GO套件版本控制的意见,提出语意输入版本控制(Semantic△Import△Versioning)的想法,并实作了vgo(Versioned△Go)放在GitHub上,希望社交成员在使用后能给予意见回馈。fwO我酷网

Go在套件上的版本控制一直没有较佳的解决方案,不少的先进开发语言,都有其社交惯用的套件管理工具,不论是Java的Maven,或是Rust的Cargo,甚至是Node的Npm,虽然目前Go官方有释出Dep来填补这个功能缺口,但是仍不够理想,Russ△Cox认为,Dep有其致命的缺点,便是缺乏对大型程式的支援。fwO我酷网

由Go重要社交成员Sam△Boyer带领的团队,参考Rust的Cargo后,着手开发官方的套件管理工具Dep,Russ△Cox表示,随着工具的发展,他们认知到一开始的计划,有必要为往后相容问题做出修正,使用语意输入版本控制是他们目前想到可行的方法。fwO我酷网

套件相容问题必须考虑Go语言的两条套件规则,第一为输入的相容性原则(Import△Compatibility△Rule),当旧套件与新套件使用相同的输入路径,两者就必须相容。第二是输入的唯一性原则(Import△Uniqueness△Rule),不同套件必须使用不同的输入路径。他们认知到,使用语意版本控制而不使用语意输入版本控制,需要放弃部分程式码升级或是输入唯一性,在两规则中二择一。fwO我酷网

Russ△Cox表示,Cargo的作法便是放弃输入唯一性以达到部分程式码升级,而原本Dep的作法则是放弃部分程式码升级,确保输入的唯一性,但这同时也表示放弃建构大型程式的可能性。他认为,Cargo的作法是正确的做法,而Dep也没有错,因为受限于Go先天的限制。fwO我酷网

因此为了不在两者中选择,使用语意输入版本控制是必要的,同时在安装的路径上注明版本号,并且使用语意版本的表达方式,列出主版本号、小版本号以及补丁版本号。fwO我酷网

虽然Dep看似可以满足现在Go套件的版本控制需求,但是Russ△Cox表示,他仍然对于缺乏对大型程式支援感到担心,因此着手建立vgo实现语意输入版本控制的想法。他认为,这件事将关乎Go语言未来的发展,并希望社交可以持续的回馈意见,而他们也会继续在会议中讨论这件事。fwO我酷网

上一篇  下一篇

I 相关 / Other

Node.js进驻Snap商店, Linux用户安装和切换版本更容易了!

Node.js公司NodeSource以及Canonica共同宣布,将在Linux套件商店Snap△Store中提供Node.js套件,开发者可以在Snap△Store中下载到Node.js△6、8与9版本,而此Node.js套件则是由NodeSource工程总监Rod△Vagg建置。Can

Java 10出炉! 下一个长期支援版本Java 11将于9月问世

甲骨文释出Java△10,而Java△9则立即被弃用,不再释出免费更新支援,Java△11也会按照此节奏在9月释出。在2018年3月20后,甲骨文提供的免费支援只会剩下Java△8以及Java△10。基于时间发布版本更新是甲骨文释出Java

华为P20机模惊现网络 [热事件]

在3月20日,华为公司在长沙已经上了一道前菜给大家品尝了,接下来于月底主菜华为P20系列将在巴黎重磅来袭,根据之前的爆料得知,基本上已经确定华为P20系列这次发布拥有三个版本,分别是P20、P20Pro以及P20Lite。现在

GitHub开源套件相依检查工具Licensed,助开源社交管理专案授权许可

GitHub开源自家用来检查套件相依的工具Licensed,以帮助开源社交能用同样的方式,简化授权程序。GitHub表示,在实务上,列举专案的相依关系可能是一件困难的事。最理想的情境,套件管理器会提供一份可解析的专案相依

创作者对青瓷价格构成有很大影响 推荐

青瓷作品的价格由很多因素构成,制作者是一种要素,要了解制作者对整个行业、对这项艺术做了多少贡献;另外,看起来一个杯子很简单,但是实际上有很多奥妙,比例到不到位,釉色好不好,细看有很多区别。■卢伟孙(浙

I 热点 / Hot