2007年3月2日 星期五

Blogger Hack Tip #2 - Javascript Code Style

在寫 Blogger Hack 時,如果是只有自己的網誌在用,那就怎麼快怎麼寫 :)
如果您的 Blogger Hack 會分享給他人使用,還是要注意一下 Code Style ,才能確保在別的網站亦能正常運行。
##CONTINUE##

請使用 Full Function Name
  • 若有使用 third-party library 如 Prototype/DWR/Moo.fx 或 jQuery 來寫您的 Blogger Hack 時(blogger_ext2 便是依賴 jQuery).
  • 請使用 jQuery(); 而不要使用 $(); 這樣可確保您的 Hack,拿到 Prototype 環境下依然能共行運作。
    (很多專業的 Blog 大部份都存在 Prototype / Moo.fx )

請別宣告太多 Global Function
  • 別讓您的每一個 Function 變成 Global Function ,若必要為 Global Function , 不要取常見的,因為很容易和別人的 Blog 沖突。
  • 以 XHR 的 callback 來說,大部份的 Blog 可能已存在一個叫 handle() 或 callback() ,若您的 Hack 亦叫 handle() 或 callback() 會產生 override 問題。
  • 為您的程式取一個 Function Name, 然後讓您的程式在這個 Function Name 下的 Nested function 亦或稱為 Inner Function。

  • var MyPluginSample = {};
    MyPluginSample.Run = function() {
      // Run some code
      // call other Function
      MyPluginSample.Util();
    }

    MyPluginSample.Util = function() {
      // util code
    }



善用 Inner Function
  • 假設您的 Function A,B,C 只會在 Function D 中便使用,請將 A,B,C 變成 D 的 Inner Function,來達到 Private Function 的效果。


  • var MyPluginSample = {};
    MyPluginSample.D = function() {
      // Private Function A
      function A() {
      }
      // Run some code
      // call A Private Function
      A();
    }



Blogger_ext2 Hack Tip:
  • BloggerExt.register 用來註冊 plugin ,它表示被註冊的 Function 會在 Document.ready 時自動為您執行您的 Function 。

  • BloggerExt 是建立在 jQuery 基楚下,善用 jQuery.extend extend 您的 Object。



參考資料:
Core JavaScript 1.5 Reference
http://www.crockford.com/javascript/

Technorati Tags: , ,
張貼留言