タグ

architectureに関するt-wadaのブックマーク (361)

  • Architecture Overview

    ChakraCore is a fully capable JavaScript virtual machine that has the exact same set of capabilities and characteristics that are supported by Chakra, with two key differences. First, it does not expose Chakra’s private bindings to the browser or the Universal Windows Platform, both of which constrain it to a very specific use case scenario. Second, instead of exposing the COM based diagnostic API

    Architecture Overview
    t-wada
    t-wada 2016/05/25
    Microsoft Edge のエンジン ChakraCore の内部アーキテクチャについて
  • Reactの考え方 | React 0.13 日本語リファレンス | js STUDIO

    これは、元はReactの公式ブログへ投稿されたものです。 個人的な見解になりますが、ReactJavaScriptを使用した大規模で高速なWebアプリケーションを開発する、 最も優れた方法であると考えています。 これは、FacebookとInstagramにおいて、我々にとって良い結果をもたらしてくれています。 Reactの優れた点の1つに、アプリケーションの構築を、どのように考えさせるかという事が挙げられます。 このページでは、Reactを使用した検索可能な商品データのテーブルを構築する過程を通して、学んでいきます。 まずは、モック作りから ステップ1: UIをコンポーネント階層に分割 ステップ2: Reactの静的版の構築 ステップ3: UIステートの必要最小限構成 ステップ4: ステートを使用するべき場所の特定 ステップ5: 別(逆)データフローの追加 最後に まずは、モック作りか

    t-wada
    t-wada 2016/05/21
    React.js を使って設計する際に最も重要になる考え方を知るための文章 "Thinking in React" の翻訳
  • 分散プログラミングモデルおよびデザインパターンの考察 その4 - Software Transactional Memo

    引き続き分散システムのデザインパターンの話をしていく。例によって適切な名前を見つけられなかった場合にはその場で適当に名づけているので、ここに書いてある名称が技術レベルでの正式名称だとは思わず、正式名称を見つけたらそっとコメント欄で教えてください。 Application Level Ack リクエストを受け取った際にAcknowledgment(Ack) を返却するのは重要であるというのは異論の余地はない。だが、どのレベルで返却すべきかというのはデザインスペースの一部である。 ご存知の通り、TCPはそもそもSYN → SYN-ACK →ACKの3方向ハンドシェイクを行い、それぞれの通信ペイロードにシーケンス番号を付けて送達を確認している。SO_LINGERを使えばclose時に未送信パケットが残っていればそれを送り終わるまでclose()をブロッキングする事もできる。TCPのトランスポート

    t-wada
    t-wada 2016/04/18
    分散システムのデザインパターンを編み出していくエントリの第4弾
  • Microservices Casual Talks で話してきました - Anonymous Function

    この記事は移動しました。

    Microservices Casual Talks で話してきました - Anonymous Function
    t-wada
    t-wada 2016/03/17
    "万能なアーキテクチャは存在せず、誤った選択は逆に技術者の生産性や幸せ度を低下します。Microservices も例外ではありません。大事なことは、自分や仲間にとってのメリットを冷静に考えて、合理的な選択をすること"
  • Microservices Casual Talks に参加してマイクロサービスの奥深さに驚愕した - kakakakakku blog

    昨日は「Microservices Casual Talks」に参加してきた.前日まで補欠35番目で厳しいかなーと思ったけど,奇跡的な繰り上がりで参加できた.当に参加したくて祈り続けてたからその効果かも?w 「マイクロサービスアーキテクチャ」は Amazon で予約していたから既に届いてるんだけど,まだ読めてなくパラパラと開いた程度で,事前に読んでいればもっと理解できたなと後悔した. 開催側のポリシーに準じた範囲で,自分の意見も合わせて簡単にメモを残しておこうと思う.特に参考資料が多く出ていて,読めていないものもあるため,合わせてリンクしておこうと思う. connpass.com 『マイクロサービスアーキテクチャ』とAzure Service Fabric @satonaoki 開口一番「アズールじゃなくてアジュールです」には吹いた!最近 Docker Meetup もそうだけど,頻繁に

    Microservices Casual Talks に参加してマイクロサービスの奥深さに驚愕した - kakakakakku blog
    t-wada
    t-wada 2016/03/17
    参考資料のよいリンク集になっている
  • クックパッドにおける最近のMicroservices事例 - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当ブログでは1年半ほど前にMicroservicesへのとりくみについてご紹介しました。 当時社内ライブラリだったGarageはその後オープンソースとして公開され、また社内のシステムも当時と比べ飛躍的な進化を遂げています。 そういったクックパッドにおける最近のMicroservices事例を先日Microservices Casual Talksで紹介しました。 Microservicesの抽象的な話は一切割愛し、具体的な事例に終始した内容となっています。 Microservicesの基となる考え方はわかったものの、実践方法で

    クックパッドにおける最近のMicroservices事例 - クックパッド開発者ブログ
    t-wada
    t-wada 2016/03/16
    Docker 化を徹底的に進めて分散システムの開発からデプロイまでを効率的に行う基盤を整え、その過程で発生した諸問題を時には自社開発の OSS を使って乗り越える姿勢に脱帽した
  • Principles of microservices velocity

    Microservices are small services with independent lifecycles that work together. There is an underlying tension in that definition – how independent can you be when you have to be part of a whole? I’ve spent much of the last couple of years trying to understand how to find the right balance, and in this talk/tutorial I’ll be presenting the core seven principles that I think represent what makes mi

    Principles of microservices velocity
    t-wada
    t-wada 2016/03/14
    『Building Microservices』著者 Sam Newman が microservices アーキテクチャパターンの原理原則について説明している資料 #microsvc
  • ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)

    Alistair Cockburn による Hexagonal architecture の翻訳です。PoEAAで言及されていることから、2002年ごろにはすでにC2 Wikiにページがあった模様。似たようなアーキテクチャである クリーンアーキテクチャ も翻訳したので参考にしてください。 この記事は著者から許可を得て公開しています。Thanks to Alistair Cockburn! 目次 パターン: Ports and Adapters (構造に関するパターン) 意図 動機 解決法の質 構造 サンプルコード ステージ1: FIT アプリ 定数をモックデータベースとして ステージ2: UI アプリ 定数をモックデータベースとして ステージ3: (FITまたはUI) アプリ モックデータベース 応用ノート 左右の非対称性 ユースケースとアプリケーションの境界 ポートはいくつ? 既知の用

    ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)
    t-wada
    t-wada 2016/03/14
    Alistair Cockburn の Hexagonal architecture アーキテクチャパターンの翻訳 #microsvc
  • Micro Services: Java, the Unix Way

    Video and slides synchronized, mp3 and slide download available at http://bit.ly/ZlBMQY. James Lewis tells the story of building a resource oriented, event driven system out of applications about 1000 lines long. Filmed at qconsf.com. James Lewis is a Principle Consultant for ThoughtWorks based in the UK and a member of the ThoughtWorks Technical Advisory Board. Most recently he has been helping t

    Micro Services: Java, the Unix Way
    t-wada
    t-wada 2016/03/14
    microservices という言葉が最初に (?:要出典) 使われた講演資料 #microsvc
  • スケールアウト再考

    Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno

    スケールアウト再考
    t-wada
    t-wada 2016/02/29
    "リトルの公式(Little’s formula)" "性能の分散が小さい =制御しやすい" "やかんは壊れない"
  • 分散プログラミングモデルおよびデザインパターンの考察 その3 - Software Transactional Memo

    昨日に引き続いて分散システムのデザインパターンについて書いていきたい。 だがそれ以前に故障モデルに関する前提を忘れてはならない。人によって様々な方針があるが、個人的には分散システムの世界において意識しなくてはならない故障モデルは4つだと考えている。僕は前回のブログに書いた Replication のをベースに書いており、少し言葉遣いや定義が他とやや違う点は許して欲しい。また、通信の脱落・遅延とはレイヤーが異なる議論である。 故障モデルの分類 故障が起きないモデル これは故障が起きない世界を仮定するモデルである。これ自体はプロダクションにそのまま投入できるものではない。だがこの故障モデルを想定しても解けない問題は故障が発生する状況では絶対解けない事が断言できたり、合意プロトコルが正しいかを議論する土台となったり、様々な実用的なアルゴリズムや分散システムの土台となるアルゴリズムが生まれる土壌

    分散プログラミングモデルおよびデザインパターンの考察 その3 - Software Transactional Memo
    t-wada
    t-wada 2016/02/23
    分散システムにおける故障モデルの分類とデザインパターンについて。非常に面白い。
  • 分散プログラミングモデルおよびデザインパターンの考察 その2 - Software Transactional Memo

    前回の記事では 分散システムのデザインパターンと銘打っておきながら並列・並行システムの分野の話からクラウド環境へとこじつける事を「分散システム」と呼んだ事。 システム全体を決定づけるわけでもない通信パターン上の選択肢の一部を切り出してシステムの質のように呼んだ事。 プログラミングモデルと言いながらプログラミングモデルの話が一切出なかった事。 のうち一番上についてしか書かなかったので次に真ん中の項目についての話をする。物事を分類する際の一般論としては MECE であることが好まれるがYahoo!の記事はレイヤーも目的も様々な物を一緒くたに語っており、取り繕おうにも議論の空間があやふやなので何に対して網羅的なのかも議論ができない。「マスターやワーカーというのは役割の議論であり通信パターンの議論ではない」「Producer-Consumerはデータフローの一種と呼べないのか?」「データフローは

    分散プログラミングモデルおよびデザインパターンの考察 その2 - Software Transactional Memo
    t-wada
    t-wada 2016/02/22
    "現実の分散システムがどのように対処しているかというと、故障を検知でき故障したら復旧しないというFail-Stop故障モデルを仮定した上で、発見の難しいバグに関しては目を瞑り、起きた順に穴を塞いでいる"
  • 分散プログラミングモデルおよびデザインパターンの考察 その1 - Software Transactional Memo

    Yahoo技術者が書いたブログ techblog.yahoo.co.jp が悪い方向に期待を裏切ってくれたのに対し、 @kuenishi さんがまとまった文章 kuenishi.hatenadiary.jp を書いていたので、僕も2番煎じぐらいでまとまった文章を書く。 始めに断っておくと、分散システムというのはまだまだ事例を集めていくフェーズを抜けきっておらず、体系立った大統一理論的な分類法は確立していない。ここに書くのは、これまでの分散システム事例やこれからの分散システム事例を分類していく際にその性質をカテゴライズする一助となれば良いな、程度の文章なのであまり真に受けないで欲しい。 なぜYahooの記事が期待はずれなのか 人によって意見はあるとは思うが、個人的に感じたのは以下の3つ。 分散システムのデザインパターンと銘打っておきながら並列・並行システムの分野の話からクラウド環境へとこじ

    分散プログラミングモデルおよびデザインパターンの考察 その1 - Software Transactional Memo
    t-wada
    t-wada 2016/02/22
    "人間が分散システムをわざわざ構成する理由 1. 小さなシステムでは達成不能なパフォーマンスを実現するため(性能) 2. 個々のコンピュータで故障が発生しても動き続けて欲しいため(耐故障)"
  • 分散プログラミングモデルおよびデザインパターン - kuenishi's blog

    同名の某記事について。僕がタイトルから想像する期待を、なんだか意外な方向に裏切ってくれた記事であった。批判するだけではよくないので、同じタイトルで僕ならどういう話になるか…という話をしよう。絵のない長文だ覚悟して読め(ΦωΦ)フフフ…。 分散プログラミングモデル プログラミングモデルとはなんであろうか。 …CもJavaもMPIも登場していない1972年の論文を持ってこられてそれがオリジナルだみたいなこと言われてもえー…って感じで、Flynnの1972年の論文は並列計算やHPCの方面へ非常に大きな影響を与えていると思う。ただしそれはCPU内の話であって、時代が進むと共にたとえば牧野先生の日記「並列計算機のプログラミングモデル」で書かれているような議論につながるといえば繋がるには繋がるが、このレベルで計算を並列化する議論にしか応用できない。せいぜい、プログラミングモデルとひとくちにいっても様々

    t-wada
    t-wada 2016/02/22
    "分散システムにおけるプログラミングモデルは、分散システムを構築するためのものと、分散システム上でのデータ処理とかを記述するためのものに大きく分かれる"
  • Microservices in Action

    マイクロサービスの概要と適用

    Microservices in Action
    t-wada
    t-wada 2015/12/10
    Microservices に関して考えるべき諸要素がまとまっていて、非常に分かりやすい資料
  • Rethinking Best Practices

    React is a different way to write JavaScript apps. When it was introduced at JSConf US in May, the audience was shocked by some of its design principles. One sarcastic tweet from an audience member ended up describing React’s philosophy quite accurately: https://twitter.com/cowboy/status/339858717451362304 We’re trying to push the limits of what’s possible on the web with React. My talk will start

    Rethinking Best Practices
    t-wada
    t-wada 2015/11/28
    React 開発者 Pete Hunt による 2013 年の講演資料。既存のベストプラクティスを疑い、仮想 DOM によってブレークスルーを成し遂げるまでの背景にある思想と発見について。非常に面白い。
  • ソフトウェア開発におけるデザイン視点の変化 - arclamp

    2015/11/14(土)に開催されたJavaOne2015報告会で話をしてきました。資料は以下。 この資料を作る中で気づいたというか、思ったことは、この20年でソフトウェア開発におけるデザインの視点が変化しているな、ということです。 ユニットテストとDIコンテナが変えたもの ユニットテストは衝撃的なものでした(はい、僕も@t_wadaの薫陶を受けたのです)。 ユニットテストを端的に説明するなら「自分で書いたコードを、自分のコードで確認する」ということですが、いわゆる「テスト」というよりは「実装技法」であると考えたほうがよいと思っています。 (それはTDDの事だとか、UATとしてのテストコードは別の意味があるとか、そういう話を含めたとしても、僕はユニットテストを実装技法だと理解しています。話がややこしいですが、「単体テスト」はテストでしょうね) もちろん、DIコンテナも大きな変化でした。「

    ソフトウェア開発におけるデザイン視点の変化 - arclamp
    t-wada
    t-wada 2015/11/17
    "エンジニアがコードで管理できるのがクラス構造だけであったものが、ユニットテストやDIコンテナによってアプリケーション動作も管理可能になり、さらにクラウドの現在ではサービスも管理可能になった"
  • 次世代Webカンファレンスでモデレータしてきた #nextwebconf | さにあらず

    まずは、会場に来て下さった皆様、当にありがとうございました。 ご来場の皆様が何か少しでも得るものがあったのであればいいなぁ…と考えます。 面白いイベントを企画して僕を呼んでくれた jxck には感謝しかありません。 このエントリでは、話足りなくてモヤモヤした部分を勢いで書きなぐってる感じなので、無駄に長い割にオチが無いので暇な人だけが読んで下さい。 観客として参加したセッションについて#僕が見ていたセッションは、 server_perfstandardizationhttp2monitoringです。僕の主観としては余り未来の話をしてなくて現状確認に終始した後に、最後の 15 分くらい未来をチラ見せみたいな感じだったかなぁ…と感じています。 しかしもって、未来みたいなものの話をするのは兎に角難しいので、少しでも未来っぽい話出来ればそれで良いんじゃないかと考えます。 セッションについて#僕

    次世代Webカンファレンスでモデレータしてきた #nextwebconf | さにあらず
    t-wada
    t-wada 2015/10/23
    "ソフトウェアアーキテクチャというと大体がモノの話に終始しがちで、今回のセッションでも大体、そういう話しかしなかったと言うか出来なかった" その補集合としてのヒト、カネ、トキの話
  • マイクロサービスのデザインパターン

    第1版 2015年9月21日 第2版 2015年12月24日 Bluemixでは,たくさんのサービスやAPIが提供されており,それらを組み合わせることでアプリケーションを開発することができます.単一のプログラム言語を使って,多数のライブラリやクラスファイルを結合して作る大きなアプリケーションにももちろん利点がありますが,新しい機能やUXを継続的に提供したい時や,目的に合わせてプログラミング言語やデータベースを選択したい場合には,それぞれが独立したサービスを組み合わせるやり方が有利です.この考え方の根底にあるのが,James LewisとMartin Fowlerが提唱しているマイクロサービスです.彼らのブログ記事にあるマイクロサービスの定義にあたる部分を訳してみました. マイクロサービス(Microservices)アーキテクチャスタイルは、それぞれが独立のプロセスで実行され,HTTPリソ

    マイクロサービスのデザインパターン
    t-wada
    t-wada 2015/09/23
    microservices のパターンが日本語でまとまっているのは珍しいな
  • I-Tier: Dismantling the Monolith | - Groupon Engineering Blog

    We recently completed a year-long project to migrate Groupon’s U.S. web traffic from a monolithic Ruby on Rails application to a new Node.js stack with substantial results. Groupon’s entire U.S. web frontend has been a single Rails codebase from its inception. The frontend codebase quickly grew large, which made it difficult to maintain and challenging to ship new features. As a solution to this g

    I-Tier: Dismantling the Monolith | - Groupon Engineering Blog
    t-wada
    t-wada 2015/09/16
    Groupon が一枚岩のアーキテクチャを段階的に分割していった方法について記されている