エンジニアはこわくない

好きなように書く

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

f:id:tsujitaku50:20170224131252j:plain

僕はgolangmysqlを使っているのですが、いかんせんトランザクション管理に困っております。

go-sql-driver/mysqlにはbegincommitrollbackというメソッドがありますが

まさか一つ一つ手で書く・・・?

力技としてならそれもありかも・・・なんて思っていた時期がありました。

そしてトランザクション管理について調べていると、海外の方が良さげなラッパー関数を紹介してくれていました。

続きを読む

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

f:id:tsujitaku50:20170224131252j:plain

golangのインターフェースについて調べていると、型アサーションという機能があることを知りました。

この型アサーションを利用して

「特定のメソッドを実装しているか調べる」

といったことが可能みたいなのでやってみました。

続きを読む

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

f:id:tsujitaku50:20170224131252j:plain

スタティックリンク (static link)って何?って人はこちらをどうぞ。↓

http://wa3.i-3-i.info/word14695.html

今回はgolangでビルドしたバイナリデータをスタティックリンク (static link)にするビルド方法について書こうと思います。

(ぼくは毎回普通にビルドしてた結果、ダイナミックリンクになってました)

続きを読む

aws-cliを使ってs3のバケット間同期をしてみる

f:id:tsujitaku50:20170121194543p:plain

みなさんのプロジェクトではs3を使用していますか?

画像や音声などをs3で管理しているプロジェクトも多いと思います。

僕がいま所属しているプロジェクトでもs3を使用していて

そのときにバケット間同期をする必要があり、aws-cliを使って同期しています。

メモがてらブログに書いておこうと思います。

続きを読む

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

f:id:tsujitaku50:20170224131252j:plain

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

それは

「ディレクトリ(プロジェクト)をまるごとvetやtestしていると、vendorディレクトリも一緒にvetやtestする」

ということです。

つまりvendorディレクトリ配下にエラーが起きるようなコードが含まれている場合、それも同時に検出されてしまうということです。

これはめんどくさい。

できればvendorディレクトリだけ除外したいですよね。

ということで、調べました!

続きを読む

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

f:id:tsujitaku50:20170224131252j:plain

タイトルの通りなのですが

ある時、golangを書いていてvetコマンドを実行したときに警告が表示されました。

その警告を見て「へーそうなんだ」と思ったので今回はそれについて少し書きたいと思います。

続きを読む

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

f:id:tsujitaku50:20170224131252j:plain

golangを書いているとコード担保のために

go testコマンドやgo vetコマンドをしますよね??

僕はjenkinsで自動テストをしているのですが、そのときにディレクトリ(プロジェクト)まるごと

go testコマンドやgo vetコマンドしたいときってどうするんだ?

と思ったので調べました!

小技だと思いますが、知っといて損はないかと思います。

続きを読む

MySQLをHomebrewでインストールする(Mac版)

f:id:tsujitaku50:20170722112415p:plain

新しいMacに変えたのでローカルにMySQLをインストールする必要が出てきました。

そのときにbrewでインストールすると2分くらいでインストールが完了したので、今日はそのことを書きたいと思います。

続きを読む

Lineブログの更新をRSSで受け取る方法

f:id:tsujitaku50:20170620081339p:plain

仕事とは関係なく「Lineブログの更新をRSSで受け取りたいなー」と思いました。

調べてみると簡単に実現出来たので、その方法を紹介します。

続きを読む