Go

分散システムと柔軟なデータの処理

5章終わりました。 かなり難しく、説明もなく困りました。 しかし動くものは作れましたといった感じです。 分散型テクノロジーを使ってスケールアウト可能なシステムということみたいです。 将来的に自分がこんなテクノロジーが必要になることがあるだろうか…

ドメイン名を検索するコマンドラインツール

4章終わりました。 5つのコマンドラインツールを作成し、それぞれ単体で使えたり、パイプでつなげて1つのアプリにしたりしました。 "chat"という入力から、synonyms | sprinkle | coolify | domainify | availableと連鎖していき、whoisで空いているドメイン…

プロフィール画像を追加する3つの方法

3章終わりました。 Getという接頭辞は必要なければ付けない方が良いというのが初耳でした。 リンク GetOwnerとSetOwnerではなく、OwnerとSetOwnerになるのでしょうか? いきなりインタフェース型を作っていくやり方に慣れることができなくて難しく感じます。 …

プロフィール画像を追加する3つの方法

3章です。 認証サービスから提供されるアバターの画像を利用 Gravatar ユーザーがアップロード まずは1番上の認証サービスからです。 RailsチュートリアルではGravatarでしたが、今回の認証サービスからという方法がとても簡単に済んでしまい驚きまし。た。 …

認証機能

2章です。 OAuth2で認証機能の追加をします。 なにかのウェブアプリで「GitHubアカウントでログインする」「Googleアカウントでログインする」というやつです。 gomniauthというライブラリを使います。 感想や、気になったところなどのメモです。 秘密の値な…

チャットアプリ

RailsチュートリアルでもTDD推奨でしたが、この書籍では「ここまで細かく段階を分けて作っていくものなのか?」と思いました。 var buf bytes.Buffer tracer := New(&buf) ... まずこのようなテストを書きます。 戻り値についても型宣言もしていません。 それ…

チャットアプリ

サーバー側コードを自力で思いつけていたかというと自信がありません。 まるでElmで言ったら、大げさですがTEAを自力で生み出すような。 相変わらず並行処理は難しく感じます。 たった16pの時点でチャットができてしまい感動しました。 goplやっていて気づか…

Go言語によるWebアプリケーション開発

今日からこの本を読んでいこうと思います。 この本を選んだ理由は、目次を見て実践的なアプリを作っているのではないかと思ったからです。 すでにインプット比率が高くなってしまっていると思いますが。

goで作ったもの

Go

goplをほぼ読了して、現時点でgoで作ってみたものです。 テキスト処理 タイピングゲームでのお題になるテキストファイルをElmのファイルに変換するものを書いてみました。 リンク flagパッケージが便利だと思いました。 ファイル名から拡張子を取り除いたも…

11章 テスト

11.6 Example関数 すごい。こんなものあるのかと思いました。 func ExampleAdd() { fmt.Println(Add(3, 4)) fmt.Println(Add(5, -1)) // Output: // 7 // 4 } このようなものをhoge_test.goに書いておき、godocするとドキュメントにコード例として表示されま…

11章 テスト

11.4 Benchmark 関数 $ go test -bench=. -benchmem これでベンチマークとメモリ割り当てを調べられます。 さっそくやってみました。 BenchmarkIsPalindrome-4 3548802 314 ns/op 248 B/op 5 allocs/op BenchmarkIsPalindromeB-4 3987262 309 ns/op 248 B/op…

11章 テスト

なかなか記事を書く習慣が身につかず飛び飛びになってしまいますし、そもそも網羅的に書くべきなのかどうかも分かりませんが、気分・心理状態次第になってしまいそうです。 11.2.5 効果的なテストの作成 テストも優れたユーザーインターフェースを提供しよう…

11章 テスト

11.2 Test関数 練習問題11.1 また安易に手を出してしまいました。 そしてまた写経に。 もとがmain()内部で動作するものなので、中身の処理を外部のcharcount()という関数にして、テストするのに必要な引数も加えます。 charcount()は戻り値を4つも返します。…

10章 パッケージとGoツール

10.5 ブランクインポート import ( "image" _ "image/png" ) pngパッケージのinit()を呼び出すためだけに、このようにすることがあるらしいです。 そのinit()で必要なデータや関数をimageパッケージに登録してimageを拡張してるみたいです。 練習問題10.1 ち…

9章 ゴルーチンとスレッド

9.8 ゴルーチンとスレッド 練習問題9.5 2つのバッファなしチャネルを介して卓球のようにメッセージを送り合う2つのゴルーチンを持つプログラム。 という問題です。 これですら難しく感じます。 ぱっと自分で思いついた方法は、まずいのだろうと思いますが、…

9章 ゴルーチンとスレッド

9.8 ゴルーチンとスレッド 練習問題9.4 とりあえず100万個のゴルーチンを作成してみました。 メモリ使用量はタスクマネージャーで見ると8559.4MBでした。 値が全体を伝わる時間は580.942msでした。 os: Windows 10 Pro 64bit cpu: i5-6600K mem: 16.0GB 1ゴ…

9章 ゴルーチンとスレッド

書籍のプログラミング言語Goをやっています。 すでに9章でブログでは途中からになってしまいますが。 9.7 例: 並行的で待たされないキャッシュ 練習問題9.3 Func型の拡張? (*Memo).Getメソッドの拡張だけではないのか? と、直感的に思い、簡単そうだからと安…