ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

aws-sdk-goのMockを使ったテスト

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…

NuxtJSのことはじめ

タイトルにあるようにNuxtJSを始めてみました。 Visual Studio Codeでいくつか入門ページをやってみましたが、以下を覚えておくと便利そうだと思ったのでメモ代わりに残しておきます。 NuxtJSのプロジェクト作成~起動 以下のコマンドで作成します。(NuxtJS…

Golangで2つのgzファイルを連結してみる

gzファイルはコマンドだと以下のように連結することができます。 cat sample1.gz sample2.gz > result.gzこれと同じようにgzファイルを連結する処理をGolangで書いてみました。 検索すれば似たようなことをやっている記事は沢山出てくるかと思いますが、備忘…

Golangで構造体を定義せずにjsonを読み込んでみる

ふとした時にGolangでjsonを読み込む話になり 事前に構造体を定義しないでreflectで読み込んで云々・・・みたいな話になりました。そう言えばGolangでreflectをまともに使ったことがないなあ、と思い 勉強がてらサンプルソースを作ってみました。以下、サン…

gorunでGolangのソースをシェルスクリプトのように実行してみる

https://github.com/erning/gorun gorunをちょっと試してみました。試した内容としては gorunをローカルにgo getで入れる Golangでソースを書くが、importで他のライブラリを使うものとする ソースをGOPATHの外の場所に置き、シェルスクリプトのようにソース…

「よくわかるHTTP/2の教科書」を読んだ

GWの最後の2日で「よくわかるHTTP/2の教科書」を読みました。 http://www.ric.co.jp/book/contents/book_1177.htmlHTTP/2に限らず、HTTP周りについて非常に分かりやすく書かれていると感じました。以下、ほぼ「分かりやすかった」の羅列になっていますが、備…

aws cdk でAthenaのNamed Queryを作成する

AWS Athenaにはよく使うクエリを保存する Named Queryという機能があります。マネージメントコンソール上では「Saved Queries」というタブに表示されます。今回はこのNamed Queryをaws cdkでデプロイしてみました。aws cdkを使ったのは、クエリは特に開発時…

gofakeitでサンプルデータを作ってみる

GolangでサンプルデータのCSVを作成したかったので、いくつかライブラリを検索したところ、「gofakeit」というライブラリを見つけました。 GitHub - brianvoe/gofakeit: Random fake data generator written in goREADMEを見れば使い方は分かりますが、備忘…

「Code Craft エクセレントなコードを書くための実践的技法」を読んだ

「Code Craft エクセレントなコードを書くための実践的技法」を読みました。 https://www.amazon.co.jp/dp/B00P7R545M/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1私が読んだのはKindle版ではなく、紙の本ですが。。。 2007年に初版発行された本ですが、…

nodeのプロジェクトにESLintを導入してみる

undersourcecode.hatenablog.com以前こんなのを書いていたが、さすがに2年以上前だと古くなっているので書き直してみます。 とはいっても、今回はLambdaは関係ないし、ESLint公式のGetting Startedそのままです。 まあ自分宛の備忘録ってことで。ESLint Gett…

Gorillaのcontextとmuxを触ってみる

Gorilla, the golang web toolkit GorillaというGolangのWeb向けツールキットについて調べ始めました。 Webアプリ用に色々なものが用意されているのですが、フレームワークではなく、あくまで必要なものを自分で取捨選択してつかう「ツールキット」です。今…

「TypeScriptネットワークプログラミング」を読んだ

TypeScriptに興味が出てきたのと、タイトルが気になったので 「HTML5/WebSocket/WebRTCによる TypeScriptネットワークプログラミング」を読んでみました。CUTT System:TypeScriptネットワークプログラミング物凄く短いですが、読書記録代わりの感想などを書…

aws cdk でGolangのLambdaをデプロイしてみる

前回に引き続き、aws cdkについてです。今回はGolangのLambda FunctionをAWS上にデプロイしてみました。 ソースは以下に上げてあります。 GitHub - SrcHndWng/cdk-lambdaプロジェクトはnpxを使って作成したので、プロジェクトの作成などは以前の下記記事を参…

aws cdk でVPCの中にEC2を立ててみた

aws cdkを使い、VPCの中にEC2を立ててみました。よくあるパターンなので既に色んな記事が書かれていますが、以下の点を工夫してみました。※少し改修して記事にも反映しました セキュリティグループを新規に作るが、Ingressはデフォルトでは何も許可しない(E…

Visual Studio CodeのExtensionを作り、ローカルのWSLで実行する

Visual Studio Codeの拡張機能(Extension)を作り、ローカルで実行してみました。 手順については公式や様々なサイトに書かれていますが、自分がやったことを纏めておきます。 やったこと Extensionをローカルで作成する ローカルで動かしてみる(Windows) pac…

aws-cdkを触ってみた

少し(かなり?)遅れた感はありますが、aws-cdkを触ってみました。https://docs.aws.amazon.com/ja_jp/cdk/latest/guide/getting_started.html#hello_world_tutorial こちらの公式の「Hello World Tutorial」をほぼなぞっただけですが、いくつか独自にアレ…

AnsibleでEC2にSSH接続してファイルをアップロードする

仕事でAnsibleを少し触る機会があったのですが、初見でさっぱり分からなかったので 復習を兼ねてインストールからやってみました。タイトルにも書きましたが、やったことは Ansibleにて既存のEC2にSSH接続する SSH経由でEC2内にフォルダを作る 同じくSSH経由…

「Go言語によるWebアプリケーション開発」の感想など

O'Reilly Japan - Go言語によるWebアプリケーション開発をのんびりと写経してきて、一通り終わりました。 全ての章のものではないですが、写経と読書中にメモした感想などを備忘録として残しておきたいと思います。 全体の感想 「Go言語によるWebアプリケー…

watermillを触ってみた

前回に引き続きメッセージを扱うライブラリを触ってみました。 github.com「watermill」というもので、メッセージストリームを効率的に扱うためことを目的としているようです。 手始めにREADMEにある「Getting Started Guide」(https://watermill.io/docs/ge…

RxGoを触ってみた

RxGoというReactiveをGolangで実現するためのライブラリを触ってみました。 READMEのサンプルが分かりやすく、それを見るのがいいとは思いますが、自分の理解のために多少改変してみたりもしたのでサンプルとして上げておきます。GitHub - SrcHndWng/go-rx-s…

GolangでWebAssemblyの復習をした

GolangでWebAssemblyの復習するため、いくつかサイトを見て写経してみました。 一年以上ぶり、かつ実行環境が異なったので、改めて気づいたことがあったので、メモとして残しておきます。 実行環境について Windows10上のWindows Subsystem for Linux(Ubuntu…

go-linqを触ってみた

GolangでC#のLINQのようなデータ操作をできるgo-linqを触ってみました。 GitHub - ahmetb/go-linq: .NET LINQ capabilities in Go使い方は公式のREADMEにそのまま書いてあるので改めてここには書きませんが 便利そうなので備忘録として残しておきます。GoのS…

ginとendressを使ってGraceful Restartを実装してみた

GolangのWeb Frameworkであるgin、"Zero downtime restarts"を行うためのendressを使って タイトルにあるようにGraceful RestartするWebのサンプルを作ってみました。https://github.com/gin-gonic/gin https://github.com/fvbock/endless サンプルソース ソ…

Microsoft TypeScript Vue Starter を vue-loader 15系でやってみた

github.com3カ月くらい前ですが、TypeScriptの雰囲気を知るため、こちらにあるMicrosoftのTypeScript Vue Starterを途中までやってみました。 チュートリアル形式でREADMEが書かれているので、そのまま進めたのですが、途中で躓いたところがあったのでメモ代…

Visual Studio CodeのRemote DevelopmentでWSL内のGolangを書いてみる

ちょっと前(だいぶか?)Visual Studio Codeでリモートで接続して編集できる「Remote Development」が登場して気になっていました。 Visual Studio Code Remote Development登場したときは正規のVisual Studio Codeではなく、プレビュー版?のVisual Studio…

Terraformを初めて触ってみた

タイトルにあるようにTerraformに初めて触ってみました。 やったこととしては、 インストール AWSにEC2インスタンスを立てる 立てたインスタンスを削除 です。もう何番煎じの記事になるのか分からないですが、自分への備忘録として残しておきます。 インスト…

survey を使ってインタラクティブなプロンプトを作ってみた

GitHub - AlecAivazis/survey: A golang library for building interactive prompts with full support for windows and posix terminals.タイトルにあるように、surveyを使ってインタラクティブなプロンプトを作ってみました。 どんなことが出来るかやイメ…

「Goならわかるシステムプログラミング」を読んだ

「Goならわかるシステムプログラミング」の一連の記事をゴールデンウィーク中に読んでました。 ASCII.jp:Goならわかるシステムプログラミング単純にコーディングしているだけでは意識することが少ない、低レイヤーの話が分かりやすく書かれており、必要にな…

「UNIXという考え方」を読んだ

平成最後の日、UNIXという考え方 を読みました。 shop.ohmsha.co.jp著者自身が書いているように分かりやすい口語体で書かれているので、内容が気になる方は本書を読むことをお勧めします。以下、本書を読んで感銘を受けたところについて備忘録として纏めてお…

Serverless Frameworkを使ってLambdaでPDFを出力するサンプルを作ってみた

久しぶりにAWS と Serverless Frameworkを使い、LambdaにてDynamoDBからデータを取得し、PDFをS3に出力するサンプルを作ってみました。CloudWatchなどで定期的にLambdaを起動することを考えると、割と実案件ではありがちな要件かと思われます。今回作ったサ…