golang
タイトルにある様にGolangのx.text.transformパッケージについてです。 このパッケージを使うと、readerやwriter内のデータを変換することができます。 良くある用途としては、readerで読み込んだ文字列の一部を変換して出力する、などがあると思います。こ…
GitHub - localstack/localstack: A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline! 「localstack」というAWSを仮想的にローカルマシン内のDockerで動かすものがあります。この「localstack」で起動した…
Mocking Techniques for Go. Go provides you all the tools you need… | by kyleyost | CBI Engineering | Jun, 2020 | Mediumこちらの記事を読んでいたところ、以下のような記述がありました。 When working with the aws-sdk, they provide interfaces fo…
gzファイルはコマンドだと以下のように連結することができます。 cat sample1.gz sample2.gz > result.gzこれと同じようにgzファイルを連結する処理をGolangで書いてみました。 検索すれば似たようなことをやっている記事は沢山出てくるかと思いますが、備忘…
ふとした時にGolangでjsonを読み込む話になり 事前に構造体を定義しないでreflectで読み込んで云々・・・みたいな話になりました。そう言えばGolangでreflectをまともに使ったことがないなあ、と思い 勉強がてらサンプルソースを作ってみました。以下、サン…
GolangでサンプルデータのCSVを作成したかったので、いくつかライブラリを検索したところ、「gofakeit」というライブラリを見つけました。 GitHub - brianvoe/gofakeit: Random fake data generator written in goREADMEを見れば使い方は分かりますが、備忘…
Gorilla, the golang web toolkit GorillaというGolangのWeb向けツールキットについて調べ始めました。 Webアプリ用に色々なものが用意されているのですが、フレームワークではなく、あくまで必要なものを自分で取捨選択してつかう「ツールキット」です。今…
前回に引き続き、aws cdkについてです。今回はGolangのLambda FunctionをAWS上にデプロイしてみました。 ソースは以下に上げてあります。 GitHub - SrcHndWng/cdk-lambdaプロジェクトはnpxを使って作成したので、プロジェクトの作成などは以前の下記記事を参…
O'Reilly Japan - Go言語によるWebアプリケーション開発をのんびりと写経してきて、一通り終わりました。 全ての章のものではないですが、写経と読書中にメモした感想などを備忘録として残しておきたいと思います。 全体の感想 「Go言語によるWebアプリケー…
前回に引き続きメッセージを扱うライブラリを触ってみました。 github.com「watermill」というもので、メッセージストリームを効率的に扱うためことを目的としているようです。 手始めにREADMEにある「Getting Started Guide」(https://watermill.io/docs/ge…
RxGoというReactiveをGolangで実現するためのライブラリを触ってみました。 READMEのサンプルが分かりやすく、それを見るのがいいとは思いますが、自分の理解のために多少改変してみたりもしたのでサンプルとして上げておきます。GitHub - SrcHndWng/go-rx-s…
GolangでWebAssemblyの復習するため、いくつかサイトを見て写経してみました。 一年以上ぶり、かつ実行環境が異なったので、改めて気づいたことがあったので、メモとして残しておきます。 実行環境について Windows10上のWindows Subsystem for Linux(Ubuntu…
GolangでC#のLINQのようなデータ操作をできるgo-linqを触ってみました。 GitHub - ahmetb/go-linq: .NET LINQ capabilities in Go使い方は公式のREADMEにそのまま書いてあるので改めてここには書きませんが 便利そうなので備忘録として残しておきます。GoのS…
GolangのWeb Frameworkであるgin、"Zero downtime restarts"を行うためのendressを使って タイトルにあるようにGraceful RestartするWebのサンプルを作ってみました。https://github.com/gin-gonic/gin https://github.com/fvbock/endless サンプルソース ソ…
ちょっと前(だいぶか?)Visual Studio Codeでリモートで接続して編集できる「Remote Development」が登場して気になっていました。 Visual Studio Code Remote Development登場したときは正規のVisual Studio Codeではなく、プレビュー版?のVisual Studio…
GitHub - AlecAivazis/survey: A golang library for building interactive prompts with full support for windows and posix terminals.タイトルにあるように、surveyを使ってインタラクティブなプロンプトを作ってみました。 どんなことが出来るかやイメ…
「Goならわかるシステムプログラミング」の一連の記事をゴールデンウィーク中に読んでました。 ASCII.jp:Goならわかるシステムプログラミング単純にコーディングしているだけでは意識することが少ない、低レイヤーの話が分かりやすく書かれており、必要にな…
Using Go Modules - The Go BlogGo Moduleについての上記の公式サイトではhello.go、それのテストであるhello_test.goを GOPATHの外に実装する方法について書いてあります。ですが実際にプログラムを作るときには、ローカルに幾つかのパッケージを作ることが…
AWS CLIとGolangで、それぞれS3にあるオブジェクトのPre Signed URLを取得してみました。 やってみた背景としては、リクエストがあった時にS3に配置したオブジェクトを安全にリクエスト元へ渡したい、みたいな要件を耳に挟み Pre Singed URLを作ればいいんじ…
タイトルにあるように、Windows Subsystem for Linux上でAWS SAMを実行する環境を構築してみました。 単純にLinux上にAWS SAMの実行環境を構築するだけと思いきや、細々と調べながら進めることになったので その結果をメモ代わりに書いておきます。 Windows …
タイトルにあるように、gbのテストで 特定のパッケージ、メソッドを実行する テストの結果の詳細を表示する、結果を色付けして分かりやすくする 方法についてです。 ただgbだけでなく、普通の「go test」でも使えるかと思います。 (go testの場合は「gb」を…
Golangのビルドツールのgbを試してみました。 私は普段Visual Studio Codeを使っているので、こちらでエラーとならないよう設定もしました。gbを使うメリットとしては 自分が作成したpackageをimportする際にGopathからのフルパスを書かなくていい 使用する…
前回の記事で、Microsoft To-Doのタスクをcurlで取得してみました。 Microsoft To-Do のタスクをAPIで取得してみる - ソースコードから理解する技術-UnderSourceCode今回はGolangでタスクを取得するコンソールアプリを作ってみました。 ビル…
Golangでスクレイピングしようと思い、いくつかのライブラリを検討しました。 それらの中でjQueryライクに扱うことができるgoqueryを使ってみたので、メモ代わりに書いておきます。GitHub - PuerkitoBio/goquery: A little like that j-thing, only in Go.と…
GolangでPDFを出力するためのライブラリとして GitHub - SebastiaanKlippert/go-wkhtmltopdf: Golang commandline wrapper for wkhtmltopdf があります。単純な使用例は上記のGithub内にもあるのですが 今回は実案件で使用することを想定し HTMLをPDFに変換…
普段はVisualStudioCodeを使ってGolangの開発を行っているのですが 定義へジャンプができないことがありました。gbを使ってビルドしており、ライブラリなどはプロジェクト直下のvendor/に配置されます。 このvendor内のソースへジャンプできないようです。。…
EchoとVue.jsを使いTodoをCRUDするサンプルを作り始めました。 「始めました」と書いているのは、サーバ側のCRUDは実装したのですが クライアント側は一覧の表示だけしか実装していないからです。まあ、EchoとVue.jsを組み合わせたサンプルの一つにはなるか…
はじめに gRPCでmicroserviceを作る以下のチュートリアルを写経してみました。 [Tutorial, Part 1] How to develop Go gRPC microservice with HTTP/REST endpoint, middleware, Kubernetes deployment, etc.この中でAPIのバージョニングを行うために、バー…
はじめに 前回に引き続き、Firestoreについてです。 今回は公式ドキュメントの「サブコレクション」を参考に、コレクションをネストして登録し、参照してみました。https://firebase.google.com/docs/firestore/data-model?authuser=0登録するデータの構成は…
はじめに GoogleのFirebaseを初めて触ってみました。 今回はFirestoreにGolangでデータを登録・参照してみました。 以下、その時のメモと、作ったソースです。 手順について まずはGoogleのアカウントが必要なので、あらかじめ作っておく必要があります。 基…