GraphQL ロゴGraphQL

Google Summer of Code 2020 参加者:Naman

6/30/2020byNaman Kumar

GSOC 2020

Naman Kumarは、インドのニューデリー出身のコンピュータサイエンス&エンジニアリングの学生で、ProductHuntのフルスタックエンジニアです。彼は、Ivan Goncharov氏の指導の下、Google Summer of Code 2020 - GraphQL Foundation に選出されました。この記事では、彼がこの夏、GraphQL Foundation にどのように貢献していくかの計画を共有します。

こんにちは。GraphQL は、私が職場や、200人から200万人のユーザーを持つプラットフォームを構築する他のプロジェクトで毎日使っている技術です。私は開発速度を大幅に向上させ、初心者にとってドキュメントのオーバーヘッドを取り除くことができることを認識しており、間違いなく気に入っています。

私はオープンソース組織を非常に尊敬しており、開発者の生活を楽にするために GraphQL コミュニティ全体が行っている活動に非常に感銘を受けています。私は常に GSOC に参加したいと思っていましたが、それは全ての学生の夢だと断言します。

GSOC での Graphql Foundation の受け入れについては、Ivan が GraphQL Asia Submit 2020 で行った講演で知りました。私だけでなく、地球上の何十億人もの人々が使用するアプリケーションを支えているツールに貢献する機会を得たことに、本当に興奮しました。

コンパイラ設計に強い関心を持っていたため、graphql.jsリファレンスパーサーのプロジェクトは非常に興味深く思えました。幸運にもこのプログラムに選ばれたので、2020年の夏は、Graphql.js リファレンスパーサーとGraphiQL パーサーの統合に取り組む予定です。Graphql.js リファレンスパーサーには、ストリーミングサポートや最適なエラーリカバリーの設定がありません。目標は、GraphiQL パーサーからインスピレーションを得て、リファレンスパーサーにストリーミングサポートを実装し、IDEや他の開発ツールで使用できるようにすることです。

コミュニティボンディング期間は、graphql コミュニティの人々と知り合い、プロジェクトに慣れることに費やしました。コードベースを調査し、Ivan の助けを借りていくつかの小さなバグを修正しました。きちんとメンテナンスされている graphql.js リファレンスパーサーは、非常に優れたコード品質と可読性を備えており、理解を深めるのに非常に役立ちました。一方、わずか1000行の純粋な「古き良き」コードベースで、3年前に実装された GraphiQL パーサーは、最初は理解するのが難しいように見えますが、きちんと理解すれば非常にシンプルでかわいいステートマシンです。

Ivan と私はまた、プロジェクト全体を3つのマイルストーンに分割し、それらをより小さな目標に分解することについてアイデアを出し合いました。graphiql パーサーは積極的にメンテナンスされておらず、テストカバレッジがゼロであるため、変更を加える前にパーサーを完全にカバーすることが非常に重要でした。私たちの目標は、graphql.js パーサーが IDE で使用できるようにすることであり、そのためにパフォーマンスは重要な要素です。それを考慮して、GraphiQL パーサーのベンチマークも行うことにしました。したがって、最初のマイルストーンには、GraphiQL パーサーの 100% テストカバレッジの達成と徹底的なベンチマークが含まれます。

次のステップは、graphql.js リファレンスパーサーの字句解析器を GraphiQL パーサーで使用し、パーサーをマージする計画を立てることです。graphql.js パーサーが GraphiQL パーサーと同等の機能を達成したら、GraphiQL IDE を graphql.js パーサーを使用するように移行できます。最初のマイルストーンの完了に近づいていますが、Ivan の指導の下で新しいことを学んだことを非常に嬉しく思っており、今後のタスクに取り組むのが非常に楽しみです。

Naman Kumar, GSOC 2020, Graphql Foundation