golang

速度制限するパッケージ golang.org/x/time/rateについてQiitaに書いてみた

こんにちは suganoo です。ここ最近3月4月とブログをあまり更新してませんでした。というのも「Go言語による並行処理」が勉強になったと以前投稿したのですが、 読んでるだけじゃだめだ!やっぱ写経しないと!っと思ってサンプルコードを写経してたわけで更…

Go言語でのBasic認証とDigest認証のヒント

久しぶりの投稿でございます。たまたま社内のjiraにAPIでissueを作ろうと思ったのですが、 その前のプロキシーサーバーがDigest認証になってました。はてと困りました。結局はプログラムで解決するのは難しそうなので、直接curlでどうにかしようと思いました…

Go言語 channel の使い方を勘違いしてたこと

「Go言語による並行処理」を写経してるんですが、チャネルのところで理解が甘かったところがありました。やってみて、ああそうだったのか!?と気づきました。わかってなかったことは下記の2つ チャネルってgoroutineで使うもの。 そのgoroutineの中でclose…

UdemyのgRPCコースやってた

久しぶりの更新になりました。2月半ばにこんな企画を見つけたのでUdemyやってました。 zine.qiita.comUdemyって年末年始に90%オフセールしたりして安くなるんですが、買った後なにもやらずにそのままにしちゃうんですよね。いわゆる積んdemy。それをこの機会…

【Qiita】Go言語でポリモーフィズムを実装 ~http.HandlerFuncに学ぶ~ #golang

Qiitaに書いてみた。Go言語のポリモーフィズムの実現方法です。qiita.com

とがったことができる人より基本のレベルが高い人 しっかりGo言語を書くために ~"golang.tokyo#21「Goエンジニアの採用」レポート""を読んで~

golang.tokyo#21「Goエンジニアの採用」というイベントがあったそうです。 行ってみたかった。 golangtokyo.connpass.comそのイベントでレポートをアップした方がいましたが、内容がとても良かった。 その中で身を引き締まる内容がありました。 mom0tomo.git…

【Qiita】Go言語でロガー gologgerを作ってみました

Qiitaに書いてみました。Go言語でいいなーと思うロガーが無かったので作ってみた。qiita.comまあそんな使う人いないだろうね。

【Go】Go言語でSQLを実行してみる

こんにちは suganoo です。Go言語からのDB操作を復習したいと思います。「Goプログラミング実践入門」でDBの操作が出ていたので、おさらいをしておきたいなと思ってました。 今回はORMは使いません。それはそれでいつかまた調べて記事にしてみようと思います…

Go言語での定期実行とタイムアウト(Software Design 2019年2月号の復習)

こんにちは suganoo です。今月号のSoftware Design (2019年2月号)に「”速い”コードの書き方」という特集がありました。Go言語についても書かれていたので、おお!っとさっそく読み込んでしまいました。ソフトウェアデザイン 2019年2月号作者: なぎせゆうき,…

「Real World HTTP」はめちゃ勉強になる本でした

こんにちは suganoo です。 「Real World HTTP」を読んでみました。 会社に置いてある本だったのですが、HTTP通信のところについては勉強しておきたいなと前々から考えていたので今回読んでみました。実は以前も読んでみたのですが、1/3くらい読んで難しくな…

【Go】go test でテストしよう

Goでちゃんとテストコードを書こうとようやく重い腰をあげてみました。コーディングしてるとテストコードは後回しにしてしまうんですよね。ちゃんとやってみます。後回しにするの良くないっすね(汗)。。。go testについて調べたことを記事にしてみようと思い…

【Go】templateの基礎的使い方

