エンジニアはこわくない

好きなように書く

プログラム-golang

golangでcsvファイルを書き出し

golangでcsvを作成したかったので、調べました。 さすがgolangって感じでサクッと出来たので書きたいと思います。

一度go getしたパッケージを更新(アップデート)する方法

golangを使用していて稀にあるのですが、ローカルにあるパッケージが古い場合があります。 そんなときにgo getしたパッケージを漏れなく全部削除してもう一度最新のパッケージをgo getして・・・なんてことをするのか? と思ったのですが、そんなことはしな…

golangのrangeについて気づいたこと

小ネタですがgolangのrangeについて気づいたことがあったので 書きたいと思います。

golangでのmap初期化に少しハマった話

golangでのmap初期化に少しハマりました。 同じエラーに出会った人もいるかもしれないので、記録しておきます。

golangのversion1.9から標準でvendorディレクトリを除外してくれるようになった

今更かよ・・って感じのタイトルですが笑 go vet ./... | grep -v vendor のようなコマンドを自分のシェルスクリプトから見つけたので 「そういえば1.9から標準でvendorディレクトリを 除外してくれるようになったからgrepしなくていいんだ」 ということに気…

golangでトランザクション管理を少し楽にするラッパー関数

僕はgolang+mysqlを使っているのですが、いかんせんトランザクション管理に困っております。 go-sql-driver/mysqlにはbegin、commit、rollbackというメソッドがありますが まさか一つ一つ手で書く・・・? 力技としてならそれもありかも・・・なんて思って…

自動ビルドしてくれるライブラリ「fresh」がいい感じ

githubをぼけーと見ていると「fresh」という便利なライブラリを見つけたので、 それについて書きたいと思います!

型アサーションを利用して特定のメソッドを実装しているか調べてみよう

golangのインターフェースについて調べていると、型アサーションという機能があることを知りました。 この型アサーションを利用して 「特定のメソッドを実装しているか調べる」 といったことが可能みたいなのでやってみました。

golangでビルドしたバイナリをスタティックリンク (static link)にする

スタティックリンク (static link)って何?って人はこちらをどうぞ。↓ http://wa3.i-3-i.info/word14695.html 今回はgolangでビルドしたバイナリデータをスタティックリンク (static link)にするビルド方法について書こうと思います。 (ぼくは毎回普通にビル…

golangでvetコマンドやtestコマンドを実行したときにvendorディレクトリを除外する方法

下記の記事で書いたように、golangでディレクトリ(プロジェクト)をまるごとvetやtestしていると、たまに困ったことが起きるようになりました。 tsujitaku50.hatenablog.com それは 「ディレクトリ(プロジェクト)をまるごとvetやtestしていると、vendorディレ…

golangのmutexはポインタで渡すようにしよう

タイトルの通りなのですが ある時、golangを書いていてvetコマンドを実行したときに警告が表示されました。 その警告を見て「へーそうなんだ」と思ったので今回はそれについて少し書きたいと思います。

golangでディレクトリまるごとgo vet&testしたいとき!

golangを書いているとコード担保のために go testコマンドやgo vetコマンドをしますよね?? 僕はjenkinsで自動テストをしているのですが、そのときにディレクトリ(プロジェクト)まるごと go testコマンドやgo vetコマンドしたいときってどうするんだ? と思…

golangのインターフェースが本当に少しだけ理解できたかもしれない。これがポリモーフィズムなのか?

こんにちは、つじたく(@Tsuji_Taku50)です。 先日こんな記事を書きました。 tsujitaku50.hatenablog.com 今もこの気持は変わってません笑。 やっぱりgolangのインタフェース機能を使いこなせる気がしませんが、少しだけインタフェースの使い所が分かったよ…

golangのlog.Printlnとfmt.Printlnって何が違うんだ?と唐突に思った

こんにちは、つじたく(@Tsuji_Taku50)です。 いつもどおりgolangを書いたり勉強したりしていたのですが、 個人でgolangを書いているとデバック出力のためにfmt.Printlnと使っていました。 ただgolangにはlogパッケージが存在しています。 あれ、そういえば…

golangのインターフェースがイマイチ理解できず泣きそう

こんにちは、つじたく(@Tsuji_Taku50)です。 golangのインターフェースについて自分の理解が及ばず泣きそうです。 使いこなせればめちゃくちゃ便利なんでしょうが、理解できない人にとっては使いどころが分かりません。

goxのクロスコンパイルでビルド時にエラーが表示されて少しハマった

こんにちは、つじたく(@Tsuji_Taku50)です。 先日こんな記事を書きました。 tsujitaku50.hatenablog.com このgoxライブラリを使っていると、エラーが表示されてビルド出来ない!なんてことが起こりました。 解決するまでに少し時間がかかったので、今日は…

golangでクロスコンパイルするならgoxライブラリを使うと便利!

こんにちは、つじたく(@Tsuji_Taku50)です。 golangはクロスコンパイルできることが魅力の1つですが、 いかんせんコマンドが長くなる&複雑になりがちです。 そこで今回はgolangでクロスコンパイルを簡単にしてくれるライブラリを見つけたので、紹介します…

connpassAPIを使いやすくするライブラリをgolangで作った

こんにちは、つじたく(@Tsuji_Taku50)です。 golangでconnpassAPIを使いやすくするためのライブラリを 作成したので紹介します。 ※使いやすくというのは、あくまで個人的なので人によっては使いにくいだったりがあると思いますorz。

【golang】スライスから特定の要素を削除する

こんにちは、つじたく(@Tsuji_Taku50)です。 golangを書いている時に、「あれ、golangでスライスを削除するときどうするんだっけ?」 と思い調べたので、ここに残しておきます。

【golang】パッケージ依存解決ツールdepが使えるようになったので使ってみた!

※2017年12月25日追記 depは常に進化を続けているので、この記事に書いてある情報は古い可能性があります。 最新の情報はgithubを御覧ください。 GitHub - golang/dep: Go dependency management tool 本文はここから こんにちは、つじたく(@Tsuji_Taku50)…

golangのパッケージ依存解決ツールdepを使うが上手くいかない(解決!)

※2017年12月25日追記 depは常に進化を続けているので、この記事に書いてある情報は古い可能性があります。 最新の情報はgithubを御覧ください。 GitHub - golang/dep: Go dependency management tool ※2017年2月24日追記 なんとかこの問題を解決しました! …

golangでGitHub APIを使うならgo-githubライブラリが超便利だと思う

最近仕事でGithub APIを使用していて、言語はgolangで実装しています。 その際にイチからGETやPOSTを実装しても良かったのですが正直めんどくさい 楽できるなら楽したい。と思っていたところ googleが作っているGithub APIを使用するライブラリがあったので…

goreturnsのインストール方法と使用方法を調べました

golangを書いているとビルドしてから 「あっ、フォーマットが揃ってない!」とか「importが余分にあってエラー出てるわ〜」とか・・ 誰でも一度が経験があるかと思います。 そんなときに便利なgoreturnsというものを見つけたので紹介します。

go vetコマンドをドンドン使っていこう

今日はgo vetコマンドについての知見を手に入れたので、それについて書こうと思います。 goコマンドには様々な種類があります。