funayoseyoshito

Go言語でORMを使ってみる(gorm)

こんにちは、エンジニアの船寄です。
今回はGo言語で人気のあるORM、「gorm」というパッケージを使ってみたので、ご紹介させていただきます。
migration、insert、selectをしてみたいと思います。
※ DBはMySQLを使用しています。

gormパッケージをインストールする

まずはgo getでパッケージをインストールします。

[bash] go get -u github.com/jinzhu/gorm
[/bash]

続きを読む

Go言語でお手軽スクレイピング

goperくん

エンジニアの船寄です。
今回はGo言語でのスクレイピングについてご紹介致します。

弊社で運営しております。「街コンジャパン」の東京都イベント一覧ページをスクレイピングして、
イベント詳細ページURLをスクレイピングしてみたいと思います。

準備

パッケージインストール

[code lang=text] go get github.com/PuerkitoBio/goquery
[/code]

ソースコード

続きを読む

golangで対話型CLIツールをつくる

gopher

リンクバルの船寄と申します。
今回はgolangで対話型CLIツールを作成した話をさせていただきます。

突然ですが、サーバサイドエンジニアの方なら、下記のような対話型のシェルスクリプトを書いたことがある方がいらっしゃるのではないでしょうか。

対話型CLI動作イメージ(sh)

対話型CLI動作イメージ(sh)

ソースコードはこちらになります。

私はリリースツールなどで書いた気がします。
これをgolangで書いてみました。

続きを読む

Pagespeedapiを使ってみた

リンクバルの船寄と申します。
web系の開発者なら、誰もがお世話になっているPageSpeed Insights
apiから利用してみたので、ご紹介させて頂きます。

やりたかったこと

  • PageSpeed Insightsを利用して、画像の最適化について指摘されている項目を抽出し、日本語かつsjiscsvファイルとして保存したい。
  • URLを記載したリストファイルを準備し、リストに記載されているURLをANALYZEしたい。
  • 実行時間をなるべく短縮したい。

やったこと

golangで使って簡単なコマンドツールを作ってみました。

実行環境は以下の通り

  • macOS Sierra 10.12.3
  • go version go1.8 darwin/amd64

事前準備

  • 公式clientを準備する
    https://github.com/google/google-api-go-client/tree/master/pagespeedonline/v2
[code lang=text] go get google.golang.org/api/pagespeedonline/v2
[/code]
  • sjisでcsvへ保存したかったので、エンコーディングパッケージを準備する
[code lang=text] go get golang.org/x/text/encoding/japanese
[/code]
  • ANALYZEするURLを記載したリストを準備する

ソースコード

結果

結果はresult.csvへ出力されます
ツールを実行することにより、下記の形式でcsvファイルを出力することができました。

実行日時 2017-03-30 13:59:22.807444599 +0900 JST
mobile/desctop mobile
対象ページのURL http://hogehoge.com
対象ページのTITLE hogehoge title
対象ページのSPEED SCORE 56
指摘ルール名 画像を最適化する
指摘内容サマリ(Summary) 画像に適切なフォーマットと圧縮を選ぶことで、データ サイズを大きく削減できます。
指摘内容詳細 http://hogehoge.com/assets/fuga.jpg を圧縮すると 113.4 KB(74%)削減できます。
指摘画像URL http://hogehoge.com/assets/fuga.jpg

※1 PageSpeed Insights画像の最適化について指摘されている箇所のみが、一行づつ出力されます。
※2 表が長くて収まらないので、縦向きに記載しております。

サイトからポチポチするより断然効率化できますよ。
ご興味ある方は使ってみてください。

リンクバルではエンジニアを積極募集中です。
興味のある方は、こちらからご応募ください!