目前工作上正在開發一個申請批核系統。系統的設計很簡單,只是WORKFLOW加上APPLICATION FORM,加上基本的PROXY ROLE。APPLICATION FORM上的都是個人資料,不同的FIELD都有一些DEPENDENCY,但是卻又不太多。有部份涉及ONE-TO-MANY的關係,像是一張APPLICATION FORM可以連繫到一個主申請人外,還要有一堆副申請人。有時在想,如果沒有ONE TO MANY和WORKFLOW的話,用GOOGLE FORM就已經可能做好了(笑)。
由於公司的系統有點舊,用的是TOMCAT 6+JAVA 7,JAVA7 SUPPORT了ANNOTATION,但是TOMCAT 6卻沒有SUPPORT。沒有用任何像SPRING的框架,只是很平實地用SERVLET,前端也是用要命的APACHE VELOCITY,加上古舊JQUERY的LIBRARY,也沒沒有用WAR DEPLOY,要每個CLASS FILE上載。沒有JENKINS,沒有maven,SVN也是DEVELOPMENT去到一半才有。幸好的是不用SUPPORT MOBILE。
目前有一些問題
- APPLICATION FORM的CLASS好像過大,不太懂分拆,我在想APPLICATION FORM的ACTION和APPLICATION FORM的FIELD應不應該拆開做兩個CLASS
- 有時想APPLICATION FORM OBJECT比較STATELESS,所以用method scope variable比用class scope variable得多,但如果這樣的話,可能每次要VARIABLE時都要去資料庫走一趟。要重新想想LIFECYCLE的問題。
- 其實一個DATABASE connection的life cycle跟著servlet的life cycle走,還是每次用database才開一個出來好。
- 可不可以在ECLIPSE上做AUTO DEPLOY?目前很笨的每個CLASS FILE COPY上去。可能會嘗試下載一個FTP PLUGIN。
- 怎樣COPY TOMCAT上的東西到LOCAL MACHINE作LOCAL的DEVELOPMENT,因為不清楚某些LIBRARY的LOCATION。
- 其實完全沒有想過CONCURRENCY的問題,完全沒有考慮THREAD-SAFE和考慮用TRANSACTION。
其實已經把整個系統的雛型做好了,希望趕得及在UAT前把所有CODING TIDY UP。