週刊Railsウォッチ(20190618-2/2後編)決済の分散トランザクション、フロントエンドのMicro Frontendアーキテクチャ、GitHubのコードジャンプほか

こんにちは、hachi8833です。この半年ほど自宅のネット接続がみるみる遅くなっています。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓お知らせ: 第12回公開つっつき会(無料) 応募先: 週刊Railsウォッチ公開つっつき会 第12回|IT勉強会ならTECH PLAY[テックプレイ] 開始以来ついに1年目を迎える第12回目公開つっつき会は、7月4日(木)19:30〜にBPS会議スペースにて開催されます。皆さまのお気軽なご参加をお待ちしております🙇。 ⚓クラウド/コンテナ/インフラ/Linux/Serverless ⚓🌟決済の分散トランザクション🌟 元記事: マイクロサービスにおける決済トランザクション管理 - Mercari Engineering Blog つっつきボイス:「そうそう、WebチームのSlackにも流しましたけど、メルカリさんのこの記事はマジで力作❤️」「はてブでもバズってましたね😀」「実はこの記事は、マイクロサービスの話を抜きにしても成立します👍」「え、そうだったんですか?😳」「もちろんマイクロサービスと完全に無関係ではありませんが、マイクロサービスに限らない分散環境でのトランザクションはどこが難しいかという点を詳しく解説してくれています😋」 「当たり前なんですけど、決済って処理の役割が分散するものなんですよ」「確かにそうですね!」「自分のところのシステムと、外部の決済代行システムって別物ですから☺️」 「この図↓といい記述といい、よくここまで徹底的に詳しく書いたなって感心するしかないです😂」「しびれる内容ですね🥰」 同記事より 「といっても特に目新しい話はありませんけどっ😆、図もしっかり作られているし、しかも具体的なのが本当にありがたい🙏」「なるほど〜!」「トランザクション一般についての話なら教科書などにいくらでも載っているんですけど、教科書にあるような一般的な話と、業務の現場で実際に起こることってどうしても距離があるんですよ: その点この記事はステートマシンなども登場しつつ、とことん具体的で、大事なことをひととおり押さえてくれています😋」 「しかもこの記事では用語を正しく使っているのも見逃せませんね: おかげで用語を安心してググれます😍」「偉大な仕事!」 「その分、この記事の流し読みはたぶん無理😆」「でしょうね〜😆」「ちゃんと理解するなら、うんうん唸りつつ図と本文を行ったり来たりしながらじっくり読むことになるでしょうね☺️: しんどいけど、この記事の内容を解説するだけで軽く1時間以上話せるぐらい濃厚😆」「😆」「ちょろっと流し読んだだけだと『じゃここ説明して』『これが起きるとどういうことで困るの?』って聞かれてもお手上げです🤣」「🤣」「時間をかけて読むべき良記事👍」「声に出して読みたい気持ちです😅」 🌟を進呈いたします。おめでとうございます! ⚓その他インフラ DHCPとresolv.confの話をしていて、もしかしてクラウドしか使ってない最近の人は手でIPアドレスを静的に設定したこと自体ないのでは、ってなって一気に老け込んだ — fujiwara (@fujiwara) June 12, 2019 つっつきボイス:「たしかに今どきIPアドレスを静的に設定する状況ってどんなときだろう?」「WiFiルーターとの接続を設定するときも、最近だと、えっと名前が出てこない…AOSS!」「使ったことないですけど😆」「自分も😆」「最近BPS社内の若手がネットワークスペシャリストの勉強会やってるからきっと押さえてると思いたい😆」 参考: AirStation One-Touch Secure System (AOSS) - Wikipedia 「ところでここにいる若手に質問しますけど、IPアドレス手動で設定したことってあります?」「ないんじゃないかな〜って😆」「マジっすか!😆」「そんなにゆとってた?🤣」「🤣」「開発中にやったことぐらいはあるでしょ?」「それならあります☺️」「やっぱり〜」「でないとどうやって開発するんだろって思っちゃいますし🤣」 「私の周辺だとIP設定したことない人何人もいますね〜😆」「でもWebアプリ作ってたら、リバースプロキシがらみでIPアドレス設定せざるを得ないことってある気がするし☺️」「末端で作業しているとその機会もなさそうですね」「あ、できあがったものの上で開発してたりするとそうかも😆」「まあIPアドレスが設定できるからといってどやぁ〜!とできるわけでもありませんし🤣」「🤣」「IP設定したことなくても困らないといえば困らない」「困りますよきっと〜😆」「困るまでは困らないと思うしっ😆」 ⚓DB ⚓PostgreSQLのBloom filterインデックスとは(Postgres Weeklyより) 元記事: Indexes in PostgreSQL — 10 (Bloom) / Postgres Professional corporate blog / Habr つっつきボイス:「BloomってPostgreSQLのプロジェクト名か何かかな?と思ったら、本当にBloomフィルタなのか」「classical Bloom filterってあるのは以前ウォッチで扱ったものみたいですね(ウォッチ20180827)」「Bloomフィルタって空間効率のよいデータ構造で云々かんぬんみたいなやつでしたっけ」「ぽすぐれの9.6のドキュメントにもBloomフィルタあるから、前からあったっぽい」 参考: PostgreSQL: Documentation: 11: F.5. bloom 参考: ブルームフィルタ - Wikipedia ブルームフィルタ(英語: Bloom filter)は、1970年に Burton H. Bloom が考案した空間効率の良い確率的データ構造であり、要素が集合のメンバーであるかどうかのテストに使われる。偽陽性(false positive)による誤検出の可能性があるが、偽陰性(false negative)はない。要素を集合に追加することができるが、削除することはできない(counting filter を使えば削除できる)。集合に要素が追加されればされるほど、偽陽性の可能性が高くなる。 ja.wikipedia.orgより 「偽陽性はあっても偽陰性はないと」「bloomって予約語があるのね」「using bloomか〜 」「まさにインデックス作成部分ですね」 demo=# create index flights_bi_bloom on flights_bi using bloom(airport_code, airport_utc_offset, flight_no, flight_type, aircraft_code, seat_no, fare_conditions, passenger_id, passenger_name) with (length=96, col1=7, col2=7, col3=7, col4=7, col5=7, col6=7, col7=7, col8=7, col9=7); 「この記事↓に載ってそうかと思ったけど惜しい、Hashインデックスの話だった😇」「NTTデータ先端技術にはぽすぐれに超詳しい人がいるらしいという噂ありますね💪」「強い人の解説求む😆」 参考: 第2回「Hashインデックス」 | NTTデータ先端技術株式会社 「やっぱり公式ドキュメントかな😅」 参考: PostgreSQL 9.6.5文書 — F.4. bloom ブルームフィルターは、空間効率の良いデータ構造で、ある要素が集合のメンバーかどうかをテストするのに用いられます。 インデックスのアクセスメソッドとして使用する場合、インデックス作成時に大きさが決まるシグネチャーを使って、条件を満たさないタプルを高速に除外することができます。 (中略) この種のインデックスは、テーブルに多数の属性があり、その任意の組み合わせを検索する問い合わせを実行するときにもっとも有効です。 伝統的なbtreeインデックスはブルームインデックスよりも高速ですが、可能なすべての問い合わせをサポートするためには多数のbtreeインデックスが必要なのに対し、ブルームインデックスでは、たった一つのブルームインデックスだけで事足ります。 しかし、ブルームインデックスでは等価検索だけをサポートすることに注意してください。 btreeインデックスでは、等価だけでなく、範囲検索も実行できます。 postgresql.jpより 「ぽすぐれっていろんなインデックスがあるんですね」「だいたいはB-Treeあたりで足りますけど、特定のユースケースでは別のインデックスの方がいいことがあったりしますね☺️」「データの性質とかが違う場合ですね😋」「ですね: 順序が重要なデータとかみたいな用途に応じてインデックスを選ぶ必要があるでしょうね」 ⚓JavaScript ⚓書籍『最新JavaScript開発』 書籍: 最新JavaScript開発~ES2017対応モダンプログラミング (技術の泉シリーズ(NextPublishing)) | 佐々木 俊介 | 工学 | Kindleストア | Amazon 立ち読み: 最新JavaScript開発~ES2017対応モダンプログラミング 記事一覧 | Think IT(シンクイット) つっつきボイス:「この間BPS社内でJavaScript勉強会をやった後に見つけた本なんですけど、JavaScriptが中途半端な今の自分的には、JSの大まかなところを押さえるのにとても助かりました」「あーなるほど、JavaScriptのアット・ア・グランス的な感じの本ですか☺️」「Node.jsの非同期部分の概要とか、ちょうど自分が知りたい取っ掛かり部分だったので」「…と、2017年のレビューを見ると『ミスがある』とかありますけど😆」「買ったのはつい最近ですけどこれといったエラーは見当たらなかったし、2019年に改訂されてるのでよくなってると思いたい🙏」「おそらくJavaScriptを一応知っている人がターゲットの本なんでしょうね☺️: たぶんJavaScriptが初めての人が読む本ではなさそう」「あ〜そうかもです😅」 「本ってどういうタイミングで読むかも結構大事なんですよね: この本だとある程度JavaScriptを書いてきた人が、ES2017とは何ぞや的なところをおさらいするのにはいいかも」「たしかに〜: 今の自分には情報を整理するうえで身の丈に合ってた感はあります😀」 「この本で今頃知ったんですが、Node.jsってRubyみたいに毎年10月に必ずLTS版をリリースするというポリシーがあるそうです」 参考: リリース一覧 | Node.js ⚓その他JS Sakitoさんのツイート: “1枚目 #nodefest 2枚目 … Continue reading 週刊Railsウォッチ(20190618-2/2後編)決済の分散トランザクション、フロントエンドのMicro Frontendアーキテクチャ、GitHubのコードジャンプほか