あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
Marionette.jsのView周りについてを中心にSingle Page Applicationを作るときの話
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 12/4の記事(AngularJSを使ったWebアプリのアーキテクチャ設計)で書くと言ったまま放置していたので、AngularJSのMVCパターンについて書いてみたいと思います。 AngularJSのMVCについては、12/19のお前のAngular.jsはもうMVCではない。と言われないためのTutorialというすばらしい記事がありますが、本記事ではもう少し抽象的な内容を扱ってみようかと思います。 MVW(Model-View-Whatever)パターンとは MVCパターンには、MVC2、MVP、MVVMなど数多くの派生パターンがあ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 理解しやすいように適当に遮ったり、言い切ってしまったところもあるがご容赦いただきたい。 MVCの登場 MVCは、SmalltalkのGUIライブラリのモデルとして登場した。 これはGUIアプリケーションを記述する際に、適切なモデル化を進めるのにとてもいい考え方だと思われていたし、実際にそうだった。 これはアーキテクチャパターンとして、それぞれがどのように依存するべきか、どこにコードを書くべきかということを端的に表している。 安定依存の原則というものがある。これは、要件が安定しているモジュールに依存し、要件が変動しやすいモジュールには依存
Symfony Advent Calendar JP 2012 - Day 3 ドメイン駆動設計にしたがってドメインモデルをソフトウェアとして表現するのにエンティティが使われます。エンティティは、ドメイン駆動設計におけるモデル駆動設計パターンの1つに分類されます。 賢すぎるエンティティはアンチパターンRuby on Rails由来のアクティブレコードと直結したMVCフレームワークでは、本来エンティティとして扱われるべきクラスを「モデルクラス」と呼び、そこにビジネスロジック等を実装することが推奨されていました。これらのフレームワークでは、自らモデルレイヤー部分もカバーしておきながら、すべてをエンティティとして実装することを強いるため、ドメインモデルの実装にはほとんど自由度がありませんでした。 このスタイルに慣れてしまうと、ピュアなクラスでドメインレイヤーを実装できる状況においても、誤った設計
JavaScriptフレームワークに興味あるし、Angular.jsを使ってみようかな・・・ そんな純真無垢なあなたを混沌の世紀末に引きずり込むのが、ほかでもないTutorialなのです。 TutorialではほぼControllerしか出てこないので、素直にこの通り書いているとまず間違いなく3カウントでControllerにコードが集中するいわゆるFat Controllerになり、せっかくMVCフレームワークも地獄の荒野になります。 実は、Angular.jsでまず目を通すべきなのはDeveloper GuideのConceptual Overviewです。これを読めばどう処理を分割するかがきちんと書かれていますが、以下ではそれ+経験をもとにAngular.jsで正しくMVCを使用するためのポイントをまとめました。 Angular.jsの3原則 1.Controllerはイベントハンド
AngularJS 1.2 API ガイド TIPS ngモジュール ディレクティブ フィルター サービス 型 グローバルAPI ngMockモジュール サービス グローバルAPI AUTOモジュール サービス ngAnimateモジュール サービス ngCookiesモジュール サービス ngMockE2Eモジュール サービス ngResourceモジュール サービス ngRouteモジュール サービス ディレクティブ ngSanitizeモジュール フィルター サービス ngTouchモジュール ディレクティブ サービス このサイトについて AngularJSの日本語リファレンスです。 AngularJSの本家サイト(英文) の内容を翻訳して作成していますが、誤訳や誤記があると思いますのでその点についてはご了承ください。 もし、誤訳などの間違いを見つけましたら、 @tomof まで教え
Todoリストの機能 1.テキストボックスから、Enterで追加できる 2.登録したTodoはダブルクリックで編集可能になり、Enterで編集確定できる 3.登録されているTodoの総件数がフッターに表示される 4.完了したTodoがある場合、それらをリストから消すボタンが表示される 5.全選択/解除を行うチェックボックスがある 個人的な結論 趣味開発で使うならAngular.js・仕事で使うならKnockout.jsをお勧めしたい。 まず、フレームワークを選択する際は、以下3つの選択基準を持つとよいと思う。 1.開発の規模 大規模ならBackbone.jsはお勧めできる。 書き方が決まっていて、チュートリアルに目を通せば(面倒なのは置いておいて)何を作らなければならないかは簡単に理解できる。そこそこの人数で長い時間の開発を行うなら、UIチームはアプリケーションとView、サーバーサイドは
お久しぶりです。@at_grandpa です。 今回、Model View Controller について再考する機会があったので、自分なりに整理してみました。 勘違い MVCの勘違いに関しては、以下のSlideShareが有名かと思います。 やはりお前らのMVCは間違っている @mugeso これにはドキッとしたことを覚えています。 このスライドで「間違っている!」と指摘されている形式を、そういうものだと理解していたからです。 上記で指摘されている勘違い形式を、自分なりにわかりやすく噛み砕き、図にしてみました。 Userからの入力をControllerが受け取る Controllerはデータ置き場であるModelからデータを取得する 取得したデータをControllerが加工する 加工したデータをViewに転送する Viewは、受け取ったデータを視覚表現しディスプレイに表示する 自分の中
愚痴です。 やはりお前らのMVCは間違っている http://www.slideshare.net/MugeSo/mvc-14469802 これ45k Viewあって、はブも600あって、Sep 26, 2012の投稿だからもおう1年以上前の話。つーかそれの波及記事もいろいろあってもう既に十分語り尽くされている、はずなのに… なぜか、未だにfat controller もうね。コード見るのが辛いんよ。つーか感覚的に分かりそうなもんじゃん。処理のエントリポイントがこんなになってていいのかなぁ?って。 改修案件でさ、コードどっから参照するよ?コントローラでしょ?んでさーコード調べるぞ!!ってなった時、そのコード見て、、、ため息出るでしょ。ひと目でわからんでしょ。 コントローラなんて,どのモデル読んでてどのview使ってるか、それだけで十分じゃん。パラメータの処理はルーティングでやればいいじゃん
[Video] http://www.youtube.com/watch?v=s1dhXamEAKQ TildのYehuda KatzのGolden Gate Ruby Conference 2013での講演。 Ruby on RailsのクリエーターであるDavid Heinemeier Hanssonが、「JavaScript勢はダブルMVCで苦しんでいる。サーバとクライアント両方にMVCが必要で複雑すぎる。」とTwitterで発言したのに対して、Yehudaは、それでは誤解を与えると危惧し、GUIプログラミングが歴史的にどのようにMVCに発展してきたかを紹介することで、ダブルMVCが本当に意味するところを解説しています。 DHHの発言は、盛り上がってきたMeteor / Node.js勢に対する単なる批判っぽいですが、それに対してYehudaはロジカルに話をまとめてます。 スライドを
果敢にもMVCフレームワークの図解を試みたので、どうぞ! MVCの動機 MVCという言葉が初めて登場してから30年以上たった今、最早なんだったのか分からないほどMVCの定義は混迷をきたしているわけだが、どれがMVCでMVVMでMVPであるという定義についてあれこれ考察するのは個人的には好きでなくて、「結局何がしたいのか」という動機がぶれていなければ何でも良いと思っている。 じゃあそれは一体何なのかということを自分なりに考えてみたところ、次の一言に落ち着いた。 「ModelはViewに依存したくない」 世間的には(?)ModelとViewを単に「分ける」と説明されることが多いが、私はそれだけでは納得していなくて、依存の方向こそが重要だと思っている。たとえ分かれているように見えてもModelがViewを参照していたら、情報の取得先や表現方法は固定化されてしまう。 ModelはViewの事情から
2013-07-05 Rails のモデルはどうあるべきか rails TL;DR: Rails の model が太りやすいのは、生まれつき責務過剰だから。開発者が設計段階で責務を絞り、食べる量を減らしてあげよう。 Rails の model というのは、概念も実装も、とても奇妙な使われ方をしている。 いささか不気味だし、実害もある。 fat model はずっと Rails 界で話題になりつづけている。 すでに Rails のプロフェッショナルは抜け出せているのかもしれないが、まだ議論の余地のある話題ではあるようだ。 なぜ model が太るかというと、なんでもかんでも model に食べさせるからである。 一日中食べてれば元々どんなにスレンダーでも太るに決まってる。 コードのダイエットは食べる量を減らすか、外に出すしかない。 太ってから外に出すのがリファクタリングである。 後知恵的に
2013-06-25 Rails、あんたなんか嫌いよ - Rails での OO 設計について ruby rails 最近はずっと Rails 書いてるんですが、書けば書くほど嫌いになってくるんです。 倦怠期的なやつなんですが、 Rails さんの悪いところばっかり見えてきて、もう一緒にいたくないんです。 でも別れるほどじゃないし… という愚痴にみせかけた Rails での設計についての議論です。 長いけどコードは一切出てこないので通勤中にでもよんでください。 注意 一部にはげしい言葉遣いがでてくるので、読んで不快になるかもしれません。 不快になったとしても責任は負いかねます。 次のような方の期待に沿う結論はでません。残念でした。 Sinatra, Padrino の人 関数型の人 静的型付けの人 C の人 TL;DR Rails にだまされない。 自分の道を見定める。 欺瞞にみちた Ra
最近、いわゆるRailsの古めのバージョンで書かれたプチレガシーな感じのアプリケーションを触っていて思ったこと。 ちなみに、この話題は多くの人にとって大分今更感のある内容なので、逆にこれを読んで「今更だなぁ、そんなのとっくに結論出てるでしょ」と思わない人はヤバい。 めんどくさいのでデータ永続化を行うためのミドルウェアはMySQLという前提で書く。 単純に言うと、いわゆるRailsアプリのMVCではMがActiveRecordかなんかを継承していて、そのまま作るとModelとtableが一対一対応になってしまう これだと、どのModelにも属さないようなビジネスロジックを置くべき場所がどこなのかよくわからない 「どのModelにも属さないようなビジネスロジックなんてないでしょ!」「どのModelにも属さないビジネスロジックがある時点で設計おかしいでしょ!」と思った人は幸福である。頭が。 ちな
main.md 何がMVCをつなげているのか クライアントサイドMVC buzzwordっぽい Backbone.js Angular.js Knockout.js Ember.js とか 使ってますか? はてなでも一部本番運用/社内向けツールではよくみる クライアントサイドMVCフレームワークを利用するとMVCによる設計方針を簡単に使うことができるようになる MVC!MVC! Ruby on Rails Django Amon2 WebアプリケーションのMVCはここでは忘れろ!!! MVCパターンって何が良いの? いつもの図 MVC consists of three kinds of objects. The Model is the application object, the View is its screen presentation, and the Controller
月曜日のclient-side templating 勉強会 http://atnd.org/events/28189 で喋った内容をうろ覚えに書き出す。 クライアントMVCが求められるようになった背景 AJAXの流行 PushStateの流行の兆し メディア系のゲームで使えるAPIの充実 今まではページ遷移の度にJSのオブジェクトを破棄していた。 => シングルページでリッチなコンテンツが作れるようになり、JSのやることが増えた PushStateとは 遷移なしにURLを書き換える技術。HTML5 History API。 Twitter, Github, Facebook URLを書き換えるだけなのでコンテンツ(DOM)の操作はアプリ製作者に一任されている。 大規模なHTML書き換えに、クライアントサイドテンプレーティングが重要になってきた。 PushStateのライブラリ defun
今日話さないこと JavaScriptの基礎知識、jQueryの導入 気持ちいいUIやUXがうんちゃら CanvasやWebGLを使ったリッチでイケてるゲームの作り方
最近何度かクライアントサイドMVCフレームワークであるところの、Backbone.jsを使ってコードをかいたりしていたので、その時に感じたことをまとめて Kyoto.js で話してみました。 発表資料 "何がMVCをつなげているのか" Backbone.jsではMVCの各層をつなげるために、Backbone.Eventsというオブジェクトが用意されています。Backbone.jsのModelとViewのインタラクションは、ベースになっているBackbone.EventsによるObserverパターンによって実現されています。実際にBackbone.jsでコードを書いてみると、便利な機能はいろいろあるもののBackbone.Eventsの存在がMVCを実現するのに重要であることがわかります。 そこつきつめると、Backbone.EventsのようなObserverパターンを簡単に実現できるよ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く