Go Conference 2017 Springでの講演スライドです。
![実践!Go/GAE+DDDでのクローラー構築](https://cdn-ak-scissors.b.st-hatena.com/image/square/e5c8006e39ec8490f7400d0caa235d6d3ec02efe/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa6b1f5a81f334943a5330ef5401f834f%2Fslide_0.jpg%3F7732575)
Google App Engine(GAE)で Go 製のウェブアプリを動かしたかった話。いっぺん動かしてみると GAE/Go はウェブアプリを動かす環境としてはとてもいい。ただ、中途半端な知識だけで始めると開発者としてはつまずくことが多かったので、分かりにくい点をまとめておく。 Google App Engine Go Standard Environment について goapp は $GOPATH 以下もアプリケーションのソースとしてアップロード/コンパイルする goapp はプロジェクトルート以下のソースコードをすべてコンパイルしようとする go-app-builder: Failed parsing input: parser: bad import "syscall" in ... go-app-builder: Failed parsing input: app file x
Google runs an interesting PaaS (Platform as a Service) called App Engine. It allows you to write code in one of four language/environments: PHP, Python, Java, and Go. Go is currently a beta offering but already offers the same features as the other three. Some of the huge advantages of App Engine include: Auto scaling & load balancing Access to high performance and high durability Google services
How to upload image to Google Cloud Storage with Google App Engine / Go. この情報は2015年9月9日時点のものです。appengine.Context, context.Context 問題は過渡期のようなので今後インタフェースが変わる可能性があります。 File API が終了になったので調べたけどあんまり情報がなく苦労したのでメモとして残しておく storage#NewWriter に渡す Context は appengine#Context ではなく context#Context なので次のようにするとエラーになります。 import ( "appengine" "google.golang.org/cloud/storage" ... ) func uploadImage(w http.ResponseW
TravisCI to GAE TravisCIからGAEにデプロイするには、.travis.ymlでGoogle App SDK for GoをDownloadすればいい。 Go用のSDKであるgo_appengine_sdk_linux_amd64-1.9.6.zipを使用するので注意する。 間違えに気づかず、2時間近く詰まってしまった...。 GAEにDeployするときの認証 2段階認証している場合、application用にパスワードを発行するかOAuthで認証するか2通りの方法がある。 2段階認証していなければ、mailアドレスとパスワードで問題ない。 いちいちパスワードを発行するのも面倒なので、今回はOAuthで認証する方法を選択した。 $ appcfg.py --oauth2 update muapp/ 上記コマンドを実行すると、homeディレクトリに.appcfg_oau
High Performance Apps with Go on App Engine Google I/O, May 2013 David Symonds Software Engineer, Google Video This talk was presented at Google I/O in May 2013. Watch the talk on YouTube 2 Overview Why Go + App Engine History, Status Gopher Mart Finding performance bottlenecks Defer work Batching Caching Concurrency Control variance 3 Why Go + App Engine Go compiles to native code App Engine is a
Perkeep lets you permanently keep your stuff, for life. Perkeep (née Camlistore) is a set of open source formats, protocols, and software for modeling, storing, searching, sharing and synchronizing data in the post-PC era. Data may be files or objects, tweets or 5TB videos, and you can access it via a phone, browser or FUSE filesystem. Perkeep is under active development. If you're a programmer or
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回はオペレーションを確実に実行するため用いるトランザクションについてです。 それではGo言語での使い方について見てゆきます。 参考:Go — Google Developers Transactions App Engineではトランザクションがサポートされています。 トランザクションは完全に成功、または失敗することが保証された単一のオペレーションまたはオペレーションセットです。 アプリケーションは単一のトランザクションで複数のオペレーションや計算を実行することが可能です。 トランザクションの実行にはdatastore.RunInTransactionを使用します。 次の例は単純なリクエスト回数をカウントする際にトランザクションを用いたコードです。 c := appengine.NewC
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回は前回の基本的なクエリに続けてGo言語でのクエリカーソルの使い方について見てゆきます。 参考:Go — Google Developers Datastore Queries クエリカーソル クエリカーソルはoffsetのオーバーヘッドを発生させること無く、結果を取得出来ます。 アプリケーションは結果の最後のインデックスを示すカーソル(文字列でbase64エンコード)を取得します。 アプリケーションはこのカーソルを保存し、次のバッチの開始点として使用することが出来ます。 また、エンドカーソルを指定することで結果セットの範囲を制限することも可能です。 次はカーソルを使用した基本的な例です。 c := appengine.NewContext(r) q := datastore.NewQu
Google App Engine 1.8.6 がリリースされました。 そしてついに、Go版で単体テスト用のパッケージ appengine/aetest が追加されました! AppEngineのローカルでの開発サーバはPythonで実装されており、Pythonの開発サーバがGoアプリを呼び出すように動作しています。この仕組み上、Goの単体テストからAppEngineのAPIを呼び出すことが困難でした。 新たに追加された appengine/aetest を使うと、以下のように単体テストを書くことができます。 package foo_test import ( "testing" "appengine/memcache" "appengine/aetest" ) func TestFoo(t *testing.T) { c, err := aetest.NewContext(nil) if
先日の、Go言語でパッケージを作成して世界に公開する方法で作成したコードのユニットテストを書いてみたいと思います。こちらも公式の動画を元にした記事です。英語がダメな人はこのブログを読むといいよ。 あまり、$GOROOT/src/pkg以下のソースコードをいじる人も居ないと思いますが、俺色々変更しちゃったよー!って人のために、魔法のコマンドを教えておきましょう。以下のコマンドを実行すると、すでに取得済みのパッケージであってもリポジトリの最新の状態にすることができます。念の為に叩いておきましょう。 $ goinstall github.com/ddddaisuke/mytools ソースコードがあるディレクトリに移動して、以下のmytools_test.goを作成します。 $ cd go/src/pkg/github.com/dddaisuke/mytools/ $ vi mytools_te
[Video] http://www.youtube.com/watch?v=fc25ihfXhbg [Slide] http://talks.golang.org/2013/highperf.slide#1 5月のGoogle I/OでDavid SymondsがApp Engineのアプリのパフォーマンスを向上させるポイントを紹介してます。 [Goを採用した理由] ネイティブコードにコンパイルするGoは、スピードの速いランタイムが実現できるのでApp Engineに最適。 [事例] Thanksgiving 2011 Google Doodle: Goの経験のなかったGoogleエンジニアが24時間でつくった。Python 2.7ランタイムと比較して遅延が半減。 Santa Tracker 2012: 5,000クエリ/秒をさばいた。 [パフォーマンス改善のポイント] 1) パフォーマ
カテゴリ 第三回 豪快にGO会 こんにちは。ehama-kです。 8/1(木)に開催された3回目のGo言語の勉強会のレポートをお送りします。 「電車でGo!」 今回は同じ新卒の岡本くんが、社外イベントの「電車でGo!」に参加した際のレポートと、Google App EngineとGo言語に関する話をしてくれました。 電車でGo 都電荒川線を貸切って、三ノ輪駅~早稲田を移動している間車内でGo言語の勉強 実際は、最初の30分くらい参加者みんなテンション上がって、コードは手付かず・・・・(^^;) Google App Engine と Go言語 Googleアカウント認証 Go言語で掲示板 ★Go言語で掲示板 App Engine をimport import ( "appengine" "appengine/user" ) これでGoogle App Engine の機能を使うことができま
昨日、公開された(?)Go言語のWebフレームワークの"goweb"を早速GAE/Gで動作するか 試してみました。 導入方法は、以下のように行います。 gowebのソースコードをダウンロードする。 go get code.google.com/p/goweb/goweb Google Codeからダウンロードする。 1の方法を使った場合は、$GOPATH配下か、GOPATHがなければ、Go言語のコマンドがあるディレクトリにダウンロードされます。 ダウンロードを行った場合は、任意のディレクトリに展開して下さい。 ダウンロード後展開 or go getで取得したディレクトリ配下のgowebディレクトリをGAE/Gのアプリケーションディレクトリにコピーする。(GAE/Gの場合は、GOPATH変数を認識しないので、手動でコピーしておく必要があります) 以下のようなプログラムを作成し、実行する。 p
Go + App Engine = Johan Euphrosine October 5, 2013 proppy-go-ae.appspot.com About Me Johan Euphrosine <proppy@google.com> Google San Francisco Developer Programs Engineer Playing with Google Cloud Platform all day profiles.google.com/proppy proppy-go-ae.appspot.com App Engine App Engine allows you to scale your web application on Google Infrastructure proppy-go-ae.appspot.com Go Runtime Native cod
いろいろ都合があって、GAE/Gから、Google Cloud Storageを利用してみたので 利用方法をメモしておきます。 GAE/GのFileServiceはなぜか、ドキュメントに記載されていない(8/2現在)ので、 GAE/GのSDKのソースコードを見て使い方を理解する必要があります。 (もしくは、Python版、Java版のプログラムから推測するとか…) ということで、時間がある時にいじって、Blogにメモしようと思います。 1. Google API Consoleで課金設定をONにする。 Google Cloud Storageは課金設定をONにしないと、書き込みも読み込みも、Bucketの作成さえもできないようなので、課金をONにします。 課金をONにしないとIO_ERRORになってしまいます。 ※ローカル環境では、何もしなくても実行可能なので、ローカルでしか動かさないとい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く