サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
nametake.dev
2020/05/24 11:36:51 WARNING: Deprecated use of 'go_package' option without a full import path in "greeter.proto", please specify: option go_package = ".;main"; A future release of protoc-gen-go will require the import path be specified. See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information. syntax = "proto3"; package helloworld; option go_packa
外部サービスの抽象化 Link to heading 最近のシステムはその複雑さの上昇に伴い、様々な外部サービスと連携する機会が多い。 その際、ドメインとして外部サービスをどう取り扱うといいのか、という個人的なプラクティスを過去の失敗例も含めて記事にしようと思う。 過去の失敗 Link to heading 昔私が関わっていた仮想通貨の販売所の価格判定ロジックを例に挙げてみる。 自社の販売所における仮想通貨の価格を決定する仕組みを作っていた。 複数の外部取引所のAPIから価格情報を取り出してそれらの値を使って自社の販売価格を計算をする必要がある。 販売所の価格の構造体は以下のようにドメイン層に定義していた。
TypeScriptのプロジェクトを作る度に設定すると思うのでメモ。 前提 Link to heading Webpackでプロジェクトを管理している Linterはeslintを使用している tsconfig.jsonの設定 Link to heading tsconfig.jsonのcompilerOptionsを設定してsrc以下のディレクトリに対してエイリアスを貼る。 エイリアスになる文字は何でも良いが、私はnpm経由でimportするmoduleと混同しないように @/ を使用している。 { "compilerOptions": { ~~~ "baseUrl": "./", "paths": { "@/*": ["src/*"] }, ~~~ } } import { Configuration } from 'webpack'; const config: Configurat
普段は Go でサーバサイドのコードを書いているが、TypeScript+React+Redux を勉強する機会があった。 その際、巷のチュートリアルやサンプルコードは型で縛っているものが少なく、理解にかなり苦労したので自分なりの Todo アプリケーションを作るチュートリアルを書いておく。 このチュートリアルは以下のことを意識して書いた。 引数や返り値は型で縛る データフローの理解を重視する 外部ライブラリは以下の 3 つしか import しない react redux react-redux 標準の設計になるべく則る また、この記事では以下のことについては深く言及はしない。 nodeのツールのエコシステム TypeScript の記法 JSX の記法 React+Redux の概念 プロジェクトの準備 Link to heading まずはプロジェクトを準備。 node と yarn
Protocol BuffersのNullの取り扱いの問題 Link to heading Protocol Buffersのproto3の仕様ではmessageの中の値をOptionalで表現する記法がない。 値を詰めずに送ると入れ子の値がデフォルト値になってしまう。 しかし、アプリケーションの設計によってはOptionalな値を表現する必要が出てくる。 そういった時、プリミティブな型ならgoogle/protobuf/wappers.protoを使う方法がある。 以下のように使うことでmsgはOptionalな値として取り扱えるようになる。 syntax = "proto3"; package example; import "google/protobuf/wrappers.proto"; message Example { google.protobuf.StringValue m
nametake/protoc-gen-gohttpというprotocのプラグインを作ったのでその話。 Protocol Buffersとは Link to heading Protocol Buffersはインターフェース定義言語の1つでGoogleによって開発されている(ざっくりいうと、JSONやXMLの仲間)。以下のように、構造を表すmessageとそのmessageを使ったRPCのインターフェースのserviceというものを定義できる。 syntax = "proto3"; package helloworld; option go_package = "main"; message HelloRequest { string name = 1; } message HelloReply { string message = 1; } service Greeter { rpc S
このページを最初にブックマークしてみませんか?
『nametake.dev』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く