深入Go Module之go.mod文件解析

昨天在GopherChina 2021大会上分享了《深入Go Module》,干货太多了,接下来的分几篇文章详细介绍下。 现在哪个新编程语言不都是提供库版本工具呢?Java、Python、nonjs、rust都有一套自己的库管理方法和库注册中心,不管它们的叫法如何。Go最初推出来的时候并没有一个库管理方式,而是采用GOPATH的方式,所有的项目都必须放在GOPATH下,不止一次有从其它语言比如Java转过过来的同学问我:"为什么我在我的一个文件夹下建的项目没法编译呢?",那是因为他的文件夹没有建在GOPATH下,而等他想在GOPATH下建项目的时候,package path他又不知道该怎么写。 所以GO使用的GOPATH方式确实对新手来说是一件非常令人困惑的事。而随着Go生态圈的快速壮大,另一个经典的库管理的问题也出现了。就是我们项目中的依赖库经常出现API broken的情况,因为依赖的库相关接口改变了,导致我们的项目更新了依赖库后编译不过,我们不得不需要修改自己的代码以便适应依赖库的最新版本。更困难的是,如果多个依赖库分别依赖第三个依赖库的第三个版本,版本冲突就出现了。 依赖库冲突几乎每个编程语言都有这样的问题,甚至操作系统也有DLL地狱问题,所以各种编程语言都尝试使用自己的方式解决依赖库版本的问题。 前面说了,Go最初是没有官方的库版本的方式的,都是考、靠第三方的工具实现,比如godep、glide、dep等,从2012年各种工具分别出现,大海淘沙,浮浮沉沉,最后也就有几个常用的工具大家在使用,dep是2017出现的一个版本,让人眼前一亮,而且也得到了Go官方的支持,项目也放在Golang组织之下golang/dep。 但是蜜月期没有多久,2018年Russ Cox经过深思熟虑以及一些早期的试验,决定go库版本的方式需要从头再来,深度集成go的各种工具(go get、go list等),实现精巧的最小化版本选择算法,解决broken API共存等问题,所以dep就被废弃了,这件事还导致dep的作者相当的失望和数次争辩。 但是不管怎样,Go官方的库管理方式还是在2018年go 1.11中实验性的推出了,通过设置一个环境变量GO111MODULE=on就可以弃用,并且期望go 1.12正式退出,而环境变量GO111MODULE=on就可以去掉了。可是没有想到的是,go module推出后问题多多,现在每一个go的版本中都有对go module修改,导致这个特性一直没有最终完成,这也是我吐槽它的地方:都快三年了,一个feature都开发那么久,而且问来的go 1.17、go 1.18还有一些改变,同学们,还学的动吗? go官方库管理方式叫做go module。 先前,我们的库都是以package来组织的,package以一个文件或者多个文件实现单一的功能,一个项目包含一个package或者多个package。Go module就是一组统一打版和发布的package的集合,在根文件下有gpo.mod文件定义module path和依赖库的版本,package以子文件夹的形式存在module中,对package path就是 module path +"/"+ package name的形式。 一般我们项目都是单module的形式,项目主文件夹下包含go.mod,子文件夹定义package,或者主文件夹也是一个package。但是一个项目也可以包含多个module,只不过这种方式不常用而已。 go.mod go module最重要的是go.mod文件的定义,它用来标记一个module和它的依赖库以及依赖库的版本。会放在module的主文件夹下,一般以go.mod命名。 一个go.mod内容类似下面的格式: 123456789101112131415161718192021222324252627 module github.com/panicthis/modfilego 1.16require ( github.com/cenk/backoff v2.2.1+incompatible github.com/coreos/bbolt v1.3.3 github.com/edwingeng/doublejump v0.0.0-20200330080233-e4ea8bd1cbed github.com/stretchr/objx v0.3.0 // indirect github.com/stretchr/testify v1.7.0 go.etcd.io/bbolt […]

【钛晨报】格力电器取消员工持股计划,变更回购股份用途并注销;中国中免向港交所递交H股上市申请;滴滴完全稀释后估值可能超过700亿美元

【钛媒体综合】6月27日,格力电器发布公告称,公司拟对2020年10月13日第二期回购对应的回购股份用途进行调整,由原计划“回购股份将用于员工持股计划或者股权激励”变更为“回购股份用于注销以减少注册资本”。公司第二期回购股份共计1.01亿股,本次变更及注销后,公司总股本将由60.15亿股变更为59.14亿股。 根据公告,2020年4月10日,格力电器通过第一期回购,回购股份用于公司员工持股计划或者股权激励,截至2021年2月24日,第一期回购已实施完毕。2020年10月13日,格力电器通过第二期回购,截至2021年5月17日,公司第二期回购已实施完毕,公司第二期回购累计通过回购专用证券账户以集中竞价方式买入公司股份1.01亿股,成交总金额为59.99亿元(不含交易费用)。2021年5月26日,格力电器通过第三期回购,2021年5月31日,公司首次通过回购专用证券账户以集中竞价方式实施第三期回购公司股份。 27日,格力电器就“员工持股方案中员工退休后才能行使权利的限制”回应称,公司在设计员工持股方案时考虑尽可能让更多员工参与进来。公司对工作10年以上、20年以上老员工和技术工人,都进行了筛选,尽可能覆盖更多核心员工。本次员工持股方案不止为员工创造福利,更主要的是希望激励员工跟随企业发展。尽管方案设定的锁定期是两年,但实际原则上是持有至退休。公司希望员工持股计划带来的是激励,让员工更加有信心,有精气神,和企业一起发展,而不是只追求短期利益。 格力电器就“渠道改革”回应称,在渠道改革方面,公司有决心进行革命。公司的渠道模式在过去是领先国际的创新模式,但其滋生的习惯思维和懒惰习惯已不适应市场变化,现在是互联网时代,公司更多关注消费者需求。目前后台服务体系已经初具雏形并将不断完善,销售公司会逐步转变职能,起到维护市场和统筹调配的作用,做到零距离服务。另外,公司对未来充满信心,将继续以空调为主业,在冰洗、生活电器、工业制品等领域持续拓展。 格力电器哈表示,高瓴资本充分尊重公司经营班子和高管团队,公司管理层也将恪尽职守,把业务做好,推动公司做大做强,稳健发展。另外,原材料涨价对行业整体而言是普遍性挑战,公司在积极推动从产品设计和成本控制角度来降低原材料涨价带来的影响。 钛媒摘声: 那些大型科技公司和首席执行官被允许为所欲为。他们从事完全不受监管的商业行为,被允许收购乃至摧毁竞争对手,偏袒自己的商品和服务,从事极端反竞争行为,而不会导致任何后果。 ——美国众议院反垄断小组委员会主席 大卫·西西林 从2015年到现在,传媒行业一直处于一个下跌通道,这个跟行业发展不一定有关,因为2015年左右,它处于一个过热的状态,各方面都存在泡沫,这其实是在经历去泡沫的一个过程。 如今,行业政策肃清下,传媒行业逐渐迈入了一个常规化发展曲线。常规化以后,我们也发现传媒并不是爆发性行业,甚至可以把它理解为一个可选消费品,它的长期成长还要依靠底层架构的持续完善。 ——中金公司研究部传媒行业首席分析师 张雪晴 更多关注: 中国中免向香港联交所递交H股上市申请 6月27日消息,中国中免公告,公司已于6月25日向香港联交所递交了本次发行上市的申请,并于当日晚间在香港联交所网站刊登了本次发行上市的申请资料。该申请资料为公司按照香港证监会及香港联交所的要求编制和刊发,为草拟版本,其所载资料可能会适时作出更新和变动。 滴滴完全稀释后估值可能超过700亿美元 6月27日消息,据《华尔街日报》报道,根据滴滴最新提交的公开文件,该公司首次公开募股的目标估值为620亿-670亿美元。而据知情人士透露,滴滴完全稀释后的估值(通常包括限制性股票单位)可能超过700亿美元。 6月24日,滴滴更新招股书,将美国IPO发行价区间定为每ADS 13美元至14美元,预计定价为13.5美元,计划发行2.88亿股ADS,代表7200万股A类普通股,至多募资约46亿美元。 英国FCA要求币安6月30日彻底关闭在英国的运营 体6月27日消息,据报道,英国金融监管局FCA要求币安6月30日彻底关闭它(在英国)的运营以及任何广告行为,并且必须保存任何英国顾客的交易记录,以便可以随时提交给FCA。 对此,币安方面相关人员回应称,消息已看到,政策相关的我们都暂不回复。 大众汽车计划到2035年停止在欧洲销售内燃机汽车 6月27日消息,大众汽车负责销售的董事会成员Klaus Zellmer透露,大众汽车计划在2035年前停止在欧洲销售内燃机汽车。他补充说,在美国和中国停止销售内燃机将需要更长的时间,也就是说,这将 “晚一些”,在南美和非洲也可能”需要更长的时间”。 Zellmer说,该汽车制造商的整个产品线最迟将在2050年实现碳中和,希望到2030年,电动汽车能占到该公司在欧洲总销量的70%。 任正非:华为还不是“正规军”,5G不是万能的 6月27日消息,近日,华为心声社区公开《任总与2020年金牌员工代表座谈会上的讲话》,讲话时间为5月8日。任正非表示,华为还是要加强对基础的建设,因为华为从“游击队作风”转化到“地方部队”,还没有成为“正规军”。 此外,针对5G有关问题,任正非表示,任何一个新技术的成长都需要一个很漫长的过程,5G也不是万能的,发展也需要一个过程。 B站宣布成立哔哩哔哩快乐奖学金,首期投入419.4172万元 6月27日消息,哔哩哔哩(以下简称“B站”)十二周年演讲上,B站副董事长兼COO李旎宣布成立哔哩哔哩快乐奖学金,支持乡村教育发展,首期投入419万4172元。同时,B站持续投入教育公益,在云南省华坪县正式帮扶两所新的哔哩哔哩小学。 B站董事长兼CEO陈睿在演讲中提到,在12周年节点,B站分别向社区用户及UP主送出礼物。其中,12名为B站社区产品提出过宝贵意见的用户被授予“2020-2021年度产品贡献奖”。以“老番茄”为代表的12名UP主获得“2020-2021社区快乐奖”。 他们创作的内容一共获得了419万条“哈哈哈”和“2333”的弹幕,在过去一年里给用户带去了最多的快乐。 岚图汽车正式独立运营,核心员工持股超10% 6月27日消息,昨日,岚图汽车成立独立法人公司,公司注册名为“岚图汽车科技有限公司”,由东风汽车集团股份有限公司(以下简称东风集团)和岚图汽车核心员工持股平台共同出资成立。其中,核心员工持股占比10%以上。这意味着岚图汽车作为东风集团控股子公司,开启真正意义上的独立运营。 据了解,岚图汽车现已面向企业核心骨干推出股权激励计划,还将引入战略投资者,在资本市场探索更多可能性。 吉比特参股公司青瓷游戏向香港联交所递交上市申请 6月27日消息,吉比特公告,公司参股公司Qingci Games Inc.(简称“青瓷游戏”,公司通过全资子公司间接持有其21.37%股份)于2021年6月25日向香港联交所递交了上市申请。 浙江建德市场监督管理局:农夫山泉某饮品生产原料无从日本福岛县采购情况 6月27日消息,建德市市场监督管理局通报称,2021年6月27日,建德市市场监管局组织执法人员,对位于建德市新安江街道的农夫山泉(建德)新安江饮用水有限公司生产车间进行现场检查。经核实,农夫山泉拂晓白桃味苏打气泡水的生产原料无从日本福岛县采购的情况。 针对宣传是否会被取消等相关后续处理问题,农夫山泉相关负责人表示具体情况还在跟进中,有相关情况会通过官方渠道发布。 网红饮品检出添加剂日落黄,深圳15家茶饮单位被立案调查 6月27日消息,从深圳市市场监督管理局获悉,近日,深圳市市场监督管理局在对“泰式茶饮”等网红饮品进行专项抽检时发现,20批次样品中有15批次超范围添加食品添加剂日落黄,为确保深圳市夏季自制饮品市场质量安全,及时发现和消除潜在安全隐患,市市场监管局迅速组织开展为期两个月的针对“泰式茶饮”等网红饮品的专项整治。 更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体App

Prometheus laureate Victor Koman inaugurates The Agorist Archives of Samuel Edward Konkin III

Prometheus-winning author and scholar Victor Koman is leading a new project to digitize the papers and publications of Samuel Edward Konkin III (SEK3) for posterity. Konkin, a libertarian philosopher and activist who led the “agorist” wing of the libertarian movement in the 1970s and 1980s, influenced quite a few libertarians and libertarian science fiction writers, […]