Tag Go

golangci-lintに入門してみる

本記事は東京学芸大学 櫨山研究室 Advent Calendar 2020の17日目の記事になります。 GoのLinterといえば長らくgolintがデファクト的な存在でしたが、つい半年ほど前にdeprecatedになりました。 代替のLinterはいくつかあるようですが、本記事では代替Linterの一つであるgolangci-lintのインストールから実行までを簡単にまとめてみました。 golangci-lintは元々、GolangCIというCIサービス上で動作するように設計されたLinterです。現在ではGolangCI以外のCIサービスでも利用可能となっています。 golangci-lintはそれ自体がLinterツールであるというより、多数あるLinterをまとめて実行するためのツールとなっています。ドキュメントにもgolangci-lint is a Go linters aggregator.という記述がありました。

HugoでOGPの設定をする

Open Graph protocolとはTwitter,FacebookなどのSNSにURLを載せたときに、サイト名や記事のタイトル、サムネイル画像、説明などが、カードの形で表示されるというものです。 以下は自分のブログをTwitterにあげた時の画像です。 OGPに対応することで、記事の概要が把握できるようになりクリック率の増加にもつながるのではないでしょうか。 サイトをOGPに対応させるには以下のメタタグを書くことが必要です。

Goのhtml/template text/templateの記法を覚える

自分のブログではHugoを利用していますが、HugoではブログのレイアウトにGoのhtml/template, text/templateの記法が用いられています。 例えばTaleというHugo Themesではブログページの雛形は以下のように示されています。この{{ }}で囲まれている部分がhtml/template,text/templateの記法部分です。 今回この{{ }}記法の理解を深めるために、Goのhtml/template、text/templateの記法について調べてみました。

S3 にファイルをマルチパートアップロードする CLI ツールを作った

作ったものはGitHubに上がっています。 s3go という S3 にファイルをマルチパートアップロードしてくれる CLI ツールを作成しました。 現状、AWS の SDK(aws-sdk-go)はマルチパートアップロードの API をサポートしていません。そのため、aws-sdk-go を使わずに一から AWS の API を利用するコードを書きました。

GoのHTTPサーバーにおけるURLとハンドラの紐付けについて考える

GoのHTTPサーバーにおけるURLとハンドラの紐付けについて疑問に思ったので調べてみました。Goでは比較的簡単にHTTPサーバーのコードを書くことができます。簡単に書けるために裏でどのような処理が行われているかわからないこともあります。 今回はHTTPサーバーの実装でどのようにURLとハンドラが紐づけれれているかについて調べました。

golangで静的解析ツールを作ってみた

golangで静的解析ツールを作ってみた 先週末にgolang.tokyoの静的解析ハンズオンに参加し、静的解析ツールを作ってみました。コードはGitHubにあります。

Go言語でつくるインタープリタを読んだ

Go言語でつくるインタープリタという本を読みましたが、正直めちゃくちゃ良い本でした。 構文解析やASTについてわかりやすく書かれていました。(もちろん、字句解析や評価についても詳しく書いてあるます) Go言語が読めれば、インタープリタについて学べるというのはとても偉大です。