前端遇上Go: 静态资源增量更新的新实践

来源:美团点评技术团队 链接:https://tech.meituan.com/2018/07/05/fe-and-golang.html 为什么要做增量更新 美团金融的业务在过去的一段时间里发展非常快速。在业务增长的同时,我们也注意到,很多用户的支付环境,其实是在弱网环境中的。 大家知道,前端能够服务用户的前提是 JavaScript 和 CSS 等静态资源能够正确加载。如果网络环境恶劣,那么我们的静态资源尺寸越大,用户下载失败的概率就越高。 根据我们的数据统计,我们的业务中有2%的用户流失与...阅读全文

简书 2020-04-25 01:32:52 夜空_b36c

golang context.Context

# Concurrency In Go # Context 首先提出一个问题,"it is easy to go, but how to stop.",意思就是说,在golang使用go关键字并发非常简单,但是,我们如何去停止一个开启了的go routine。 我们带着这个问题来认识context,首先,我们要明确,正常停止一个go routine的方式只有一种,就是func return.当方法退出了自然go routine就停止了。OK,那我们先看下面代码: ...阅读全文

Go语言中文网 2020-04-25 01:21:13 antonlin

Go 每日一库之 zap

简介 在很早之前的文章中,我们介绍过 Go 标准日志库log和结构化的日志库logrus。在热点函数中记录日志对日志库的执行性能有较高的要求,不能影响正常逻辑的执行时间。uber开源的日志库zap,对性能和内存分配做了极致的优化。 快速使用 先安装: $ go get go.uber.org/zap 后使用: package main import ( "time" "go.uber.org/zap" ) func main() { logger := zap.NewExample() defe...阅读全文

Segmentfault 2020-04-27 10:32:37 darjun

解决VSCode添加Go工具链下载慢的问题

建议收藏,以备不时之需~ 首先安装Go的扩展直接搜索Go点击第一个安装即可,它是微软官方发布的Go支持模块。这个模块依赖于一些开源工具,在这里有介绍:https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-extension-depends-on 学习Golang之前,最好是有一个国外的代理,即使golang.org/x/ 被镜像到了GitHub,但是速度也是感人...在配置代理之后,需要开启本机代理,然后配置一下命令行代...阅读全文

51CTO博客 2020-04-24 16:07:08 BlueMiaomiao

供应链

docuwiki我用着还行。但是很多地方还是有些问题。如果谁也用过。可以交流一下。1.比如怎样批量删除未使用的图片。一个一个删太麻烦了。2.还比如他的目录名能不能修改,不然一旦要改框架,就要到服务器里去做操作,有没有插件可以做这个?3.还有就是有没有办法让每一个页面都自带一个返回上一级的链接(自己写内部链接太麻烦,而且容易在修改文件位置后,导致链接不可用)4.表格内内容是否有办法垂直居中,表格本身能否水平居中5.有好用的编辑插件么?不要推荐FCK,我用了之后都变成乱码了,表示不敢用了。6.有没有...阅读全文

Go语言中文网 2020-04-24 21:30:12 asialiugf

github-webhook工具实现github自动构建

原理 当本地git push origin master向Github远程仓库提交代码时,可以通过配置github自带webhook向服务器发送请求,利用github-webhook工具在服务器端接到请求后,调用自定义shell脚本来实现自动构建 github-webhook 文档 更多详情文档 https://github.com/yezihack/github-webhook 使用github-webhook 源码: https://github.com/yezihack/github-we...阅读全文

Segmentfault 2020-04-27 09:32:34 百里

图解Knative核心组件Serving基础设计

最近闲下来,打算把Knative的核心组件Serving给学习下,会继续采用k8s源码学习的方式,管中窥豹以小击大,学习serving的主要目标: 可观测性基础设施、自动伸缩、流量管理等核心组件的设计与实现,今天先简单臆测下,感兴趣的同学, 一起来学习吧 1. 基于云原生的单体应用构建 大多数公司的服务可能都已经经过单体、SOA演进到了当下流行的微服务架构,微服务给我们带来了独立演进、扩容、协作、数据自治等便利的背景下,也带来了诸如稳定性保障、维护、服务治理等实际的问题,我们今天来一起来回归单体...阅读全文

Segmentfault 2020-04-27 09:32:34 仔仔

github-webhook工具实现github自动构建

# 原理 当本地`git push origin master`向Github远程仓库提交代码时,可以通过配置github自带webhook向服务器发送请求,利用github-webhook工具在服务器端接到请求后,调用自定义shell脚本来实现自动构建 ![github-webhook](https://upload-images.jianshu.io/upload_images/13827699-49011566250e8250.png?imageMogr2/auto-orien...阅读全文

Go语言中文网 2020-04-24 15:26:39 sgfoot

利用Prometheus 打造企业分布式监控平台(8)--VictoriaMetrics集群

在之前的系列文章中,我们讲到了一个远程存储对于企业级Prometheus的重要性,以及Thanos和VictoriaMetrics的对比。今天我们主要讲VictoriaMetrics,包括集群部署和如何与Prometheus结合。 VictoriaMetrics是一个高性能,低成本,可扩展的时序数据库。可以用来做Prometheus的长期存储。分为单机版本和集群版本,均已开源。如果数据写入速率低于每秒​​一百万个数据点,官方建议使用单节点版本而不是集群版本。 当然单机版本配置简单,可以通过纵向扩...阅读全文

Segmentfault 2020-04-26 23:32:34 iyacontrol

Go Search Extension 版本发布!一款超实用小工具

大家好,有一个超实用小工具跟大家分享啦,欢迎大家体验和吐槽~这是一款旨在帮助Go开发者提高开发效率的超实用工具,它是一个可在浏览器地址栏快速、方便、高效地搜索Go文档的浏览器插件,目前支持Chrome、Firefox和Edge下载。类似于 Rust 社区的RustSearchExtension插件。 下载地址 Chrome版本Firefox版本Eadge版本 提供的功能 1. 支持搜索 Go 标准库文档 可通过关键词搜索package、func、interface,快速查看其定义和描述,也可选中...阅读全文

Segmentfault 2020-04-26 12:32:34 Kathygo

一起弄明白go的依赖管理 Go Modues/ GOPATH

一起弄明白go的依赖管理 Go Modues/ GOPATH 不要吝啬你的批评与感悟,敬请留言,我们一起进步。 如果你有过以下问题,欢迎阅读文章,提出意见与建议 go mod 怎么使用?GOPATH是什么?GO111MODULE="" 这个参数决定了什么?go get、go download 有什么区别?import到底import的什么东西? 依赖管理工具 用过Java 的同学都知道,对依赖的管理经历了从原始的手动引入jar包,到使用maven等自动化管理工具去引入第三方依赖的过程,从而可以使...阅读全文

掘金 2020年04月23日 凌风清羽

Go 每日一库之 go-app

简介 go-app是一个使用 Go + WebAssembly 技术编写渐进式 Web 应用的库。WebAssembly 是一种可以运行在现代浏览器中的新式代码。近两年来,WebAssembly 技术取得了较大的发展。我们现在已经可以使用 C/C++/Rust/Go 等高级语言编写 WebAssembly 代码。本来就来介绍go-app这个可以方便地使用 Go 语言来编写 WebAssembly 代码的库。 快速使用 go-app对 Go 语言版本有较高的要求(Go 1.14+),而且必须使用G...阅读全文

掘金 2020年04月23日 darjun

Colly外的又一Go爬虫框架 — Goribot

gocolly是用go实现的网络爬虫框架,目前在github上具有3400+星,名列go版爬虫程序榜首。gocolly快速优雅,以回调函数的形式提供了一组接口,可以实现任意类型的爬虫。 Goribot github.com/zhshch2002/goribot 参考了colly的回调函数的设计,并且加入了类似Scrapy的Pipeline支持,从而支持添加各种扩展功能。 获取Goribot: go get -u github.com/zhshch2002/goribot 建立爬虫 在代码中导入:...阅读全文

Segmentfault 2020-04-26 13:32:33 zhshch

让我们一起啃算法----整数反

整数反转(Reverse-Integer) 这是一个比较简单的题目,题干如下: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣 我觉得这个题目的考点在于让你有个意识:数字类型是有可能...阅读全文

Segmentfault 2020-04-26 12:32:33 三斤和他的朋友们

Redis的数据结构与对象——跳跃表

引言:跳跃表是一种有序数据结构,它通过在每个节点中维持多个执行其他节点的指针,从而达到快速访问节点的目的。跳跃表的查询速度可以和平衡书相媲美,平均时间复杂度O(logN),最坏O(N),但实现起来比平衡树要简单很多。跳跃在redis中只有两个地方使用,一个是有序集合(zset还使用了字典加跳跃表实现),另一个是集群节点中用作内部数据结构。一、实现跳跃表由redis.h/zskiplistNode和redis.h/zskiplist两个结构体实现1.1、跳跃表节点 struct zskiplist...阅读全文

简书 2020-04-24 01:32:43 rookie_yuqi

轻松理解Go函数传参内幕

一、内置类型作为参数传递 首先要明确一点:golang语言中是没有引用传递的 先上结论: golang的所有内置类型()作为函数参数传递都是传值的方式,需要注意的是:array、slice和map作为函数参数时也是传值,但是如果对结构内元素进行的修改,修改的是原数据。如果是对其进行整体赋值,则不会修改原数据,相当于拷贝出一个新的临时变量。通过传递指针参数实现修改原数据。 Go内置基础类型如下 布尔型:bool 整型:int int64 int32 int16 int8 uint8 uint16 ...阅读全文

Go Search Extension 版本发布!一款超实用小工具

大家好,又有超实用小工具跟大家分享啦,欢迎大家体验和吐槽~ 这是一款旨在帮助Go开发者提高开发效率的超实用工具,它是一个可在浏览器地址栏快速、方便、高效地搜索Go文档的浏览器插件,目前支持Chrome、Firefox和Edge下载。类似于 Rust 社区的RustSearchExtension插件。 下载地址 Chrome版本 Firefox版本 Eadge版本 提供的功能 1. 支持搜索 Go 标准库文档 可通过关键词搜索package、func、interface,快速查看其定义和描述,也可...阅读全文

51CTO博客 2020-04-23 19:33:24 Kathygo

Go 每日一库之 go-app

简介 go-app是一个使用 Go + WebAssembly 技术编写渐进式 Web 应用的库。WebAssembly 是一种可以运行在现代浏览器中的新式代码。近两年来,WebAssembly 技术取得了较大的发展。我们现在已经可以使用 C/C++/Rust/Go 等高级语言编写 WebAssembly 代码。本来就来介绍go-app这个可以方便地使用 Go 语言来编写 WebAssembly 代码的库。 快速使用 go-app对 Go 语言版本有较高的要求(Go 1.14+),而且必须使用G...阅读全文

Segmentfault 2020-04-26 10:32:36 darjun

【Go夜读】grpc 开发及 grpcp 的源码分析

资源链接 B站视频 grpcp 介绍 grpcp 是基于 grpc 开发的,通过对 grpc 的封装和复用,来使得业务方能够最快速地通过 grpcp 找到相通的链路 grpcp 主要实现了对 grpc 的连接的维护,使得业务方能够省去对链路的维护,直接根据路由表进行数据分发 源码分析 结构体和变量 ConnectionTracker ConnectionTracker 就是控制整个连接表,维护所有的连接 // ConnectionTracker keep connections and main...阅读全文

简书 2020-04-23 22:32:55 ChaunhewieTian