タグ

2013年5月16日のブックマーク (10件)

  • Rubyの並行処理で学んだこと――パート1(翻訳版) - Engine Yard Blog JP | Engine Yard Blog JP

    この記事は英語版のブログで2013年2月5日に公開された記事の翻訳版です。 Engine Yard のPaaS製品は非常に複雑である上に、数千ものサーバーに及んでいます。弊社のアプリケーションを素早く確実に動作させるには、並行処理と並列処理をよく理解する必要があります。私は、自らの開発努力でこの問題を解決しようと、並行処理という困難な世界を探求しました。この投稿はその要約です。後編となるパート2では、並列処理に重点を置いて説明する予定です。 ハードウェア? この問題をハードウェアで解決しようとすることはできます。しかし、CPUがネックなのであれば、コアごとのスピードをある程度まで上げることはできても、最終的には役に立たなくなってしまいます。サーバーの数を増やすにしても、同じことが言えます。次々とシリアル処理を行っても、追加されたサーバーごとの処理装置の数は決まっているからです。 「シリアル

  • JavaScriptのイロハ:特集 - builder by ZDNet Japan

    builder by ZDNet Japanをご愛読頂きありがとうございます。 builder by ZDNet Japanは2022年1月31日にサービスを終了いたします。 長らくのご愛読ありがとうございました。

  • JavaScript で setter/getter - あどけない話

    鶏肋(けいろく)。文字通りに取れば、鶏の肋骨という意味。 三国志演義という「フィクション」の中で、曹操は悪役として登場します。多くの人は演義を多少なりとも知っているものですが、正史は読まないので、曹操に悪いイメージを持っていることでしょう。中国史上、これほど不当に扱われている英雄も珍しいのではないでしょうか? 曹操は、すぐれた政治家であり、孫子を編纂したことからも分るように戦略家かつ文章家でした。また、三国志の時代きっての詩家であり、彼の読んだ短歌行は僕のお気に入りの漢詩です。 曹操は、劉備の漢を攻めあぐんでいるときに、鶏肋とつぶやきました。部下の誰もが意味が分からずにいる中、楊修だけが撤退の準備を始めました。楊修曰く: 「鶏の肋骨は、これを喰らうに肉なく、これを捨てんとするも捨てがたき味あり」 つまり、漢は捨てるのは惜しいが、たとえ攻略できても役に立たないということで、曹操が撤退の意思を

    JavaScript で setter/getter - あどけない話
  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

    elim
    elim 2013/05/16
  • フィールドごとに getter/setter を用意するな - ぐるぐる~

    未だにフィールドごとに getter/setter を用意しろって言う人がいてびっくりするわけですが。 フィールドごとに getter/setter を用意する人の言い分 そうやれって/Webページに書いてある フィールドに触れないと不便だろう それが OOP だ 言い分に対する反論 そうやるなってに書いてある 5章 オブジェクト指向エクササイズ 5.2.10 ルール9:Getter、Setter、プロパティを使用しないこと ThoughtWorksアンソロジー List<Book> getBooks() { return books; } これはクライアントに最大限の柔軟性を提供するが、さまざまな問題を生み出す. コレクションをそのまま返すと, その内容に依存している内部状態が知らない間に無効にされてしまうかもしれない. 略 代わりに, コレクション内の情報への, 限定された, 意味

    フィールドごとに getter/setter を用意するな - ぐるぐる~
    elim
    elim 2013/05/16
  • JavaScriptでデフォルト引数を使う - Pashango’s Blog

    最近、JavaScriptを使うことになったので勉強中。 デフォルト引数が使いたいなと思いググったところ、下のコードが沢山ヒットする。 def test(a) { a = a || デフォルト値 ... } え、これってデフォルト引数が0やFalseの場合ダメだよね・・・? 正しくはこうだと思うんだが・・・ def test(a) { if(a === undefined) a = デフォルト値; ... } 「a == undefined」ではなく「a === undefined」なので注意。 JavaScriptに詳しい方で、修正がありましたらご指摘ください。 [追記] コメントから指摘がありました。 上記の方法だとundefinedが上書きされている可能性があるので、厳密に求めたい場合は以下の方法が良さそうです。 def test(a) { if(typeof a === 'unde

    JavaScriptでデフォルト引数を使う - Pashango’s Blog
  • kudox.jp - kudox リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    kudox.jp - kudox リソースおよび情報
  • JavaScriptデザインパターン

    JavaScriptの人気とともに、JavaScriptでのデザインパターンの利用局面も増えています。書ではGoFのデザインパターンに沿って、その実装例やパターンの適用事例を網羅的に示し、デザインパターンをJavaScriptにも応用したいというニーズに応えています。モジュール、オブサーバ、ファサード、メディエータといったGoFの代用的なデザインパターンだけでなく、リビーリングモジュールパターンや擬古典的デコレータパターンといった、新しいパターンも取り上げています。美しく、かつ構造化され、メンテナンス性の高いJavaScriptを書くために有用な一冊です。 まえがき 1章 デザインパターンとは? 1.1 はじめに 1.2 パターンとは? 1.2.1 既に日常的にパターンを使っている 1.3 「パターン」性検査、プロトパターン、3の法則 1.4 デザインパターンの構造 1.5 デザインパタ

    JavaScriptデザインパターン
    elim
    elim 2013/05/16
  • ssig33.com - 自分語りが〜みたいな話

    〜〜のフリして自分語りするのがつまらないみたいのはよく言われるんですが、そういうことをやっている作品でそこそこ高評価を得ているものはいろいろあって、ド定番から言えばスターウォーズとかそんなんだろ。 「自分語り」という行為がつまらないのではなくて、文章力など表現力の問題なので、「自分語りがつまらない人間」というのが「つまらない人間」だということだと思います。 back to index of texts Site Search

    elim
    elim 2013/05/16
  • ssig33.com - プログラマの話

    プログラミングはアプリを作ることの手段なのか プログラミングはそれ自体が目的であっていい プログラミングを勉強したい人が勉強する前にすべきこと プログラミングの話 これらの記事を読めば分かる通りプログラマにはこういう陶しい話が大好きな人がとても多いので、そういう人達と楽しく付き合っていく自信が無いならプログラマなど目指さない方がいい。真面目に。 「人それぞれ」で済む話にこうやって長文を書くのがプログラマです。 僕はこういう話が大好きです。 back to index of texts Site Search

    elim
    elim 2013/05/16