vagrant up したら Authentication failure で先に進まなくなった。 default: SSH username: root default: SSH auth method: password default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retr…
https://golang.org/pkg/regexp/#MustCompile ↑ こんな感じで Must が付いているものがある。 Must が付いているものは error を返す代わりに panic を発生させる。で上記の MustCompile() の説明文の一部が以下。 It simplifies safe initialization of glo…
この記事は Go (その2) Advent Calendar 2016 の20日目の記事です。どーもpospomeです。(´・ω・`) GAE/GO の環境でサーバサイドエンジニアとして働いています。twitter では 実装パターン, DDD, golang, GCP についてつぶやくことが多いです。 同じような分…
プライベートリポジトリをgo getする方法 - lnrvrs ↑ これだった。 token を生成して、url instead of して終わり
循環参照についてです。 パッケージの循環参照 from pospome
goonで生成されるmemcacheのキーってどーやって作ってんのかな? と思って調べてみました。以下で生成している。 https://github.com/mjibson/goon/blob/master/goon.go#L71-L74Entityのkeyをエンコードして、「g2:」というプレフィクスを付けている。 ローカ…
気になったので調べてみたプロジェクトルートの指定方法が間違っている可能性が高い。以下のようなディレクトリ構成の場合 Myapp _vendor src myapp hanlder handler.goIntelliJ のプロジェクトルートを Myapp に指定すると、 _vendor とか src が含まれる。…
DataStore で以下のエラーが出た。 Only ancestor queries are allowed inside transactions. のエラーググると以下がヒット。 http://stackoverflow.com/questions/14397207/why-do-i-get-only-ancestor-queries-are-allowed-inside-transactions-error結論…
結論から言うと、 DDDの.NET本の実装だとC#の async/await でイベント送信を非同期にしながらも、 同期的に戻り値返してたから、 これが正解なのかね・・・って感じです。 以下は色々調べた結果です。 過去にも似たような記事を書いたけど・・・・ http://d.…
読みやすいDDD本ってイメージかな・・・。DDDの概念や用語について触れているので、 DDD本のような「DDDとは?」というのも学べるし、 具体的にどう実装するのか? っていうのも載っているので、実践DDD本のようでもある。自分はDDD本、実践DDD本、どちらも読…
DDDでは 集約 = トランザクション境界 でなければならないので、 複数の集約をまたがるデータの永続化処理は結果整合性になる。なぜ集約をまたいでトランザクションをかけてはいけないのかというと、 集約で「データの一貫性の境界」を表現するため。 なので…
panic の画面が表示されてしまうので、 どうすればいいのかを調べてみた。echo の middleware ではリクエストを defer して recover してるみたい。 https://github.com/labstack/echo/blob/master/middleware/recover.go#L65-L81 /net/http にもそれっぽい…
読みました。「知るべきこと」は1つが2ページほどで、 それぞれが独立している。気になったところだけパッと読めばいいかと。勉強に疲れた時の息抜き用に読んでみるといいかもしれない。
----- 2016/10/23 追記 --------- コマンド操作が実行されると、 controller で アプリケーションサービスを呼び出す実装ではなく、 controller でコマンドを発行し、 bus で受信し、 saga で処理していくような実装を想定しています。詳しくは .NET本 を見…
golangの正規表現は遅いって聞くけど、実際どーなんだろ? って思ったよっていう記事です。 おそらく、この記事を読んでも何も得られないと思います。 -----追記 2016/11/26 ------- 書籍「みんなのGO言語」で少し言及されていました。 golang の正規表現は場…
とはいえ、ちょっと自信ないので、 間違っている箇所があれば指摘してもらえると嬉しい。 ParentKeyはEntity同士を関連付けるキーのことで、 RDBでいう外部キーのようなイメージを持つかもしれないが、全然違う。 何も考えずにParentKeyでリレーションを貼る…
以下にある。 https://github.com/golang/go/wiki/CodeReviewComments#named-result-parameters日本語でまとめてあるのが以下。 ページ内を「名前付き結果パラメーター」で検索すると出てきます。 http://aial.shiroyagi.co.jp/2016/07/golang-api-server-de…
なぜか苦戦したのでメモしておく。https://gobyexample.com/json ↑ ここに書いてある。上記から抜粋したのが以下。 json.Unmarshal() の第一引数が []byte になっているので、string の場合は変換してあげる必要がある。 var dat map[string]interface{} if …
以下のエラーが出た。 $ git submodule update fatal: reference isn’t a tree: 6c5e70b984a60b3cecd395edd5b48a7575bf58e0ググると以下を発見。 http://blog.machacks.net/2013/10/25/reference_is_not_a_tree/基本上記の記事で解決すると思うが、 自分の場…
BlobStoreAPIで以下のエラーが発生した。 Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it…
ERROR: blobstore: error reading next mime part with boundary "===============xxxxx==" (len=xx): multipart: NextPart: EOF GAEのBlobStoreAPIにファイルをアップロードした後にリダイレクトされるエンドポイントで 以下のように blobstore.ParseUpload…
zipだからといって、特別なことは必要ない。 普通に書き込めばいいだけなので、 zipファイルを読み込んで、 以下のGCSのサンプルにあるように wc.Wtite() に []byte を渡してやればいい。 https://github.com/GoogleCloudPlatform/gcloud-golang/blob/master…
結論から言うと、 ファイル名をスラッシュ区切りにすれば自動的にフォルダが作成される。GCSのサンプルコードでいうと、 以下の fileName という引数を 「my_dir/test.txt」のように指定すれば、my_dir の下に test.txt が生成される。 https://github.com/G…
以下のエラーが出た。 Error: Request Entity Too Large Your client issued a request that was too large.これは GEA に送信するデータが制限を超えている場合に出る。 自分は 45MB くらいのファイルを form から POST したら発生。 このファイルをGCSに保…
https://www.oreilly.co.jp/books/9784873117607/読みました。やっぱりマイクロサービスは面倒。 大規模なサービスとか大規模な組織に適している印象。個人で何か作ろうと思っても、マイクロサービスは採用しない。 後から小さく切り出せるようにはしたいけ…
エミュレートできないので、 GCPにデプロイして確認する必要がある。https://cloud.google.com/sdk/gcloud/reference/beta/emulators/対応しているのは以下のみ。bigtable https://cloud.google.com/sdk/gcloud/reference/beta/emulators/bigtable/datastore…
読みました。オブジェクト指向の入門書的な感じなので、 分かりやすく基礎が学べる気がする。言語が Java なので、 当然ながら interface, abstract が存在しない言語だと その通り作れないんだけど、 それでも考え方自体は役に立つと思う。
読みました。ActiveRecordのように機械的にテーブルに紐づくモデルを作って、 それに対してメソッドを生やしていく実装をしていると、 「仕様を反映した本来あるべき姿のモデル」を見失う可能性があるなと感じた。「本来あるべき姿」とフレームワーク、ライ…
golang で以下のエラーが出た。 type XXX has both field and method named YYY「XXX はYYYというフィールドとメソッド両方を持ってます」つまり、struct に同名のフィールドとメソッドは定義できない。理由は以下にある。 https://groups.google.com/d/msg/…
コンストラクタで例外を投げていいのか?自分はコンストラクタで例外を投げる派。これはオブジェクトを生成する条件を満たしていないのであれば、 そもそも生成させないようにしたいから。golang で書くとこんな感じ。 golang は例外ないから error を返して…