タグ

ブックマーク / wazanova.jp (9)

  • 仕事の進め方とアーキテクチャの相関関係 - ワザノバ | wazanova

    http://rubyrogues.com/176-rr-rails-as-an-soa-client-with-pete-hodgson/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 「システムの設計は、その組織のコミュニケーション構造を反映したものになる。」というコンウェイの法則について、ThoughtWorksのPete Hodgsonは、それを逆のかたちで、つまり、採用すべきアーキテクチャの特性を活かすために人と人とのコミュニケーションをどう改善するかということに、かなり時間をとっていると語っています。 コンウェイの法則は、重力のように不可避なもの。うまく活かせるように変わるか、対応できずにダメになるかの二者択一だ。 各サービスの担当チームが細分化されている大企業の顧客において、SOA(

  • Go言語のMapの仕組みをマクロ視点で見てみる - ワザノバ | wazanova

    http://www.goinggo.net/2013/12/macro-view-of-map-internals-in-go.html1 comment | 0 pointsWilliam KennedyがGo言語のMapの仕組みについて、なぜデータ順がランダムになり、かつ効率的で処理が早いのかを、図解しています。 Creating and Using Maps まずmapをつくりvalueを保存するところから見てみよう。 // Create an empty map with a key and value of type string colors := map[string]string{} // Add a few keys/value pairs to the map colors["AliceBlue"] = "#F0F8FF" colors["Coral"] = "#FF

  • YouTube & Go言語: MySQLをパワーアップするVitess - ワザノバ | wazanova

    http://www.youtube.com/watch?v=qATTTSg6zXk 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約3時間前 YouTubeのシステムアーキテクトであるSugu SououmaraneのFOSDEM 2014での講演です。スライドはこちらからダウンロードできます。 1) Vitessとは Vitessは大規模な番環境でMySQL DBを効率的に利用するためのオープンソースプロジェクトです。概要はプロジェクトゴールのページ にまとまってます。 MySQLは機能が豊富だがスケールさせるときは苦労する。一方、NoSQLはスケーラビリティには問題がないが、アプリケーションが複雑になるとできることに限界があるのがネックになる。セカンダリインデックス、joinsなどがサポートされていない。

  • Squareの内部APIの仕組み - ワザノバ | wazanova

    http://corner.squareup.com/2014/09/squares-api.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 SOAにおけるサービス間のコミュニケーションについては、CODE CLIMATEにおいて、Protocol Buffers vs JSONという比較が取り上げられていて、「ブラウザやJavaScriptが直接データを利用しないケース、特に内部サービス間のコミュニケーションにはProtocol Buffersの方が向いているのでは。」と紹介されています。 せっかく整合性のあるデータ構造を用意しても、サービス間のデータのやり取りの際に苦労させられることが多い。Protocol BuffersならProtoフォーマットにしてエンコーディングするだけで、意図す

  • Goと大規模分散システムの相性 - ワザノバ | wazanova

    Googleで分散システムの開発をてがけ、現在はソーシャルメディア mttr.toを立上げ中のBen Sigelmanが、Goを分散システムの開発に利用する場合の、メリットおよびチャレンジについて講演しています。 分散システムのあるべき姿 分散システムの勘所は、最上位ビットをパフォーマンス的にも構造的にもうまく扱うことができるかというのがポイント。その効果が一番大きい。スループットの改善のような詳細は、自分もGoogleでそれに取組んだけれども、9ヶ月くらいたつとハードウェアの性能で解決される可能性が高い。また、構造的にというのは、なるべく小さなコンポーネントを組み合わせたシステムにできるかという意味。 Goのよいところは、 両方、とくに後者によい。Railsだとアプリを複数個用意して並列処理するのは大変だったけど、Goだとシンプルにできて、標準ライブラリも読みやすいとかなどなど。パフォー

  • Googleのテスト自動化の進化 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=6ZvCU0dht50 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Google Test Automation Conferenceが今年はSeattleで開催されたようです。その中で興味深いと感じた話題をいくつか拾ってみました。 1) 成長を続けるGoogle 会社の規模が大きくなり、歴史を重ねてくると、何事も非効率になりがちですが、Ankit Mehtaが紹介してくれた数字によると、Googleの開発ペースは依然として右肩あがりのようです。 コードのコミットは、1日3万チェックイン。約3秒に1回。グラフを目測した限りでは昨年から約20%増。 リリース数もこの1年でほぼ倍増。 2) テストクローラーを利用してのモバイル実機テストの

  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

  • エンジニアマネージャー論と学びを抽出する努力を続けること - ワザノバ | wazanova

    https://news.ycombinator.com/item?id=8406507 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 真剣にものごとに取組むと、やらなくてはいけないことはそのうち次から次へと気づく and/or 嫌でも湧き出てくるもの。なので、アドバイスを求められれば、やるべきことは最小限、できれば三つ以内に絞って、何をやめることができるかを探す手伝いをするようにしています。やるべきことを毎日洗い直して、絞り込むことが大切。 情報の収集は自動化されてきますが、自分にとって何がポイントなのか、どう活かすべきかという抽出作業は、自らを鍛え続けなくてはいけない人力作業ですね。 RethinkDBのFounderであるSalva Akhmechetが、エンジニア組織のマネージャーのあるべき姿

  • GiltのエンジニアチームのTrustカルチャーと自主的に動くスタイル - ワザノバ | wazanova

    GiltのCo-founder & CTOのMichael Bryzekが、同社のエンジニアチームについてインタビューに答えています。 まずは、Ruby -> Java -> Scalaと開発言語が変わっていった経緯について質問を受けて。(Ruby -> Javaは、昼の12時にAmazon並みの大量のトラフィックが集中する同社のフラッシュセールスというビジネスモデルに対応するシステムにするために決めたということだった思います。) RubyからJavaへの転換はやや大変な作業だったが、どうにかできた。Scalaへの移行のきっかけは採用。ものすごくできるエンジニアを2009年 or 2010年はじめあたりに採用できたとき、彼が「自分はScalaを2年やっていて、すごくいいので是非JavaでなくてScalaで。」と言ってきたので、試しにつくらせたのがはじまり。それから、関数型言語としてできるこ

  • 1