タグ

2014年1月7日のブックマーク (12件)

  • traitで簡単にDCIを実装する - じゅんいち☆かとうの技術日誌

    モデルの表現方法の一つとしてDCIの実装方法を、いろいろと模索しています。 暗黙的型変換と型クラスを使ったDCIがよいと説明しましたが、traitだけでもっと簡単に実現できないか考えてみました(この方法はLean Architectureにも紹介されている実装方式です)。 traitで仕様を表現する traitは、仕様を表現するためのインターフェイスとしても使えるし、他のクラスなどに合成するための、再利用可能な実装(部分クラスなどと言われることがある)としても使えます。 DCIとは直接関係ない話ですが、まずtraitのインターフェイス的な使い方からいきます。 では、お決まりの銀行口座で説明(好きやなーw)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 銀行口座エンティティ // 不変条件: 残高の量は負数であってはならな

  • RailsのRESTful APIをテストで理解する - ワザノバ | wazanova

    http://www.commandercoriander.net/blog/2014/01/04/test-driving-a-json-api-in-rails1 comment | 0 pointsPivotal LabsのEno ComptonがRailsでJSON APIをテスト形式で理解できるように紹介してくれてます。「Railsアプリをてがけると、いずれ、シングルページアプリ、モバイルクライアントのためにRESTful APIが必要になるだろうから練習用に。」ということで、コードはGithubで公開されています。 GET /movies POST /movies GET /movies/:id PUT /movies/:id DELETE /movies/:id 上記のrouteをサポートするために、Railsアプリ + RSpec + FactoryGirlを用意したら、

  • Java8の型推論でハマりまくった話 - きしだのHatena

    個人の日記レベルですんません、現象のみ。 書いてるコードに関しては型指定してあげれば解決したのだけど、再現させるのに苦労した。 まず、インタフェースを2つ用意。 interface A{} interface B{} それから、その両方を実装したクラスをふたつ用意 static class C implements A,B{} static class D implements A,B{} 片方だけ実装したクラスもふたつ用意 static class E implements A{} static class F implements A{} そんで、同じ型を継承してGでくるんだものを複数とって、共通の基底クラスをGでくるんだものとして返すメソッドを定義。 ※この文章では、実装したインタフェースも基底クラスと表現します。 static <T> G<T> o(G<? extends T>..

    Java8の型推論でハマりまくった話 - きしだのHatena
  • 吉川徹さん(@yoshikawa_t)の「DOM操作の最適化によるJavaScriptチューニング」問題解説記事 #javascript|CodeIQ MAGAZINE

    吉川徹さんによる「DOM操作の最適化によるJavaScriptチューニング」問題解説記事です。JavaScriptのDOM操作について基的なパフォーマンスチューニングができるかどうかを評価する問題でした。 チューニングを行うことで、具体的にどういった形のコードになるかを中心に解説していただきましたので、ぜひ参考にしてくださいね! by 馬場美由紀 (CodeIQ中の人) 吉川徹です。 少し前になりますが、私の方から以前、JavaScriptのパフォーマンスチューニングについての問題を出題しました。今回は、その問題の解説をしていきたいと思います。 また、この問題は、HTML5 Experts.jpとの連動企画となっており、こちらの記事を読んで頂くとおおよそのチューニング方法について理解できるというものになっています。ぜひ、合わせてご覧頂ければと思います。 問題文 あるHTMLファイルに記述

    吉川徹さん(@yoshikawa_t)の「DOM操作の最適化によるJavaScriptチューニング」問題解説記事 #javascript|CodeIQ MAGAZINE
  • 2014年からはじめるAWSリンク集 | 外道父の匠

    ガチのAWSド素人が年末に調べまくった、AWS関連のリンク集です。 まだまだ調査中なので随時追加する予定ですが、広深くてキリがないのと、年始一発目の目覚ましエントリということでいってしまいます! はじめた目的 多数のスタートアップにおいて、インフラ専門のエンジニアが付かなくても、小~中規模程度まではそのチームでインフラ面を完結できるようにしたい。 …ということで、今の時代に合わせて簡単・安価・拡張性・耐障害性…を満たす環境を考えるべく、ひたすら知識をかき集めることにしました。考えた構成などについては別途書きたいと思います。 また、遡って調べるほどに出来と進化速度に感心するとともに、情報消費期限がせいぜい2年だと感じ、ほぼ2年以内の情報をもってこのような臭ぇタイトルにしています。 目次 ドキュメント アーキテクチャ クラウド全般比較 クラウド性能比較 費用/スペック ネットワーク 基インス

    2014年からはじめるAWSリンク集 | 外道父の匠
  • 単体テストとMVCとDDDに対する個人的見解 - hatajoeのブログ

    NOTE: 2014-01-08 追記あり。 前回のエントリでレガシーな開発環境を改善している話をした。 レガシーな開発環境の上にはレガシーなプロジェクトが存在していて、これを改善するためにどうすれば良いかを考える課程で、MVCとDDDに対する考えがまとまってきたのでアウトプットしておく。(まとまってきただけで実務レベルまではまだ落とし込めていない感) 自分が担当しているとあるWebコンテンツの話。 題ではないので簡単に前置く。 PHP 仕様書、ドキュメント無し テスト無し 独自カスタマイズされたWAF コピペ、使用されていないソース 使用されていないテーブル、カラムの点在 Fat Controller そんな状態なわけで、当然のように日々の改修や新機能の追加でエンバグを起こす。しかも大人の事情で開発メンバーは突然入れ替わったりする。 これまでは、気をつけようとかしっかりチェックしていこ

    単体テストとMVCとDDDに対する個人的見解 - hatajoeのブログ
  • DCIについて思うこと - walf443's blog

    最近DCI(Data Context Interaction)アーキテクチャというのを良く耳にするので、ちょっと調べたり他の人のコード例などをもとにちょろっと書いてみたりしたところ、やっぱりよくわからないなーと思いつつ、つまりはこういうこと?というのをまとめてみる。 たぶん色々と大分間違っているんだろうなぁと思いつつ、間違いを指摘してもらえるとありがたいです。 DCIは、MVCを置きかえるものではない。MVCのModelの部分が肥大化し、管理が難しくなる傾向にある(Skinny Controller, Fat Model)ので、そこをうまく扱うにはこう考えて分割すればよろしい、という考え方。つまり、M(D-C-I) - Controller - Viewみたいに書くことになる。 同じモデルでも、ユーザーの役割によって、振舞いが異なることがある 例えば、管理者(Administrator)に

    DCIについて思うこと - walf443's blog
  • パッケージユーザーのための機械学習:教師あり学習同士で分離超平面・決定境界を比較してみる - 渋谷駅前で働くデータサイエンティストのブログ

    このシリーズ記事では、Rで*1色々な機械学習のアルゴリズムについて、それらがどんなものなのかを簡単なデータに対して分離超平面・決定境界を描きながら見てきました。 パッケージユーザーのための機械学習(1):決定木 - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(2):ロジスティック回帰 - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(3):サポートベクターマシン(SVM) - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(4):ニューラルネットワーク - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(5):ランダムフォレスト - 銀座で働くデータサイエンティストのブログ ということで今回はおさらいとして、これまで見てきた教師あり学習同士で分離超平面・決定境界のプ

    パッケージユーザーのための機械学習:教師あり学習同士で分離超平面・決定境界を比較してみる - 渋谷駅前で働くデータサイエンティストのブログ
  • シェルスクリプトの[[と[の違い

    Yoshiaki Kawazu🐸ずん @kawaz シェルスクリプトのテストコマンド [ と [[ の違い。 [[はbashの組み込みコマンドで、[は単にtestという外部コマンドの別名。なので必然[[の方が速い。 [[では比較演算子の<と>がエスケープなしで使える。[では¥<や¥>とする必要がある。 (続く… 2013-02-12 14:05:41 Yoshiaki Kawazu🐸ずん @kawaz (続き) [[では比較演算子の<と>がロケールに応じた辞書順比較になる。[ではASCII辞書順。 [[では=~で正規表現マッチングが使える。bashバージョン3以降の機能。 [[では演算子を"-f"のようにクオートするとエラーになる。]では問題ない。 こんなところかな。 2013-02-12 14:07:56

    シェルスクリプトの[[と[の違い
  • OpenStackクラウド基盤構築・ハンズオンセミナー講義資料 - めもめも

    2014年3月3日〜4日にかけて、NPO法人トップエスイー教育センターによる表題のセミナーで使用する資料です。セミナーの詳細と申し込みについては、下記を参照ください。 ・【トップエスイー特別講義】OpenStackクラウド基盤構築・ハンズオンセミナー それぞれの資料は、二段組両面で印刷するときれいな冊子になるように空白ページが入っています。 第1日 講義No.1 OpenStackの概要と基機能 ハンズオンNo.1 All-in-one構成での環境構築 講義No.2 仮想マシン構築自動化技術 ハンズオンNo.2 仮想マシン構築自動化演習 第2日 講義No.1 OpenStackの内部構造 ハンズオンNo.1 複数ノード構成での環境構築 講義No.2 Neutronの内部構造とSDN

    OpenStackクラウド基盤構築・ハンズオンセミナー講義資料 - めもめも
  • JavaScript Module Pattern. Module Design Pattern in JS

    JavaScript Module Design Patternby Aditya Jain · January 2, 2014 JavaScript Module pattern provides a way to wrap public, private methods (and variable) into a single entity and exposing only the public members to the world outside of module. This allows faster namespace resolution, avoid collision of the methods/variables with other global APIs since the namespace isn’t populated with all many fu

    JavaScript Module Pattern. Module Design Pattern in JS
  • JavaScriptでDCI的なものを実装してみた例

    gistfile1.txt �U#^ U ��2^ U // 銀行口座 var BankAccount = function (balance) { this.balance = balance; }; BankAccount.prototype.increase = function (money) { this.balance += money; }; BankAccount.prototype.decrease = function (money) { this.balance -= money; }; // ロール: 送信側 var Sender = function () {}; Sender.prototype.send = function (money, to) { this.decrease(money); to.onReceived(money, this); }; /

    JavaScriptでDCI的なものを実装してみた例