feeddictこの広告は、90日以上更新していないブログに表示しています。programのページで脱稿前の原稿がどんどんアップされてく予定で、2011.8.25時点で2章までアップ導入にあたる1章だけ無料公開してたので斜め読んでみた。現時点でウェブはここで想像した世界をあるレベルでは実現できるところまできた進化したブラウザテクノロジー(html/css/webGL)。非同期プログラミングスタイルのサポートnodeのデザインによってnodeはスケールしやすく、高速で、可用性の高いプラットフォームになったWordSquarednodeのパワーを示すよい例48時間で開発されたものMMOゲーム。割愛nodeは既存のものと違うアプローチを出したテクノロジーをシンプルにしながらも生産性をあげることを具体的に提示そのまえにwebにおけるnodeの歴史的な位置づけをおさらいwebの世界におけるインタタラクティブさの徹底、という流れwww初期webはdocumentベース。webアプリもdocumentモデルの影響下。mapsdocumentのメタファーでwebアプリを考えることを過去のものにajaxという技法を広めたajaxアプリ「まあまあリアルタイムな」ウェブアプリwebでのインタラクティブさの可能性を広めた2006twitterがローンチほぼリアルタイムに行われるコミュニケーション桁違いに大きい数のユーザ向けに刻一刻変わるコンテンツ提供をどうやって実現するか、という問題が全面に2009年。ryanがnodeつくる膨大な数のユーザへの情報のプッシュをどうやってこなすか。割愛nodeのイベントドリブンプログラミング非同期プログラミングと言う人もいるアプリのロジックを逐次的に書かないアプリが各イベントに対してアプリがどう反応すべきか。これを書いていくnodeのは3層にわかれるまず、nodeのコア層。libev,libeio,v8次に、コアモジュール最後に、サードパーティモジュール。割愛jsエンジンの世界でv8がもたらしたイノベーションv8ではjsをコンパイルされるインタプリタに渡されないオンザフライでコンパイルJITコンパイルと呼ばれるテクニックJITは別言語で実績あるテクニック。Dijkstra)シンプルさとミニマリズム。nodeハッカーに気に入られてるところゼロから作られた。トータルに非同期python/twisted,ruby/eventmachineとここがちがうnodeのAPIはシンプル。パワフルコアモジュールたとえばhttpモジュール(httpプロトコル関係の機能)、netモジュール(tcp/ip系の機能もろもろ)などネットワーク系の機能を提供するモジュール群nodeのAPIは通常のウェブアプリが実装できる機能以上のものが提供されるwebsocketサーバ、ftpサーバー、dnsサーバー実装できるudpは?nodeのコアモジュールでサポートudpではデータ送信可否の確認をスキップ。ストレスなんだが、ストレス軽減する仕組み・モジュールは開発されてる。非同期ライブラリ使いたければ学習コスト発生nodeには他にないエレガントさシングルスレッド、サーバーサイドI/Oについて既存ライブラリがゼロの言語が欲しかったryanryanにとってjsはパーフェクトjsのシンタックスと命名ルール。c/javaの影響jsは簡潔。java/cよりコード量が少ない。js暗黒時代で横行した過小評価の原因ブラウザ間の互換性の乏しさ、デバッグが難しい。jsの現在ブラウザ間での実装は改善。非同期処理のロジックの記述がjsは得意jsでは関数はファーストクラスオブジェクト関数は引数にも、戻り値にも、変数への代入。普通はクライアント/サーバーサイドで使う言語・フレームワーク違う頭を切り替える手間。node/jsだとこれがない生産性と楽しみをアップウェブアプリケーション"サーバー"を作る単にサーバーサイド用のコードを書くだけでは無理httpをサポートしたサーバーを書くことが開発の一部になってる場面はあるrails/django。nodeもphpだと無理phpではapacheをコントロールするためのコードを書くくらいアプリにクリーンなURL(=パラメータや拡張子まみれじゃない)実装したいphpで実装したければmod_rewriteのようなurlようなurl書き換えをするツールが必要phpの外部のウェプアプリケーションサーバーかける開発では、こういうハックはたいてい不要になるnodeでウェブアプリケーションサーバーを書くrequestオブジェクト、responseオブジェクトを処理requestオブジェクト、リクエスト出したクライアントの情報がぎっしりresponseオブジェクトには、メソッド色々。メソッド使ってクライアントへデータ送るフレームワークがnodeコミュニティから色々リリースされてるアプリケーションサーバーでたいてい必要になる機能を提供するrequest/responseオブジェクトを活用されてるexpressが一番ポピュラー。8章でとりあげるmvcパターンに準拠したnodeフレームワークがたいていサポートしてる機能も提供してるurlパターンとアプリケーションロジックと結びつけるセッション機能テンプレートエンジン画像など各種メディアのサポートおさらい。api使ってコントロール。データへのインターフェースビュー:テンプレートコントローラ:ロジック。演算子+の意味がcとc++で変わってるjavac++に比べると難しいところは少なめ、cより冗長、動的言語より柔軟じゃないjs開発スピードとサーバーソフトウェアの多様性がアップするはずnode/jsで書かれた伝統的サーバアプリケーションは色々プロジェクトがあるdnsサーバクローラーメッセージキューサーバーnodeの低レベルでの能力も活躍できる場面ある事例としてBrowserlingStackVM使ってるStackVMはnodeベースの、ブラウザで実行できるVMStackVMはQEMUをエミュレータに使ってるBrowserlingがVM上でテスト走らせるStackVMは動画とキーボード/マウス操作データを中継するVMからユーザが使ってるブラウザへとデータ中継nodeでプロトコルを開発(補足)このトピック話がnodeというよりnode周辺の話題node内でのトレンド2つリアルタイムウェブ新しいプロトコルの開発websocketの話(割愛)websocketが策定されてる経緯とかsocket.ioの話とかwebの発展の流れ王道オープンさを尊重。誰がアクセスできるか、誰が情報を得てるかを分析と把握をかんたんにしていく流れ反オープン化の流れへの反応としてプロトコル開発が進められてるsnsが提供してる機能を自由に使えるようにするため新しいプロトコル、新しい情報分散化のしくみプロジェクト乱立。Markowitz「オフィスで昼寝。Czaplicki「脱FRP。月別アーカイブはてなブログをはじめよう!vwxyzさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。