2012年2月23日 星期四

SD文件?! 抑或SOP文件?!

最近一直在思考一個問題
以開發者的角度,技術是整個系統的主軸,沒有技術系統是沒法完成的
以管理者的角度,文件是整個系統在還沒開工前、開發進行中、系統上線時、進入維護期,所需要的最重要的引導
開發者覺得只要看程式碼,即可以了解想做什麼,寫文件根本就不需要,又或著看文件都不是太需要,只要對他引述即可清楚想要做的事是什麼?!(這往往就是造就了後來的死無對證)
自己的經驗中,有文件做為一個指引,確實在執行中可更容易的在作業過程中,要想要完成的事做了較正確的執行(CODING),沒有文件也確實不是不能做事,只是這中間確實有太多需要自己去拼湊的部份。自己拼湊也不是無法完成想要的功能,只是在最後驗收時,是很有可能有很多功能跟實際想要的會有所落差,可想而知在最後就是一再做更改。
所以,文件是不是很重要。不可否認文件確實是很重要。
不過,要開發者去寫文件,著實是讓大多數開發者都很頭痛,開發者的專長是如何以自己所熟悉的技術去完成所需的功能,而不是如何去製定規則(因為則規都是在他的腦中)。這時要開發者去作一份文件,該如何才可以達到文件的產出?!
待過工廠或較大的公司的人,常看到一種文件-SOP,這種文件看似就是一堆的圖文。不過我卻覺得這種文件,對於引導確實起了很大的作用。一般SOP文件看似很DUMMY,只不過是Step-By-Step,在導引過程讓使用者,可以按著這個文件,一步一步的完成想要的工作。
關於SA/SD文件,文件寫的好壞,見人見智。不過,個人接觸過的文件中,有的寫這些文件的可以交待的巨細靡遺,把所有使用者交待的都說的清清楚楚,有的寫出來就只是把資料表做成整理。或許當中各有好壞,在使用者解讀過程中,我卻認為理解力高的在解讀時看過一遍就可以了解,理解力差的需要邊執行時返復再來跟寫文件的人理解。
曾在過去的公司的講師訓練課程中,有一句話深刻的在我心裡

文不如表,表不如圖,圖不如示範

在製作簡報時,我一向以這個原則來制作,確實收到不錯的廻響。對於,簡短的簡報中要能報答想要給聽眾,在這麼短的時間內就可以知道想要表答的內容是一件不容易的事。(看過蠻多讀書會或座談會中,講者想把東西講仔細,但往往是講得愈仔細,聽者聽得愈糢糊)
所以若是可以把SA/SD文件做的讓一般使用者都看得懂,是較讓系統設計者及開發者,可更精確的去做執行的動作。若把SA/SD文件做成SOP格式般的簡約,是我值得去思考的,專案不能準時結案,我想確實是在每個案子成員都不樂見的狀況。

2012年2月15日 星期三

Play Framework Study Regular Note

  1. 通過說明下載.zip隨意放個地方就可以了,個人就愛簡單,所以在mac下brew install play安裝及完成設定,不過在找安裝目錄時卻不知brew幫我裝到哪去,使用brew list play,好的,原來是在/usr/local/Cellar下,這點雖不算是play frame專有問題,還是記錄下來
  2. 在 1.2.3版中官方文件中說明Model使用delete是先用 findById後再叫該物件的delete,不過原始碼沒有找到沒有參數的delete方法,只有  public static int delete(String query, Object... params)可叫,源碼文件提到是使用HQL,HQL格式應該是 FROM table_name WHERE id = :id,不過我這邊試的應該是使用JDBC用法 FROM table_name WHERE id=?
  3. JPA model可使用jpagen的mudule,使用時必需在conf/application.conf 定義連線資訊 其中 db.driver db.url db.user db.pass 及jpgen.mode為必填
  4. dependencies.yml  增加時格式如下:

    require:
        - play
        - play->spring 1.0.2

    reference:http://www.playframework.org/documentation/1.2.4/dependency#format

    a.play 1.2.3在做precomile時,會告知現在建議放在  dependencies.yml 不再建議放在 application.conf內

    b.需使用play deps 命令才會在這個專案中安裝所需的mudule lib

    c.需使用到非play!所提供的module時,需要放在lib目錄下,需參maven內容,如下說明,maven 片段如下:

    <dependency>
    <groupId>org.springframework.flex</groupId>
    <artifactId>spring-flex-core</artifactId>
    <version>1.5.2.RELEASE</version>
    </dependency>




    在dependencies.yml 使用如下加入


    - org.springframework.flex->spring-flex-core 1.5.2.RELEASE


    - groupId->artifactId version



  5. continue…

2012年2月13日 星期一

Eclipse WTP 3.x版 把自定的Lib在 開發時depoly到 test server上

在過去使用Eclipse WTP開發J2EE的application時,習慣把自己常用的 Libs放在另一個目錄(非workspace下),使用

【Properties】=>【Java Build Path】=>【Libraries】=>【Add Library】=>【User Library】=【User Libraries】

去管理常用的Lib

不過在deploy時需要另外打把這些項目打勾(需要一個一個打勾,有點麻煩,在什麼項目己經忘了)

新的WTP(3.X)版本,只需在【Properties】=>【Deployment Assembly】裡在【Add】裡選擇【Java Build Path Entries】

去擇撰建好的【User Library】就可以這些項目,在deploy時傳到測試server的Lib目錄中了