Photo by Tim Mossholder from unsplash

この本を購入したのは一年以上前のことだったのだけど、読みかけのまま放ったらかしにしてしまっていた。最近、あらためて最後まで読んでみて、良書だなと思ったので、今日はその紹介を書いていく。

ちなみにこの本は CoPL 本という通称で呼ばれることも多いので、このエントリでもそう呼ぶこととする。

どんな本?

書籍名に「基礎概念」とあるとおり、技術書というよりは教科書に近い。著者の五十嵐先生も京都大学情報学研究科の教授なので、多分ご自身の授業などで副読本として使ってるんじゃなかろうか。 大学の教科書、と書くと難解そうなイメージを持たれるかもしれないけど、高校レベルの数学 + なにかしらのプログラミングの経験があれば十分読み進められる内容と思う。

本の構成としては、文中でプログラミング言語を定義していき、その言語に …


タイトルに深い意味はなくて、思いついちゃったので書いてみただけです。

GraphQL API を設計するときに「クエリの一部がエラーとなってしまった場合に、そのエラー情報をどう伝播させるか」という部分について、悩みの種になりそうだなーといつも思っていたのだけど、実はもう決着がついていそう。

結論を先に書いてしまうと「Partial Error については GraphQL errors field を使わずに、Schema 上で Model として設計しろ」をベストプラクティスとして良さそう。

Facebook Relay がアプリケーションエラーについて下記のように見解を示していたことを社内で教えてもらったのがきっかけ。

If you wish to access error informatio …


Photo by Nelly Antoniadou from unsplash.com

1–3 月

2019 年末から引き続き、1 月中はまだ無職状態(正確には稼働少なめでフリーランス)だったので、空いた時間で ts-graphql-plugin をガリガリ書いていた。新しい職場に join したのは 2 月からで、こっちでも GraphQL の使うことが見えてたってのもある。

ts-graphql-plugin については下記参照のこと。

TS Conf JP のセッションでも、この OSS をネタに話す予定で資料などを書いていた。

ただ、開催直前に新型コロナの影響で TS Conf JP が中止になってしまったため、資料は完全にお蔵入り状態になってしまった。供養の意味もこめて資料のリンクだけ貼っておく。

3 月中旬ころからフルリモート勤務に移行。

4–6 月

コロナでの古リモートで通勤時間が消滅したこともあ …


これは GraphQL Advent Calendar 2020 の 24 日目の記事です。

はじめに

前回の defer/stream の記事は途中で力尽きてしまったため、クライアント側の処理についてはあまり多くを書けなかったので、この投稿で続きを書いていこうと思う。 アドカレの担当を途中で 2 つに増やしたから記事を分けようとかそういうセコいあれではないよ!

クライアント側の処理、それも React 限定の話だ。 @defer / @stream の「サーバーからちょっとずつデータが届けられる」という特性と、React の Suspense for data fetch の関係を考えてみたい。

なお、 @defer@stream と毎回ディレクティブ名で言及するのが面倒なので、こちらについては I …


これは Recruit Engineers Advent Calendar 2020 の 23 日目の記事です。

アドカレの 1 日目も Puppeteer の話を書いてたのだけど、別にその続きとかではまったくなくて、少し前に Puppeteer のカバレッジ関連でドハマリしたのでそれを書こうと思う。

背景

他のところで散々書いてきているので、軽く触れる程度にしておくが、 https://github.com/reg-viz/storycap というツールの開発・メンテをしている。Puppeteer で Storybook をクローリングして各 Story を PNG 画像にする、ただそれだけの CLI だ。

このツールは画像ベースの回帰テストを自動化する目的で作られていて、日々の業務でも reg- …


これは GraphQL Advent Calendar 2020 16 日目の記事です(しかも 12 日目の記事と結構内容が被ってしまって切ない…)

このエントリでは、GraphQL の @defer@stream というディレクティブについて書いていく。色々書いていたら割と長くなってしまったが、内容は下記のとおり。

  • このディレクティブの登場背景
  • ディレクティブの Spec
  • graphql-js を用いた利用サンプル

@defer / @stream とは何か

@defer@stream は共にデータの取得方法を制御するためのディレクティブだ。名前が示すとおり、クエリ全体から特定の箇所の読み込みを遅延させたり、ストリーミングさせることができる。2020 年末現在、GraphQL spec としては Stage 2(草案段階)であ …


Photo by Antonio Batinic from Pexels.com

これは Angular Advent Calendar 2020 8 日目の記事です。

Angular と Linter

Angular: ESLint サポートの現状 2020 Autumn にあるように、Angular CLI v12 から TSLint が deprecated 扱いになる。

TSLint とともに使われてきた Codelyzer で提供されてきた Rule については、今後は angular-eslint が提供していくことになる。実際、多くの Codelyzer ルールが angular-eslint に移植済みだ。


Puppet
Puppet
Photo by Olia Gozha from unsplash

これは Recruit Engineers Advent Calendar 2020 の 1日目の記事です。

先日、社内の技術共有会で https://github.com/puppeteer/recorder という npm パッケージの話が挙がったのだけど、ここで登場する ARIA Handler という機能が面白い内容だったため、それを書いていこうと思う。

https://developers.google.com/web/updates/2020/11/puppetaria で触れられている内容と重複する部分も多いため、先に参考として挙げておく。

また、Puppeteer の Undocumented な機能であったり、CDP の Experimental な機能への言及となるため、その点は …


はじめに

TypeScript 4.1 で新しく増えた --generateTrace という TypeScript Compiler の profile を取得するオプションについて。

TypeScript 4.1 beta でもすっ飛ばされていたネタなので、多分あまり注目されていないだろうし、 僕もたまたま PRs を眺めていたら見つけた程度だし、他の feature と比べるとかなりニッチなのだけど、個人的に面白かったのでエントリに残しておく。

なぜ僕が今回のオプションに惹かれたかとういうと、 3 ヶ月くらい前に、仕事でやっている TypeScript のプロジェクトについて「ローカルでの tsc が遅い!なんでだ!」って感じで憤ってた時期があって、 どこにボトルネックがあるか調べようと思ったことが …


TypeScript 4.1に Template String Typesという機能を追加するPRが上がっていて、新しいおもちゃを与えられた犬となって色々遊んでしまった。

Template String Types is 何

Template String Typesで何ができるか的な話については、まぁhttps://github.com/microsoft/TypeScript/pull/40336 を見るなりしてもらえばいいんだけど、端的にいうとJSのTemplate stringよろしくLiteral TypeをTemplateで合成した結果を型として扱えるようになる機能。

type GetterName<T extends string> = `get${capitalize T}`;
type T10 = GetterName<'foo'>; …

Yosuke Kurami

Front-end web developer. TypeScript, Angular and Vim, weapon of choice.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store