icon

Golang

  • Published on
    Oxeye’s security research team has found a security vulnerability in Golang-based applications. Under certain conditions, it lets a threat actor bypass validations based on HTTP request parameters due to the use of unsafe URL parsing.
  • Published on
    最近有空,写了个探活其它服务的小程序,支持HTTP,TCP,Shell,Native Client的探活,HTTP看返回码,TCP看连不连得上,Shell 看运行结果,然后对于状态变化进行“边缘触发”通知,发通知到Email, Slack, Discord,可以每天/每周/每月发送一个各服务的SLA报告。图中是Discrod的通知示例。
  • Published on
    Go语言的1.17版本发布了,其中开始正式支持泛型了。虽然还有一些限制(比如,不能把泛型函数export),但是,可以体验了。我的这个《Go编程模式》的系列终于有了真正的泛型编程了,再也不需要使用反射或是go generation这些难用的技术了。周末的时候,我把Go 1.17下载下来,然后,体验了一下泛型编程,还是很不错的。下面,就让我们来看一下Go的泛型编程
  • Published on
    在本篇文章中,我会对Go语言编程模式的一些基本技术和要点,这样可以让你更容易掌握Go语言编程。其中,主要包括,数组切片的一些小坑,还有接口编程,以及时间和程序运行性能相关的话题。
  • Published on
    错误处理一直以一是编程必需要面对的问题,错误处理如果做的好的话,代码的稳定性会很好。不同的语言有不同的出现处理的方式。Go语言也一样,在本篇文章中,我们来讨论一下Go语言的出错出处,尤其是那令人抓狂的 if err != nil 。
  • Published on
    在本篇文章中,我们来讨论一下Functional Options这个编程模式。这是一个函数式编程的应用案例,编程技巧也很好,是目前在Go语言中最流行的一种编程模式。但是,在我们正式讨论这个模式之前,我们需要先来看看要解决什么样的问题。
  • Published on
    反转控制 IoC – Inversion of Control 是一种软件设计的方法,其主要的思想是把控制逻辑与业务逻辑分享,不要在业务逻辑里写控制逻辑,这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。在《[IoC/DIP其实是一种管理思想](https://coolshell.cn/articles/9949.html)》中的那个开关和电灯的示例一样,开关是控制逻辑,电器是业务逻辑,不要在电器中实现开关,而是把开关抽象成一种协议,让电器都依赖之。这样的编程方式可以有效的降低程序复杂度,并提升代码重用。
  • Published on
    在本篇文章中,我们学习一下函数式编程的中非常重要的Map、Reduce、Filter的三种操作,这三种操作可以让我们非常方便灵活地进行一些数据处理——我们的程序中大多数情况下都是在到倒腾数据,尤其对于一些需要统计的业务场景,Map/Reduce/Filter是非常通用的玩法
  • Published on
    Go语言代码生成主要还是用来解决编程泛型的问题,泛型编程主要解决的问题是因为静态类型语言有类型,所以,相关的算法或是对数据处理的程序会因为类型不同而需要复制一份,这样导致数据类型和算法功能耦合的问题。泛型编程可以解决这样的问题,就是说,在写代码的时候,不用关心处理数据的类型,只需要关心相当处理逻辑。泛型编程是静态语言中非常非常重要的特征,如果没有泛型,我们很难做到多态,也很难完成抽象,会导致我们的代码冗余量很大。
  • Published on
    之前写过一篇《Python修饰器的函数式编程》,这种模式很容易的可以把一些函数装配到另外一些函数上,可以让你的代码更为的简单,也可以让一些“小功能型”的代码复用性更高,让代码中的函数可以像乐高玩具那样自由地拼装。所以,一直以来,我对修饰器decoration这种编程模式情有独钟,这里写一篇Go语言相关的文章。
  • Published on
    本篇文章,我们着重介绍Go编程中的Pipeline模式。对于Pipeline用过Unix/Linux命令行的人都不会陌生,他是一种把各种命令拼接起来完成一个更强功能的技术方法。在今天,流式处理,函数式编程,以及应用网关对微服务进行简单的API编排,其实都是受pipeline这种技术方式的影响,Pipeline这种技术在可以很容易的把代码按单一职责的原则拆分成多个高内聚低耦合的小模块,然后可以很方便地拼装起来去完成比较复杂的功能。
  • Published on
    本篇文章主要想讨论一下,Kubernetes 的 kubectl 命令中的使用到到的一个编程模式 – Visitor。本来,Visitor 是面向对象设计模英中一个很重要的设计模款,这个模式是一种将算法与操作对象的结构分离的一种方法。这种分离的实际结果是能够在不修改结构的情况下向现有对象结构添加新操作,是遵循开放/封闭原则的一种方法。这篇文章我们重点看一下 kubelet 中是怎么使用函数式的方法来实现这个模式的。
  • Published on
    我做了一款在地址栏快速搜索go语言文档和第三方库的插件,感兴趣的朋友可以下载体验
  • Published on
    推荐一个下载Google Drive 里的文件的神仙级程序GoIndex 。 这个部署在 CloudFlare Workers的小程序。 可以将 Google Drive 文件以目录形式列出,并直连下载。 流量走 CloudFlare ,网速由 CloudFlare 决定。 https://t.co/xXk5Tvc3MA
  • Published on
    代码我就不打了,手机不方便,reddit 上有一个一样的问题,题目中有代码示例,一毛一样
  • Published on
    UDN开源文档(doc.yonyoucloud.com):通常你在应用中定义了一个结构体,那么你也可能需要这个结构体的(指针)对象集合,比如:在定义所需功能时我们可以利用函数可以...
  • Published on
    https://github.com/buger/goreplay 这玩意儿就很有市场。
  • Published on
    大家好,Excelize 是 Go 语言编写的 Excel 文档基础库,今天刚发布了 2.1.0 版本,包括了很多新增功能和性能优化,希望帮助到有需要的朋友~
  • Published on
    Contribute to bigpigeon/gofmt development by creating an account on GitHub.
  • Published on
    上面这篇文章中有几个 Goroutine的Tracing图。关于Go的tracing可以参看这篇文章 https://about.sourcegraph.com/go/an-introduction-to-go-tool-trace-rhys-hiltner
  • Published on
    为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。
  • Published on
    What is the complete path between visiting thepiratebay and sublimating an mp3 file from thin air? In this post, we'll implement enough of the BitTorrent protocol to download Debian. Look at the [Source code](https://github.com/veggiedefender/torrent-client/) or skip to the [last bit](/posts/torrent#putting-it-all-together).
  • Published on
    下面这三篇文章,以前在本群中分享过,因为写得实在太好,所发还要再分享一下。
  • Published on
    Uber Go Style Guide Introduction Guidelines Pointers to Interfaces Verify Interface Compliance Receivers and Interfaces Zero-value Mutexes are Valid Copy Slices and Maps at Boundaries Defer to Clean Up...
  • Published on
    API返回的JSON太大? Nginx又没法压缩Transfer-Encoding为chunked的返回? 新挖了一个坑,欢迎各位使用和提各种建议,适用于Gin和net/http的gzip中间件:基于 Content-Type、Content-Length、扩展名等要素自动判断是否启用压缩。
  • Published on
    Uber Go Style Guide Introduction Guidelines Pointers to Interfaces Verify Interface Compliance Receivers and Interfaces Zero-value Mutexes are Valid Copy Slices and Maps at Boundaries Defer to Clean Up...
  • Published on
    Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.ℹ️ This article is based on Go 1.12 and 1.13 and explains the evolution of sync/pool.go between those...