GoでWebプログラミングを学んでます。今回はtemplateの使い方の紹介です。 基礎的な使い方 まずはソースコードから。 main.go package main import ( "html/template" "net/http" ) func process(w http.ResponseWriter, r *http.Request){ t := template.Mu…

Goのwebhdfsクライアントを修正してみた

HadoopへファイルをGo言語でインポートしたくて、webhdfs経由で入れようとしていました。 そこでGoのクライアントライブラリーを使ってやってみたんだけど、少し苦労したって話です。 Go言語のwebhdfsクライアントってあんまりない。 Go言語でアプリを作って…

【Go】Go言語で時間を扱う(pkg/time)機能を"ほぼ"まとめてみた

ファイル名にタイムスタンプを入れたいなと思ってtime パッケージを調べてたんですが、便利な機能が意外とあるなと気づいたのでまとめてみました。ちょくちょく調べることがあるので、この際いっきにまとめてみることにした。自分でも知らない機能があったり…

【Go】Go言語でgzファイルをまとめる

たまたまgzファイルを一つにまとめる(=コンカチする)必要があったのでやってみました。 読み込んだ時にバイナリーで扱ってるんで、そのまま書いてしまえばいいから簡単ですね。 準備 ファイル フォルダ構成 実行スクリプト goのコード os.OpenFile ReadFile…

【Go】multiple-value in single-value context

たまにこんなエラーが出て戸惑いました。 あんまり調べなかったせいか、ググってもよくわからなくて引数かな?とか考えてたら全然違ってました。結論から言うと、返り値が2つなのに1変数しか受取ろうとしてないぞ! っていうエラーでした。アホ過ぎて、よく…

「Go言語による並行処理」を読んでみたけどめちゃ勉強になる本だった

Go言語による並行処理作者: Katherine Cox-Buday,山口能迪出版社/メーカー: オライリージャパン発売日: 2018/10/26メディア: 単行本(ソフトカバー)この商品を含むブログを見る2018年10月に出版されたようです。 Twitterで「献本いただきましたー」とかよく…

続「Goプログラミング実践入門」の写経がとてもいい勉強になった

サンプルソースを写経していて、どーしても気になるところがあったのでメモしておきます。 blog.suganoo.net(※2018/12/06更新 全然ちがうところ修正していたので更新) 開始ユーザーが表示されない User.Nameって無いよね ここの部分の .User.Name が無いせい…

「Goプログラミング実践入門」の写経がとてもいい勉強になった

先日読んだこの本について内容がよかったので写経に挑戦してます。 blog.suganoo.netやっと9割がた終わったのですが、とてもよかったです。 写経するの実は今回初めてだったのですが、かなり学びになりますね。ところどころ端折ってしまったところも多々ある…

GoのWebフレームワークginの日本語ドキュメントがでたらしい

golang の web フレームワーク gin の日本語ドキュメントを書いたのでよろしくね。 https://t.co/4bwWS7Usja— Sai (@sairoutine) 2018年11月28日Go言語にはRuby on RailsのようにデファクトのWebフレームワークがありません。GoでWebプログラミングをしてて…

【Go】goでhttp.Requestを使ってみる

Goでwebプログラミングを勉強してます。 この本をもとにして写経してます。 suganoo.hatenablog.comhttp.Requestの値は何が取ってこられるかやってみました。URIパスは RequestURIでとってこられるんですね。 httpのrequesthttp - The Go Programming Langua…

【Go】exec.Commandで外部コマンドを実行する

たまたま気になったので調べてみました。ざっくりいうと exec.Command("hoge")で実行コマンドを指定します。 .Run() : 返却値を無視 .Output() : 返却値を取得 .Start() : 完了を待たない .Wait() : 完了を待つ ソースコードは後述の参考Qiitaを参考にしてい…

「Goプログラミング実践入門」はかなりいい本だった

Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る impress top gearシリーズ作者: Sau Sheong Chang,武舎広幸,阿部和也,上西昌弘出版社/メーカー: インプレス発売日: 2017/03/17メディア: Kindle版この商品を含むブログ (1件) を見るこん…

【Golang】Go言語でjsonを扱う

「Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る」を読んでいたら、jsonを扱う項目があったので練習がてら自分でも書いてみました。ほかにもやり方はあるようですが、まずはオーソドックスなやり方のencoding/json使ってやってみます。…

【Golang】userパッケージを使ってみる

userパッケージを使ってみました。user - The Go Programming Language package main import ( "fmt" "os/user" ) func main() { user, err := user.Current() if err != nil { panic(err) } fmt.Println("User.Name : " + user.Name) fmt.Println("User.Uid…

【Golang】runtimeを調べてみた

Go言語のruntimeはOSやプロセスの情報を得ることができます。 runtime - The Go Programming Language CPU情報はDeprecatedになってしまったようですね。下記のサンプルコードをもとにちょっと自分でも書いてみました。 golangcode.com package main import …

Go言語人気日本でも1位らしいよ

こんな記事を見つけました。 (日経 xTECH) tech.nikkeibp.co.jp 時間が経つと読めなくなってしまうようなのでざっくり要約 年収アップにどのプログラミング言語学んだ方がいいんだろ。 ビズリーチが2018年収ランキング公開したよ。 1位「Go」2位「Scala」3位…

【Golang】tmpファイルを扱う

Golangにはtempとしてのファイル操作関数があるんですね。便利ですね。 あまり使う用途ないかもしれませんが、パッと見関数で何やってるかわかって可読性がちょっとよくなるかもしれません。 サンプルコード ポイント ioutil.TempFile ioutil.TempDir os.Tem…

【Golang】文字列数字をソートする

string型数字のスライスを小さい順にソートする方法です。例えば、"2", "1", "11" があった場合にそのままソートしようとすると文字列ソートになってしまいますから、下記のような順序になりますね。 "1" "11" "2""11"が最後に来るべきですよね。 サンプルコ…

Goで基礎的なwebアプリの学習

Goと言えば処理速度が速いことにメリットがあります。最近のWebサイトもGoで作られる話もよく聞きますし、 Goのwebフレームワークもいろいろ出てきています。Gin、goji、matini、beego....いろいろありますね。 フレームワークを使う前に単純にwebプログラミ…