この記事はJX通信社Advent Calendar&GraphQL Advent Calendarの1日目です。 JX通信社でNewsDigestというアプリを開発しているyamitzkyです。 NewsDigest では、アプリから利用する API に GraphQL を利用 しています。本番での利用を始めてからちょうど1年を過ぎました。 JX 通信社ではプログラミング言語として Python が使われることが多く、この GraphQL API も Python で作ってサーバーレス環境(AWS Lambda)にデプロイ していました。しかし、Lambda では要件が合わなくなってしまったため、現在では Amazon ECS で作った Docker クラスタ内で動いています。また、非サーバーレス化に合わせて、パフォーマンス要件を満たすために Go でのリプレイスを行いました。 この マイ
ECMAScript Annex Bおよび関連する仕様を読みます。 おことわり 言うまでもありませんが、ここで説明されている機能は使わないようにしましょう。 筆者がJavaScriptを書き始めたのは2005年頃で、その後2010年代は実質的な空白期間でした。そのため本記事に含まれる歴史的背景の説明は、2005年頃の筆者が学んだ内容に加えて、当時の資料を遡って調査した結果に基づいて記載されています。できる限り信頼性の高い情報を見つけた上で記述するよう心がけましたが、当時常識だった知識の欠落等により不正確な記述になっている部分があるかもしれません。もし誤り等があったら指摘いただけると嬉しいです。 現在のzennでは <sub></sub> や <ins></ins> は描画されていませんが、心の目で下付き文字や下線装飾に読み替えてください。 ECMAScript Annex B とは ECM
gRPC 上で GraphQL を扱う GraphQL over gRPC 的な処理を Node.js で試しに実装してみました。 今回のコードは http://github.com/fits/try_samples/tree/master/blog/20201124/ はじめに GraphQL はクエリ言語なので基本的に通信プロトコルには依存していません。 Web フロントエンドの用途では Apollo GraphQL が公開している GraphQL over WebSocket Protocol が有力そうですが、マイクロサービス等の用途で GraphQL を利用する事を考えると WebSocket よりも gRPC の方が適しているように思います。 GraphQL の Query や Mutation は gRPC の Unary RPC で実現可能 GraphQL の Subscr
(Update Nov 4 2015: Huge breaking changes in the API to improve readability and usability of the package ) This will be the first in a multi-part series tutorial introducing Golang to Facebook’s GraphQL and Relay. This week, we will start off with a simple but very achievable goal: to build a GraphQL server in Golang. We’ll introduce a couple of useful Golang packages along the way that will help
Published 2022/01/16 16:59 (JST) Updated 2022/01/16 17:17 (JST) 絶版本など入手困難となっている貴重な書籍や資料をインターネットで閲覧できるサービスが、5月から国立国会図書館のウェブサイトで始まる。現在は同館や他の図書館に足を運ばねばならないが、自宅のパソコンやタブレット端末でも見られるようになる。 国会図書館が保有する「入手困難資料」のうち、電子データ化が済んだものが対象。漫画や商業雑誌などは除外される。本人確認のため身分証明書を示し、個人として同館の利用登録をすることが必要となる。サービス開始当初は閲覧機能しかないが、不正コピー対策を講じた上で来年1月には印刷できるようにする予定。
(=˘ ꒳ ˘=) GraphQL を使っているとよく schema.json などと名付けられた JSON 形式のファイルを利用している例に突き当たる... この schema.json ってなんだろうというお話。 schema.json - Apollo の場合 GraphQL の Introspection Standard Introspection Query GraphQL スキーマの表現形式の比較 GraphQL Schema Language (.graphql) GraphQL.js の GraphQLSchema Introspection Result (.json) schema.json - Apollo の場合 例えば apollo-codegen の使い方を見てみると // schema.json 生成 apollo-codegen introspect-sc
Go Conferenceは半年に1回行われるプログラミング言語Goに関するカンファレンスです。 山本氏は、GoのGraphQLクライアントライブラリ生成ツール「gqlgenc」について発表しました。全2回。前半は、GraphQLの概要と「gqlgenc」作成の経緯について。 GoのGraphQLクライアントライブラリ生成ツール「gqlgenc」を作成山本祥太氏:『gqlgencを作成した』というタイトルで発表していきたいと思います。よろしくお願いします。僕の名前は山本祥太と言います。ふだんは株式会社Appify TechnologiesでGAE(Google App Engine) Goを使ったサーバーサイドの開発や、React、TypeScript、ApolloでWebフロントの開発を行っています。Twitter、GitHubのIDはこちらなので、もしよかったらフォローをよろしくお願い
macOS の Accessibility Options で Mouse Keys を有効にすると, キーボードを使って, ポインタを操作することができます. なのでトラックパッドやマウスを操作できない人でも, ポインタを操作できるように, という機能です. またキーボードでの操作により, ポインタを 1 ピクセル単位で細かく正確に動かすことができるので, ポインタを使って細かい作業をする必要がある時にも重宝する機能です. 今回の macOS のバージョンは 10.13.5 でコードネームは High Sierra になります. Mouse Keys を有効にする macOS でキーボードでポインタを操作するために, まず Mouse Keys を有効にする必要があります. Mouse Keys を有効にする方法はいくつかありますので, それぞれの方法を紹介します. Accessibil
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 初投稿です。 筆者スペック 19歳 高卒 某大手自動車メーカー関連会社勤務 エンジニア志望 (Web開発勉強中) 業務の効率化(データ整理・画像処理など)でPythonを書くことがあります。Python歴は半年程度です。 英語学習について、 どのように学習してきたのか記録を残すため 「TOEICのスコアを伸ばしたい」と考える方にとって少しでも参考になれば と思い、記事を書くことにしました。 英語学習の動機 「エンジニアには英語が必要」 論 エンジニア/エンジニアになりたい方なら、1度は「エンジニアに英語は必要か」という議論を目
セキュリティ機能が組み込まれた Fastly の最先端ネットワークでコンテンツを安心して高速配信し、競争力を強化
(images: github.com/egonelbre/gophers) こんにちは。 データエンジニアリンググループ(CETチーム)の寺下です。 自分の所属するCETチームでは今まで主にScala、Pythonなどを使ってAPIや基盤を実装してきましたが、最近では徐々にGoによる実装も増えてきており、GAE/GKE上で本番運用を行っています。 本記事ではGoのプロダクトにおいてDDDライクなpackage構成で実装する際の注意点や、汎用的に通用するであろう実装のTipsについて書いていきます。 本記事で紹介する例がベストプラクティスだというわけではありませんので、あくまで実装の一例程度に捉えて頂けると幸いです。 Goのアーキテクチャ Goは言語仕様がシンプルかつフォーマッタが強力なため、syntaxレベルでは開発者によってコードの品質がブレにくいというメリットがあります。 しかしなが
Tweet はじめに GolangのORMである SQLBoiler を紹介します。 今回はSQLBoilerをセットアップするところまでやってみます。 SQLBoilerとは DBのスキーマ情報を読み取って、そこからstructやそれらのレシーバを自動生成してくれるORMです。 自動生成の対象にはFK成約やUnique成約を考慮して、one to one や one to manyの関数を自動生成してくる素敵なORMです。 リフレクションなどを使っていないため、他のORMと比較しても動作が早いようです。ベンチマーク結果は 公式サイト を参照ください。 また、エラーや使い方など、何か困ったことがあっても自動生成されたコードを読めば大体わかるのもいいところです。 同じようにスキーマ情報からstructなどを自動生成するORMに XORM があります。 XORMも少し使ったことがあるのですが、
Go 言語で sorted list がほしかったC# だと SortedList Class のような順番が保証されているデータ構造があったりするのだが、Go 言語では標準パッケージやメジャーなパッケージになさそうだったので、自分で実装することにした。 go-zen-chu/time-sorted-list: Golang time sorted list 使いどころログの集計を時間単位で行うプログラムにてこのデータ構造の利用しようとしているが、時系列にそろえておきたいということは幾度と発生しそうだったのでデータ構造として切り出した。 例えば、 ログをオンメモリで保持しておき、その中の特定の時間帯のログを取得したいストリームデータのうち、新しいデータを残し続けるようにしたいというようなときに使えるのではないかと考えている。また、時系列データは動かしていると どんどんメモリを圧迫していく
2021年7月現在、goでエラーハンドリングってどうやって扱うのが無難なのかについて、いろいろと調べました。 昔から人気な pkg/errors、Go公式がメンテナンスしていたxerrors、 go v1.13から追加されたfmt.Errorfなどエラーハンドリングの選択肢がいろいろとあるので、stacktrace欲しい場合とそうでない場合で個人的にベストだと思った方法をまとめました。 エラーハンドリングに求める要件 エラーが発生した箇所を追える エラーの原因によって処理を分岐する (場合による)stacktraceがみれる 結論 stacktraceが不要な場合 fmt.Errorfでラップし、errors.Isで判定する stacktraceが必要な場合 pkg/errors.Wrapでラップし、pkg/errors.Causeで判定する log.Printf("%+v", err)で
Go’s last standing major weakness is error handling. A few years ago the list was much longer, with the language missing an adequate package manager, system for pulling static assets into a binary, and generics. But now, the first two have already been addressed with Go Modules in 1.11 and go:embed in 1.16, and generics are expected to be in beta form by Go 1.18’s release in December. Errors are t
こんにちは、Infrastructure Squad でエンジニアをしている田中です。 今回はGo言語での開発を行うエンジニアのために社内で運用している GoDoc について紹介します。 この記事は Go3 Advent Calendar 2019 の6日目です。 なぜ社内 GoDoc が必要なのかGo言語公式のGoDoc は公開リポジトリであれば特に何もせずドキュメントを見ることができますが、社内に閉じているようなプライベートリポジトリでは見ることができません。 Wantedly ではプロダクトのコードを GitHub のプライベートリポジトリで開発しているため公式 GoDoc は使えず、少し不便ですがコマンドライン上でドキュメントを閲覧していました。 社内ではマイクロサービス化の推進により目的に合わせて言語が選べるようになったことで Go を書く人口が増えたり、各サービスから利用する共
わかりましたか?よくわかりませんよね?まあ、godocとgo docは同じドキュメントツールですが、別のツールです。本家と元祖みたいなものとして、長らく平行で提供されてきました。ちょうどこの記事を書いている少し前にリリースされた1.11で、godocの方がウェブだけになるとリリースノートに書かれました。 また、godoc.orgのサーバーはローカルのgodocコマンドよりも機能が増えていたり、テンプレートが微妙に違ったりします。とはいえ、ドキュメントを書くときはこれらの違いはそこまで気にすることはありません。 2020/09/19追記: 現在はpkg.go.devが稼働を開始し、godoc.orgのページにアクセスするとこちらへのリダイレクトをするかどうかを問い合わせるバナーが出ます。将来的にはこちらに一本化されると思います。開発者が行うべきこと、記述すべきことは差はありません。このドキュ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く