きみはねこみたいなにゃんにゃんなまほう

ねこもスクリプトをかくなり

Programming

Go の struct と interface で Embedding

Effective Go の Embedding の内容を試してみます。 Go では embedding を利用して継承のようなことができますが、struct と interface の違いが今ひとつ理解できていなかったため、実際にコードを書いてコンパイラに怒られながら、どういう違いがあるのか試…

dataloader を使ってリクエストを取りまとめる React デモを作る

以前 GraphQL を利用していたときに、サーバサイドのSQLリクエストを減らすために使おうとしていたパッケージに dataloader というものがあります。 現在は GraphQL ではなく gRPC-Web を利用したアプリを書いているのですが、dataloader は別に GraphQL に…

Rubyist じゃないけど Vagrantifile を読みたい

(=˘ ꒳ ˘=) kubernetes を試そうと Vagrant のリハビリしようとしたら Ruby の表記を思い出すのに手間取ったの巻... Multi-Machine - Vagrant by HashiCorp の Vagrantfile を例に、初見で読み方に困ったところを思い出しながら書き留めておきます。 Vagrant…

Bundler の bundler/setup と bundle exec

(=˘ ꒳ ˘=) Ruby のコードちんぷんかんぷんで読みづらい... import やら require やら load やら色々読み込みの構文があるのに加えて、どのライブラリから来た定義なのかが追いづらかったり... ...という愚痴は置いておいて、Ruby のモジュールシステムを別…

GraphQL Schema Language 中の description がコメントから block string に変わった

graphql-tools の makeExecutableSchema のコードを読んでいて commentDescription なる項目が気になり、さらに utilities/buildASTSchema.js を見ていて export type BuildSchemaOptions = { ...GraphQLSchemaValidationOptions, /** * Descriptions are de…

graphql-tools の makeExecutableSchema で Directive を定義して簡易認可を実装してみる

Schema directives | GraphQL Tools によると graphql-tools の makeExecutableSchema で Directive を実装できるようなので 簡易的な認可ロジックを実装してみます。 あくまで Directive のハンズオンなので認可ロジックはとても簡単なものです。 認証情報…

GraphQL Schema Language で Directive を定義する

(=˘ ꒳ ˘=) GraphQL Schema Language 内で Directive を定義する方法を探していたのですが、公式にドキュメントが見つからなかったのでメモしておきます... directive @myDirective(age: Int) on FIELD のように Directive を定義できるようです。 import { …

GraphQL の Custom Directive について

(=˘ ꒳ ˘=) GraphQL のラストフロンティア Custom Directive にもそろそろ手を出してみたい... ここまで趣味で GraphQL のいろいろな要素を見てきました。 実行時のパラメータとして GraphQLSchema、queryString、rootValue、context、variables、 スキーマ…

GraphQL の色々なスキーマ表現について - GraphQL Schema Language や schema.json

(=˘ ꒳ ˘=) GraphQL のスキーマ表現いろいろ多すぎ... で Introspection について眺めたら GraphQL のスキーマ表現について整理できてきたのでまとめてみます。 GraphQL のスキーマ表現 GraphQL Schema Language GraphQL.js の GraphQLSchema Introspection …

GraphQL.js で Custom Scalars を定義する - まずは serialize から

(=˘ ꒳ ˘=) GraphQL.js の TypeScript の定義を眺めながらなんとなくな雰囲気で Custom Scalar を定義してみる ...GraphQL.js の GraphQLScalarType を使います。コンストラクタの引数は以下のようになっています。 export interface GraphQLScalarTypeConfig<TInternal, TExternal></tinternal,>…

GraphQL の Introspection について - schema.json って何だろう

(=˘ ꒳ ˘=) GraphQL を使っているとよく schema.json などと名付けられた JSON 形式のファイルを利用している例に突き当たる... この schema.json ってなんだろうというお話。 schema.json - Apollo の場合 GraphQL の Introspection Standard Introspection…

graphql-subscriptions を使ってみる - WebSocket に乗せてみる

(=˘ ꒳ ˘=) GraphQL の Subscriptions の道ってなんでこんなに険しいのか... import 地獄すぎる... の続きです。Adding Subscriptions To Schema | GraphQL Subscriptions Docs をベースに Subscription のハンズオンを行なっていきます。 今回は本当に最低…

JavaScript の Symbol から Async Iterator に至る道

(=˘ ꒳ ˘=) 最近 Async Iterator ってなんじゃらほいで理解がストップすることが多い... ...あたりの投稿で Async Iterator についてちゃんと理解したいと思ったので、主にMDNをソースにお勉強していきます。 Symbol について Iterator について Iterable Pr…

GraphQL.js を直接使って Subscription を定義してみる

(=˘ ꒳ ˘=) Apollo が目につきやすい GraphQL 界隈だけどやっぱり GraphQL の生の鼓動を感じたい... lightbulbcat.hatenablog.com の続きです。GraphQL.js のコードの中に Subscription についての処理が書かれているのを見つけたので、今回は subscribe メ…

graphql-subscription を使ってみる - まず PubSub って何

apollographql/graphql-subscriptions を使ってみたくて README の通りのコードを書いて理解しようと思ったのですが、PubSub やら AsyncIterator やら軽く聞いたことはあるもののよく理解していない用語だらけでちんぷんかんぷんでした。なので GraphQL の r…

GraphQL.org から Subscription に関する情報を追いかけてみる

(=˘ ꒳ ˘=) GraphQL では Query と Mutation 以外にもう一つ、Subscription というものが使えるらしい... ...という噂を聞いてはいたのですが別に Query と Mutation だけでもある程度の機能は実現できるしいいやと思いながらここまでやってきました。でもや…

GraphQL.js の graphql で使われる引数(variables, context) の動作を確認する

(=˘ ꒳ ˘=) GraphQL って「何をするもの」であって「どう実装される」想定のものなのか、まだなんかよくわからない... 少し前に graphcool-framework がオープンソース化しましたし、そういうのを見ればベストプラクティスのようなものをトップダウンに得ら…

graphql を実行しながら GraphQLSchema と resolver、rootValue まわりの評価の仕組みを考える

lightbulbcat.hatenablog.com の続きです。前回は graphql と graphql-tools について、結構な量のメソッドやクラスを駆け足で読み解きながら、なんとなく GraphQL 界隈のパッケージの局所像を掴んだのでした。 今回はもう少しまったりと graphql パッケージ…

GraphQL の主要ライブラリと resolver、schema、rootValue についてざらっと眺めてみる

(=˘ ꒳ ˘=) resolver と rootValue って何が違うんだろう... makeExecutableSchema って何なんだろう... ...な記憶も新しく、むしろ現在進行形で混乱中ですが、めげずに公式サイト等眺めながら理解を進めていきたいと思います。 GraphQL 系パッケージまとめ …

GraphQL + Express の基本的なライブラリまとめ

例えば 「Express で GraphQL のHTTPサーバを立てる」として、いざネットでサンプルを探してみると graphql で express なパッケージって結構な種類を見かける気がするんですよね。 今まで特に違いを意識せずにサンプルコードからのコピペで済ませていたので…

Rails を使ってみる

はてなブログを書いてみるのとRailsを使ってみるテスト。 http://guides.rubyonrails.org/getting_started.html を見ながら始めていきます。