2012年5月28日 星期一

Proxy Pattern 使用 ~

再來介紹Proxy Pattern :

我想把控制或著是視覺性類別和資料之間的東西切開一點,第一個就會想到應該是要在他們之間加一個中間控制class,就是很像這個Proxy pattern原理,需求物件跟執行物件可以無任何關連,用代理者物件做為中介.

稍微解釋一下另一種解釋方法(也很合理)
物件在要被初始化的時候(一般的寫法,一開始就會在主架構初始化下把所有資料物件等等預設物件都先實體化,這樣有點集中式壓效能的感覺),有可能一推東西都需要去下載,也比較花時間,我希望用到的時候再去下載就好了,這樣不僅可以加速整個系統的初始化效能,也不至於下載過久,這也是Proxy Pattern的另一種意義.



實作要領:

1.Proxy與RealSubject都實作同一個介面(具有相同方法)

2.Proxy會參考RealSubject(但不new出來),Proxy所實作的方法都是透過這個變數去執行RealSubject所實作的方法

3.Client只需要對Proxy進行操作即可

GIT 使用心得

沒辦法 很多東西我都要自己來用
我一直覺得這個Git 是一個蠻夯的東西
所以我決定要來玩玩

我目前用的電腦是win 7
所以我就去官方下載了
我是使用msysgit 的版本
 (原意就是在windows理會跳出命令列 使用git xxxx等等的來控制版本 原因之一 回家後我還是在使用linux和macos 所以裝這個版本幾乎通吃)

也可以使用TortoiseGit (傳統的ui控制介面來達到版本控制的方式)

======================================================================

首先我們要知道GIT是甚麼?

Git就是一套版本控制軟體,類似一個SVN的中心式版本控制,git是分散式版本控制,幾乎很多事情都在本機端處理.舉例來說,我在無網路的狀態下做commit,未來有需要做merge的時候,在跟master做merge的動作就好了.

每個開發者都有自己的repository(Repo:倉庫)
只要安裝完上述的工作後,你點一個空的資料夾,就會出現兩個選項,bash(命令列)和gui,bash就是命令列操作模式,gui是圖形操作介面.

簡單的使用介紹:(win7)

一般我們會開一個資料夾.點選右鍵,選擇Git Bash Here,就會跳出命令視窗,你所在的資料夾位置就是在你點擊右鍵,開啟命令視窗的資料夾裡面.一般要使git變數,就要打git init,會在working directory下建立.git目錄,裡面放的是git repository的檔案,有了這些檔案,你才可以在這個working directory裡做git的操作。

@@@以下是比較常用的git方式

$git add . (add *)
        當你新增了一項檔案,想要commit上去,新手常犯的錯誤,每次都會跳出Untrack files,原因是因為你沒有去做add這個指令列.意思讓檔案們進入所謂的staged狀態,才能接著把它們commit進Repo中.

$git add 主檔名.副檔名
        個別的檔案加入staged.

$git reset 主檔名.副檔名
        有些檔案你不想要再讓它受到版本控制了,也就是要把它unstage.

$git diff
        檢查版本裡檔案內容的差異.(文字檔就有很明確的比對)

$git commit, git commit -a (automatically in one step) :
        跟svn意思相同建議還是要註解,第一行標題,第二行內容

$git status
        知道目前Repo中的檔案們到底是什麼狀況,到底誰要add,誰要commit.

$git log
        檢視一下這個Repo之前commit的歷史記錄.

$git checkout xxxx (xxxx版號前四碼) 或著switch到分支版本xxxx
         此checkout並不是把專案抓下來的指令,一般常使用svn的人會誤解其意.之後pull clone fetch這些指令才是把專案抓下來的方法.


$git clone url [mast]:
        會把遠端的repo整個專案抓下來,放在目前路徑下的新目錄中.(所以不需要先把新目錄建立成Repo,就可以整包抓下來,隨包附上.git目錄).

$git pull url [mast]:
        會把遠端的repo整個專案抓下來,跟你目前所在的Repo及所用的Branch作合併(Merge),此指令等同Fetch+Merge.

$git fetch url [mast]:
        會把遠端的repo整個專案抓下來,但不跟你目前所用的branch合併,而是放在本地中的另一個Brance(remoteBranch).


$git remote add origin url
        新增 url 的識別子,以後就可以直接在url處輸入origin(你所設定的編號).

$git init --bare
       這個目錄不會有.git目錄,而是把原先.git目錄中的東西都放進來,而且你日後在這個目錄中不會看到你的程式檔案.比較常用於git server,到時你只要指定這個專案裡面的位置即可pull出來專案.

目前是把git server架在dropbox上,做一個自行備分的系統,也比較有隱密性的效果.
一般還有就是把資料備份在github上,免費版是會公開給大家看其內容的,所以選擇上因人而異囉.教學
要不然就是自己架git server來用.


     





2012年5月21日 星期一

CacheAsBitmap 意思

最近在效能上研究一下 ~
之前在做專案的時候 有發現到 CacheAsBtimap設true 在背景上 ~ 有很明顯的效能改善

還記得是在戲谷大老二裡的夜市主題 有複雜且豐富的背景動畫 ~ 當時使用起來的時候 ~ 是發現到一件事情 ~ 在我的電腦或著別人的電腦上跑 ~ 都會把CPU 吃琱琱 ~ 所以當下就必須把這個主體做一些大修改了 ~ 不管是畫面品質 和 不必要的動畫 都有稍微調校一下 ~ 雖然有好了一點 ~ 但是 還是頓頓的 ~ 後來使用CacheAsBitmap的時候 ~ 就有了明顯的改善了 ~~

這個詞意其實就已經表達他的意思了, 顯示物件(向量圖)的外觀就會作為點陣圖來儲存於記憶體上.不過相對的記憶體也會上升所多. 所以要警慎的使用 .

2012年5月8日 星期二

PureMVC優缺點

優點:
1.code寫的分明
2.架構清楚
3.擺拖傳統語言的束縛
4.流程管控佳
5.內程優良的設計模式

缺點:
1.不易卸載模組
2.code很宂長
3.單元測試不易

5:3勝