• Go 最小硬件编程(第三部分)

    [![STM32F030F4P6](https://ziutek.github.io/images/mcu/f030-demo-board/board.jpg)](https://ziutek.github.io/2018/05/03/go_on_very_small_hardware3.html) 本系列的第一部分和第二部分中讨论的大多数示例都是以一种或另一种方式闪烁 LED。起初它可能很有趣,但过了一段时间它变得有点无聊。让我们做一些更有趣的事情...... ......让我们点...

  • 120
    Go 最小硬件编程(第二部分)

    [![STM32F030F4P6](https://raw.githubusercontent.com/studygolang/gctt-images/master/Very-Small-Hardware-Part2/1.jpeg)](https://ziutek.github.io/2018/04/14/go_on_very_small_hardware2.html) 在本文 [第一部分](https://studygolang.com/articles/22742) 的结尾,我说过要写...

  • Go 最小硬件编程(第一部分)

    我们能够让 Go 在多低的配置下运行并做一些实用的事情呢? 最近我购买了这个特别便宜的开发板: [![STM32F030F4P6](https://ziutek.github.io/images/mcu/f030-demo-board/board.jpg)](https://ziutek.github.io/2018/03/30/go_on_very_small_hardware.html) 购买它,我基于以下三个理由:第一,我(作为一个程序员)从未搞过 STM32F0 系列的...

  • 60 秒搭建无服务 Golang 应用

    在这篇简短的文章中,我将说明使用 [Apex Up](https://github.com/apex/up) 对任何 Golang 应用程序或 API 是如何快速的生产出无服务环境的。这篇文章假设你在你的机器上配置了 [AWS credentials](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html),因为 Up 是部署到 AWS Lambda 和 API 网关上的。 Up 适用于任何 Go ...

  • 120
    Go 中的 gRPC 简介

    *给使用 Go 语言的初学者的 gRPC 概述* ![grpc.png](https://raw.githubusercontent.com/studygolang/gctt-images/master/a-brief-introduction-to-grpc-in-go/grpc.png) ## RPC RPC 是用于 **软件应用之间点对点通信** 的 **网络编程模型** 或是 **进程间通信技术**。 RPC 是一种 **协议**,一个程序能够使用该协议,对位于另...

  • 用 Go 创建一个新的智能合约语言 - 词法分析器部分

    这是用 Go 创建新的智能合约语言项目的第二篇文章。在上一篇文章中,介绍了项目的概念,为什么我们决定去构建新的智能合约语言和简要的架构。这个项目就是 WIP 并且开放了源码,你可以在 [这里](https://github.com/DE-labtory/koa) 访问它并随时向我们做出贡献。 - **前面的文章:** [**新语言概念,目标,架构**](https://studygolang.com/articles/17960) ![koa architecture](https:...

  • 用 Go 创建一个新的智能合约语言 - 新项目动机,概念

    这篇文章讲述了 **为什么** 我们开始为智能合约创建新的编程语言(使用 Go)。 ## 动机 目前有两个众所周知的区块链,比特币和以太坊。比特币有 **bitcoin script** 和以太坊有 **solidity** 为它们自己的智能合约编程。两者都有利有弊。 对于 **比特币** 而言,它没有状态概念,并且 bitcoin script 是基于低级语言和很少的操作,因此它所能做的是有限的。另一方面,因为它的工作方式简单并且比特币是没有状态的,这样我们能轻松地进行静态分...

  • 探索 Go 中字节解析 API

    很多年前,我开始研究 Linux 的 Netlink 进程间通信接口。Netlink 被用于从 Linux 内核检索信息,并且为了跨越内核边界,信息通常被打包到 Netlink 的属性中。经过一些实验,我为 Go 创建了自己的 [netlink 包](https://github.com/mdlayher/netlink)。 随着时间的推移,包中的 API 已经有很大的改变了。特别是 Netlink 属性总是处理起来相当复杂。今天,我们将探索一些我为处理 Netlink 属性所创建的字节解...

  • 120
    Go 和 WebAssembly: 在浏览器中运行 Go 程序

    很长一段时间以来,Javascript 是在 Web 开发者中的通用语言。如果你想写出一个稳定、成熟的 Web 应用程序,那么使用 Javascript 几乎是唯一的方法。 WebAssembly(也叫 wasm )即将改变这种情况。使用 WebAssembly,现在可以用*任何*语言来编写 Web 应用程序。在这篇文章当中,我们将明白怎样编写 Go 程序并使用 wasm 在浏览器中运行它们。 ## 首先,什么是 WebAssembly WebAssembly 官方网站 [we...

  • 关于通用代码和特殊情况之间的冲突

    `io.Reader` 和 `io.Writer` 接口几乎出现在所有的 Go 程序中,并代表了处理数据流的基本构建块。Go 的一个重要特性是,对象如套接字、文件或内存缓冲区的抽象都是用这些接口表示的。当 Go 程序对外部世界说话的时候,它几乎是通过 `io.Reader`s 和 `io.Writer` s 来表达,无论它使用的是特殊的平台或通信媒介。这种普遍性是编码处理可组合和可重复使用的数据流代码的关键因素<sup><a href="#fn1" name="fnref1">1</a></su...