Quantcast
Channel: daisuzu's notes
Browsing all 44 articles
Browse latest View live

golang.tokyo 静的解析Dayでgolang.org/x/tools/go/analysisを使ってみた

golang.org/x/tools/go/analysis面白そうだなー。 けど触る時間がなかなか取れないなー。 と思っていたらちょうどタイムリーなツイートがあり、12/8とかにGoで静的解析を一緒にモクモクやるかいをどこかでやりたいけど、会場がないので、一緒にモクモクしてくれる人とどこか会場を探してます。— tenntennʕ ◔ϖ◔ʔ ==Go@Goが生きてる (@tenntenn)...

View Article



Vimのexecute()と組み合わせて便利なコマンド

この記事はVim Advent Calendar 2018の13日目の記事です。先月に開催されたVimConf 2018で、Migrating plugins to standard featuresというタイトルで発表してコマンドの結果をバッファに表示する方法を紹介しました。その中で解説しきれなかったテクニックとして、以下のようなコマンドを定義しておくとL...

View Article

Image may be NSFW.
Clik here to view.

Vimの折畳に対応したtreeコマンド

golang.tokyo...

View Article

第1回 ゴリラ.vimが開催されました

2/18(月)にゴリラ.vim...

View Article

goonのクエリをチューニングした時のメモ

App Engine(Go 1.9)でDatastoreからデータを取得するのにgoonのGoon.Runを使っていたが、プロパティを追加する改修*1をした後、 latencyが遅くなり、DatastoreでDeadline exceededが頻繁に発生するようになってしまった。とりあえず該当するリクエストをStackdriver...

View Article


MojaveでGDB 8.3を使う

1. インストールbrew install gdb --HEAD2019/04/13時点でインストールされるバージョンは8.3.50。 2019/05/14以降は--HEAD不要。echo"set startup-with-shell off">> ~/.gdbinit を実行するようにと表示されるが、ファイルの場所は$HOME/.config/gdb/initでも良い。2....

View Article

App Engineのgo111用ディレクトリ構成

App Engine Standard EnvironmentでGo1.9を使う時は以下のように、リポジトリのルートをGOPATHとして設定し、appcfg.pyを使ってデプロイをしていました。. ├── app.yaml └── src └── app ├── glide.lock ├── glide.yaml ├── app.go ├── handler ├── ... └──...

View Article

素のVimでGoを書く時のテクニック

gorillavim.connpass.comにて、外部ネットワークに繋がらない環境でvimとgoしか使えないという縛りでライブコーディングをしてきました。実際にそういう環境があるのか?という話はさておき、そのような状況でも以下を駆使してそこそこコードが書けます。:%!gofmtでコードを整形できる:r! go docの結果を適当なバッファに出力する...

View Article


Datastore Emulatorのエンドポイント

Cloud Datastore エミュレータは起動した後、gcloudコマンドではなくREST APIを使って操作するらしい。が、そのあたりの情報が全然まとまっていなかったので本体の中をチラ見して必要そうなところを調べてみた。cloud-datastore-emulator 2.1.0 Method Path Description GET / OKを返すだけ POST /reset...

View Article


Stackdriverの設定をterraformで管理する

今までアラートポリシーやカスタム指標などのStackdriverの設定をyamlやテキストで保存し、自作ツールで適用するようにしていましたが、自作ツールのメンテナンスが面倒になってきたのでterraformに移行することにしました。移行にあたって、既存の設定ファイルは破棄し、terraformerを使って以下のように再作成しました。1....

View Article

Cloud Datastore用キャッシュパッケージの検討

現在App Engine(Standard Environment) + Go1.11環境*1でgoonというパッケージを利用し、Datastoreのデータをキャッシュしています。goonはバックエンドとしてApp Engineのmemcache*2を使用しており、こちらがGo1.12から使えなくなってしまうので他のパッケージに移行しなければなりません。App...

View Article

VimConf 2019に行ってきた

今年もVimConf 2019に行ってきました。今回はテーマが “how to be more productive with...

View Article

VimのtagfuncでLSPを使う

この記事はVim Advent Calendar 2019の6日目の記事です。今年の4月にv8.1.1228でtagfuncという機能が追加されました。こちらは:tagや:tselectなどのタグ系コマンド*1を実行した時、tagsファイルを検索する代わりに呼ばれる関数を設定するためのオプションです。設定する関数の形式としては次のようなものです。" pattern:...

View Article


goplsでworkspace/symbolが使いたい

現状の最新版(gopls/v0.2.2-pre2)では未実装。daisuzu.hatenablog.comを書いていたら欲しくなったので第1回 ゴリラ合宿で実装したのがコチラ。github.comsymbolの探索はServerのsessionのViews()から...

View Article

packagestestのExported.Expectを使ってGoのソースからマーカーを収集する

golang.org/x/tools/go/packages/packagestestパッケージは静的解析など、Goのソースを読み込んで何かしらの処理を行うようなツールのテスト用にダミープロジェクトを作るためのパッケージです。そういったツールを作る際、テストで期待する結果を完全に決め打ちで_test.goに書いておいても良いかもしれませんが、パターンを増やす時にはダミーのソースとそれに対応する期待結...

View Article


GoでREST APIを呼ぶテストにhttp.FileServerを使う

例えばGET /users/:idのようなAPIの場合、testdata └── users └── 1のように、testdata配下のusersディレクトリにidをファイル名としたJSONファイルを配置しておきます。そうすると、http.FileServer(http.Dir("testdata")) で、testdata配下のパスとリクエストのパスが一致するファイルが存在すれば200...

View Article

gopls(v0.4.0)の機能

goplsは更新頻度が高く、何ができるのかをちゃんと把握できていなかったので、LSPのメソッドベースで今の時点(v0.4.0)の機能をざっと調べてみることにしました。補完(textDocument/completion)ジャンプ系textDocument/definitiontextDocument/typeDefinitiontextDocument/implementationtextDocum...

View Article


Goでprotobufの定義をimportせずにフィールドの値を使う

以下のようなコードでreqにあるフィールドを使いたい場合、opt := grpc.WithUnaryInterceptor(func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption)...

View Article

goplsのSymbolMatcherとSymbolStyleオプション

以下の記事で、workspace/symbolのオプションは補完と同じmatcherと紹介したが、現在のv0.4.4ではsymbolMatcherとsymbolStyleになっている。...

View Article

ISUCON10に初参戦してみた

ゴリラさんと出てみようと話していたものの、申し込みのタイミングを逃してオワタと思っていたら@inductorさんに拾ってもらい、カンガルーと犬とゴリラとしてなんとかISUCON10に参加することができました。当日は開始ちょっと前*1にDiscordとGoogleドキュメントでコミュニケーションすることを決め、...

View Article
Browsing all 44 articles
Browse latest View live


Latest Images