タグ

kwryのブックマーク (7,486)

  • RailsのAPIにHATEOASを散りばめてみる : RESTの拡張、HATEOASの詳解と実装例 | POSTD

    概念としてとしてのRESTは、 Roy Fielding が博士論文「 Architectural Styles and the Design of Network-based Software Architectures 」で導入したものです。その16年後、アーキテクチャとしてのRESTは、APIを設計・構築するための最も広く受け入れられた方法となっています。RESTについては私たちはみんな聞いたことがありますし、自分たちが実際にRESTfulなAPIを構築しているとほぼ皆が思っています。しかし、それは当でしょうか? 「RESTとは何か?」ということを自分たちにもう一度思い出させたうえで、さらにRESTを補う別の方法、「HATEOAS」と呼ばれるものの話に続けていきましょう。 RESTとは何か?をもう一度 私はこれを説明するための良い方法について考えていたのですが、Ryan Tomak

    RailsのAPIにHATEOASを散りばめてみる : RESTの拡張、HATEOASの詳解と実装例 | POSTD
    kwry
    kwry 2016/07/31
  • REST Cheat Sheets

  • 美ヶ原高原 星空へ続く宿 山本小屋ふる里館【公式】ベストレート保証

    絶景体験と おもてなしの宿。 長野県 信州 美ヶ原高原「山小屋ふる里館」。 豪華なホテルでもない、おしゃれな温泉旅館でもないけれど、きら星のような「小さな宿」でありたい…。 ビーナスライン終点2,000m美ヶ原山頂で信州の四季を満喫でしませんか。 ご家族やカップル、お友達、で雄大な景色とともに幸せなひとときをお過ごしください。 無料ツアーTOUR EVENTS ご宿泊のお客様だけに、特別なツアーをご案内します。 山小屋の名の通り標高の高い場所にあるため、 雲海や星など通常なら登山しないと味わえないような景色を眺めることができます。

    美ヶ原高原 星空へ続く宿 山本小屋ふる里館【公式】ベストレート保証
    kwry
    kwry 2016/07/30
  • Advanced Testing with Go

    This talk goes over the testing practices I've learned over the years of using Go and building tools at HashiCorp. The practices range from basic to adv…

    Advanced Testing with Go
    kwry
    kwry 2016/07/25
  • Go1.7のcontextパッケージ

    Go1.7ではgolang.org/x/net/contextがcontextパッケージとして標準パッケージに仲間入りする.そしていくつかの標準パッケージではcontextパッケージを使ったメソッド/関数も新たに登場する.contextパッケージは今後さらに重要な,Gopherは普通に扱うべき,パッケージになると考えられる.記事ではそもそもcontextパッケージとは何か?なぜ登場したのか?なぜ重要なのか?どのように使うべきか?についてまとめる. contextパッケージが初めて紹介されたのは2014年のThe Go Blogの記事 “Go Concurrency Patterns: Context”である.この記事ではなぜGoogleがcontextパッケージを開発したのか,どのように使うのか具体的な検索タスクを例に解説されている.まだ読んだことがない人はそちらを先に読むと良い. co

    kwry
    kwry 2016/07/25
  • Practical advice for Go library authors

    Practical advice for Go library authors Writing better libraries 14 July 2016 Jack Lindamood Software Engineer, Twitch Goal of this talk Many ways to do common things Which way is preferred and why Common pitfalls of Go libraries What I wish I knew 2 Naming things 3 General naming advice Generally imports are not renamed Standard practice is PACKAGE.FUNCTION() Think of package as part of the name

    kwry
    kwry 2016/07/20
  • RFC 7234 — HTTP/1.1: Caching (日本語訳)

    【 この~RFCは、 今や,`現在の~HTTP中核~仕様@~HTTPcommon#core-specifications$( ~RFC 9111 )により廃用にされた。 】 ◎要約 ~HTTP( Hypertext Transfer Protocol )は、分散型の協調的な~hypertext情報~system用の、`~stateless$な~app~levelの~protocolである。 この文書は、 ~HTTP~cacheと~~関連の[ ~cacheの挙動を制御する/ ~cache可能な応答~messageを指示する ]各種~headerを定義する。 ◎ The Hypertext Transfer Protocol (HTTP) is a stateless application- level protocol for distributed, collaborative, hyp

  • ETagを使ってSpringとHibernateの転送量と負荷を削減する

    もちろん、パフォーマンス最適化の至言「二度測ってから切れ」が適用されます。おっと、いや、これは大工の格言でしたが、しかし私たちにも同様に役立ちます。 Content Body ETag フィルタ 私たちが見る最初のアプローチは、ページコンテンツすなわちMVCのViewに基づくETagトークンを生成するサーブレットフィルタの作成です。一見したところ、このアプローチで得られるパフォーマンスの向上は直感的でないように思えるかもしれません。私たちは相変わらずページを生成しなければなりませんし、それにトークンを生成する計算処理が加わります。しかし、このアイデアは転送量を減少させるためのものなのです。クライアントが地球の反対側からアクセスしている時など待ち時間の大きな状況で、このアプローチは特に有益です。私は、東京のオフィスで利用されるアプリケーションをニューヨークのサーバにホスティングしているケース

    ETagを使ってSpringとHibernateの転送量と負荷を削減する
    kwry
    kwry 2016/07/18
  • 親に知ってほしい受験勉強

    小学校以降〜大学受験まで、学年に関係なく、受験を控えている or 受験をするかもしれない子どもの親に向けて、親にこそ知っておいて欲しい効率的な勉強方法を有給ニート中の有り余るヒマを注ぎ込んでまとめてみたスライド。Read less

    親に知ってほしい受験勉強
    kwry
    kwry 2016/07/17
  • JSON PointerとJSON Patch - Qiita

    AWSAPI Gatewayを試していたところ、API(API Gatewayの)でJSON Patchなるものを使うことになりました。よくわからんちんでしたが、RFCが出ているということなので読んでみました。以下メモ。 RFC JavaScript Object Notation (JSON) Pointer JavaScript Object Notation (JSON) Patch overview JSON PointerはJSOCドキュメント中の位置を表す仕様。XMLのXPathみたいなもの。 ABNFで書くと json-pointer = *( "/" reference-token ) reference-token = *( unescaped / escaped ) unescaped = %x00-2E / %x30-7D / %x7F-10FFFF つまり%x2F

    JSON PointerとJSON Patch - Qiita
    kwry
    kwry 2016/07/15
  • Reload, reloaded

    Publicly shared Author: kenjibaheux@chromium.org, toyoshim@chromium.org Reload, reloaded Background Chrome is apparently performing a lot of unwarranted revalidations. While it might not explain it all, we found out a couple of contributing factors. As we looked into the code to find more cau...

    Reload, reloaded
  • Cache-Control の Immutable 拡張によるリロード時のキャッシュ最適化 | blog.jxck.io

    Intro ブラウザはリロード時に、 max-age に満たないキャッシュを持っていても Conditional GET によってキャッシュの Validate (有効性の問い合わせ)を行う。 Cache-Control Extension として提案されている Immutable 拡張は、キャッシュが max-age 内であればリロード時もキャッシュヒットさせる拡張である。 このヘッダの効果と、サイトへの適用について記す。 Cache-Control Cache-Control に max-age を指定することで、ブラウザにリソースをキャッシュさせることができる。 このキャッシュは max-age の期間内は fresh とみなされ、 fresh であればサーバへの問い合わせなく再利用される。 サーバへの問い合わせ(RTT)が無いため、事実上最速のリソース取得となる。 Reload

    Cache-Control の Immutable 拡張によるリロード時のキャッシュ最適化 | blog.jxck.io
    kwry
    kwry 2016/07/14
  • たぶんみんな間違っていないgolangのHTTP Respose Bodyの閉じ方 - Qiita

    ネット眺めているとたぶんみんな間違えてる golang の HTTP Respose Body の閉じ方というエントリが流れてきたけれど、多分みんな間違っていないという話。 元エントリでの話 net/httpのResponseを撮るときに、errorがnilであることを確認するだけでは不十分で、Responseがnilかどうかを確かめたほうがよいというエントリ。すなわち、 resp, err := http.Get("http://golang.org") if err != nil { return err } defer resp.Body.Close() resp, err := http.Get("https://api.ipify.org?format=json") if resp != nil { defer resp.Body.Close() // ← ここで nil じゃな

    たぶんみんな間違っていないgolangのHTTP Respose Bodyの閉じ方 - Qiita
    kwry
    kwry 2016/07/13
  • APIゲートウェイアーキテクチャ | オブジェクトの広場

    稿は、オージス総研の米国法人「OGIS International」が社内向けに米国のIT動向を報告する「Silicon Valley Report」を、オブジェクトの広場向けに加筆修正したものです。 はじめに 稿では、クラウドインテグレーションのためのアーキテクチャのひとつであるAPIゲートウェイについて解説します。 APIゲートウェイはクラウドインテグレーションの要素技術として非常に重要で、iPaaSはこれを実現するプラットフォームとして注目されています。 APIゲートウェイとは APIゲートウェイとは、Web APIを使ったクラウドインテグレーションのためのアーキテクチャスタイルのひとつです。 企業ネットワーク内にデプロイされたアプリケーションとインターネット上のパブリックなクラウドサービスとの間に、ゲートウェイとして機能するコンポーネントを配置し、すべての通信をそのゲートウェイ

    APIゲートウェイアーキテクチャ | オブジェクトの広場
  • Golangで関数をグローバル変数に代入してテスト時にスタブする - 小野マトペの納豆ペペロンチーノ日記

    こんにちは、小野マトペです。タイトル全部です。 昨日、現在時刻によって条件分岐するロジックを含むGoプログラムを書いていて、どうテストするか困ったのですが、うまい(と思う)やり方を思いついたのでここに書いておきます。 書いていたのはまあだいたいこういうソースコードです。 // main.go package main import ( "fmt" "time" ) func main() { fmt.Println(Greet("マトペ")) } func Greet(n string) string { t := time.Now() if 6 <= t.Hour() && t.Hour() <= 18 { return fmt.Sprintf("こんにちは%sさん。今は%d時ですよ!", n, t.Hour()) } else { return fmt.Sprintf("こんばんは%s

    Golangで関数をグローバル変数に代入してテスト時にスタブする - 小野マトペの納豆ペペロンチーノ日記
    kwry
    kwry 2016/07/12
  • Go言語で API サーバーを開発する | カメリオ開発者ブログ

    こんにちは!白ヤギの開発者、森です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

    Go言語で API サーバーを開発する | カメリオ開発者ブログ
  • OAuth2 Token Exchangeのサンプルを見てみた - Qiita

    RFCに載ってるサンプル まだDraftですがOAuth2のトークン交換のためのプロトコルが公開されています。 この仕様を利用することで、ベースとなる共通のトークンを1つだけ発行し、それを各コンポーネントで共有するといった設計が可能となります。 RFCにサンプルが載っているので、見てみましょう。 このサンプルでは、アプリとバックエンドサーバの間をフロントサーバが仲介し、トークンの交換を行うというシナリオになっています。 アプリがフロントサーバに、リクエストを送る GET /resource HTTP/1.1 Host: frontend.example.com Authorization: Bearer accVkjcJyb4BWCxGsndESCJQbdFMogUC5PbRDqceLTC "accVkjcJyb4BWCxGsndESCJQbdFMogUC5PbRDqceLTC"が交換元と

    OAuth2 Token Exchangeのサンプルを見てみた - Qiita
    kwry
    kwry 2016/07/05
  • 計算機基礎論

    集合論の基礎(1) 集合演算、デカルト積 (教科書:1.1~1.3) 藤田 聡 (広島大学) 集合と要素 対象(object)の集まりを集合(set)という 集合を構成する対象を、集合の要素 (element)、または元という 例: Vを英語の母音の集合とすると、 V ={ a,e,i,o,u }であり、 たとえばaはVの要素 集合はその要素を含む(contain)あるいは 要素は集合に属す(belong to)という 要素aが集合Sに属すとき、a∈Sとかく 2つの集合A,Bが条件a∈A ↔ a∈B を満た すとき、AとBは等しい(equal)といい、A=B と記す 例 要素を明示することによって集合を表記す ることができる。たとえば • N ={ 0,1,2,… } 自然数全体の集合 • Z ={ …, -2, -1, 0, 1, 2, … } 整数集合 • R ={ x |

    kwry
    kwry 2016/07/04
  • grpcを(Goから)かるーく触った : D-7 <altijd in beweging>

    grpcをさらっと触ってみた。僕の個人的な結論から言うと、小規模なシステムにはいれるメリットあんまりないけど、複数チームでわりとバラバラに開発をしてるけど同じRPCを叩く必要があり、なおかつそれなりのトラフィックがあるなら有効そう。 他の言語の事は知らん。とりあえずGoでさわる。github.com/grpc/grpc-commonをチェックアウトして、サーバーとクライアントを起動する。ドキュメント読んでるとProtocol Buffersの話とかでてくるけど、動かしたいだけなら全部忘れてよし。 $ cd go/greeter_server $ go run main.go $ cd go/greeter_client $ go run main.go これだけだと一回RPCが走るだけでつまらないので、client側を変えて100 goroutineでぼちぼちたっぷりのコールをするようにす

    grpcを(Goから)かるーく触った : D-7 <altijd in beweging>
    kwry
    kwry 2016/07/03
  • GoとgRPCでKVS的なものを作ってみた - 小野マトペの納豆ペペロンチーノ日記

    正月で時間があったので、以前から触ってみたかったgRPCGo言語から使い、キー・バリュー・ストアのようなものを作ってみた。 KVSといっても、GomapへのGet/Put/Delete/ScanをgRPC経由で叩けるようにしただけのもの。それだけだとあまり面白く無いので、gRPCらしく、Watch機能をつけてmapへの更新を監視できるようにした。 github.com 個人的には、HTTP/1.1 + JSON APIと比べた時のgRPC(HTTP/2 + ProtoBuf)のメリットや違いが気になっていたので、そのあたりを気をつけながら書いた。 開発の手順 サービス定義 まずはProtocol Buffers 3でKVSのサービスを定義する。サンプルを見ながら適当に書いた。 grpc-kvs/grpc-kvs.proto at master · matope/grpc-kvs · G

    GoとgRPCでKVS的なものを作ってみた - 小野マトペの納豆ペペロンチーノ日記
    kwry
    kwry 2016/07/03
    [grpc