Commits

Tohru Ike  committed 8f4566b

improvement of some articles

  • Participants
  • Parent commits 420cc28

Comments (0)

Files changed (3)

+syntax: regexp
+^build$
+Installed
+==========
+
+.. code-block::
+   
+   pip install sphinxjp.themes.s6

File source/index.txt

-Closure Library
-=================
+Closure Tools
+===============
 
 ..
   http://docs.ssm.myz.info/yakumo3/etc/s6.html
 まずは質問...
 ---------------
 
-* ClosureLibraryを知っている
-* ClosureLibraryを使ったことがある
+* Closure Toolsを知っている
+* Closure Toolsを使ったことがある
 
 .. s6:: styles
 
     ['ul/li[0]', 'fade in', '0.3'],
     ['ul/li[1]', 'fade in', '0.3'],
 
-xxx
-----
+Closure Tools
+----------------
 
-* xxx
+.. s6:: styles
+
+    h2: {fontSize:'150%', textAlign:'center', margin:'30% auto'}
+
+Closure Toolsの構成
+----------------------
+
+* Closure Library
+* Closure Compiler
+* Closure Templates
+* Closure Linter
+
+Closure Library
+----------------
+
+.. s6:: styles
+
+    h2: {fontSize:'150%', textAlign:'center', margin:'30% auto'}
+
+Closure Libraryとは?
+----------------------
+
+* 独自のクラスベースオブジェクト指向プログラミング
+* 名前空間
+* クロスブラウザ対応
+* 様々なライブラリ
+* イベント機構
+* 豊富なUI部品
+* データ構造
+
+活用事例
+
+* Gmail, Maps, Docs, Sites, Books, Reader, Blogger, Calendar, Photos
+
+クラスの定義
+-------------
+
+.. code-block:: javascript
+   
+   goog.provide('tutorial.notepad.Note');
+   
+   /**
+    * Manages the data and interface for a single note.
+    * @param title {string} The note title.
+    * @param content {string} The note content.
+    * @constructor
+    */
+   tutorial.notepad.Note = function(title, content) {
+     this.title = title;
+     this.content = content;
+   };
+   
+   /**
+    * @param title {string} The note title.
+    */
+   tutorial.notepad.Note.prototype.setTitle(title) {
+     this.title = title;
+   };
+
+.. s6:: styles
+
+   'div/div/pre': {lineHeight:'50%'},
+   'div/div/pre/span': {fontSize:'40%'}
+
+クラスの継承
+-------------
+
+.. code-block:: javascript
+   
+   /**
+    * @param title {string} The note title.
+    * @param content {string} The note content.
+    * @constructor
+    * @extends {tutorial.notepad.Note}
+    */
+    MyNote = function(title, content) {
+    
+      //execute parent class constructor.
+      tutorial.notepad.Note.call(this, title, content);
+    
+      //goog.base(this, title, content); //same means.
+    }
+    goog.inherits(MyNote, tutorial.notepad.Note);
+
+.. s6:: styles
+
+   'div/div/pre': {lineHeight:'50%'},
+   'div/div/pre/span': {fontSize:'40%'}
+
+クロスブラウザ対応
+-------------------
+
+クロスブラウザ対応するため、様々な関数、オブジェクトをラップし、抽象化している。
+
+* dom, event(キーボード周り)
+* graphicsによるSVGとCanvas
+* XHR
+
+様々なライブラリ(1)
+---------------------
+
+例えば、forEach。
+ArrayやArrayLike(lengthとkeyを持つオブジェクト)専用の
+
+* goog.array.forEach
+
+Object専用の
+
+* goog.object.forEach
+
+様々なライブラリ(2)
+--------------------
+
+JavaScript自前のDateが貧弱なので、ラッパーオブジェクトやRange型を提供している。
+
+* goog.date.Date
+* goog.date.DateTime
+* goog.date.DateRange
+
+イベント機構
+-------------
+
+* 独自のブラウザのイベントをラップ
+* イベント機構を構築
+* カスタムイベントの登録
+
+豊富なUI部品
+-------------
+
+* リポジトリ内に豊富なサンプルコードがある。
+* サンプルコードのコードも読みやすい。
+
+http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/index.html
+
+データ構造
+-----------
+
+様々なデータ構造の提供。
+
+* map, note, pool, quoeue, set, treenode, trie
+
+Closure Compiler
+-----------------
+
+.. s6:: styles
+
+    h2: {fontSize:'150%', textAlign:'center', margin:'30% auto'}
+
+Closure Compiler
+-----------------
+
+* 構文チェック
+* アノテーションとコードに基づく型推論
+* ミニファイ
+
+ClosureLibrayの慣習(独自のクラスOOP、アノテーション、記法)に則っていれば、ミニファイの効果は絶大。
+
+Closure Templates
+------------------
+
+.. s6:: styles
+
+    h2: {fontSize:'150%', textAlign:'center', margin:'30% auto'}
+
+Closure Templates
+------------------
+
+ごめんなさい。使ったことがありません。
+
+Closure Linter
+---------------
+
+.. s6:: styles
+
+    h2: {fontSize:'150%', textAlign:'center', margin:'30% auto'}
+
+Closure Linter
+---------------
+
+* gjslinter
+* 伝統的なlint
+* スペースの数、関数定義文と関数定義分の空行の数まで監視してくれる。
+* 構文チェックとしてはClosure Compilerと被ってる部分ある...
+
+参考
+-----
+
+ClosureToolsについての情報をまとめとく。 rokujyouhitomaの日記
+
+* http://d.hatena.ne.jp/rokujyouhitoma/20110610/1307695232
+
+Closure Library のサンプル目次を作りました
+
+* http://webos-goodies.jp/archives/closure_library_sample_index.html