程式者的胡言亂語

pageicon 星期三 五月 21, 2008

TWJUG “山頂洞人日記 - 回歸到最純樸的開發” 簡報

 

 

上週六(5/17)適逢TWJUG移師至新竹,所以我也準備了一個簡報分享。主題是介紹我自己開發Java應用系統的種種,包括工具、主要的設計方法、以及一個叫做LWDBAlight-weight database access)的輕量級程式庫。簡報的投影片可以在SlideShare上看到

因為同場還有tempo大濕要分享GWT的一些心得,所以之前我還開玩笑說這是「太空人」與「山頂洞人」的對決,因為我時常使用一些很過時的玩意,相較於對各式新技術十分熟稔的tempo來說(想到十年前,初次看到tempo寫的DDEDynamic Data
Exchange
的程式時,簡直嚇了一跳呢),這無疑像是太空人和山頂洞人之間的對比。

這當然有點像是為了戲劇效果而說出來的開玩笑的話(沒辦法,tempo實在太愛演了!),而我在簡報時似乎也刻意強調這種反差,不過,這當然不是指我都不使用任何的新技術或框架,而是在於我覺得問題的核心並不在該處。

我在簡報的一開始提到:「慾望總是超過真實需求,威力強大的東西難免複雜,選擇開發工具要在複雜度與威力之間選擇一個適合你的平衡點。」事實上,有許多人的能力不足以駕馭他們想要使用的工具,舉個很簡單的例子來說吧,我相信還是有一堆使用Java IDE的人,搞不懂CLASSPATH究竟是什麼意思吧。

究竟要使用什麼樣的工具,必須匹配到你自身(或團隊開發成員)的能力(或skill set),也必須匹配到所欲開發本身的需求。好比我提到的例子,過去我們用Struts,現在有時也用,但是對於許多新興、但屬性又單純的專案,我甚至直接用JSP來寫action。這背後的關鍵在於必須評估,使用這樣的工具究竟能為你帶來什麼好處,而不是整個社群或社群大多數的人都這麼做,所以你也從善如流的這麼做。

「回到最簡樸的開發」,好比有很多人想要回到最簡樸的生活一樣。何謂簡樸的生活?在我看來,簡樸的生活是滿足確切真實慾望的一種生活,你不會因為追求不必要的慾望,而為自己招來煩惱和痛苦。其間的關鍵在於審視自己真實的需求。

專案就和生活一樣,也有專案本身的目標和設定的需求。我看到有許多專案,同樣為了不切實際的慾望,為自己創造了不必要的需求,自然也為自己招來不必要的煩惱和痛苦。

我在五年前,也做Web應用程式的程式碼產生器、表單欄位檢核器、。為什麼現在,反而把它們都丟掉了。事實上,這些東西都超乎我現在的需求太多(當然,我是一定不會解釋為什麼我連鑰匙圈都要買GUCCI的,因為在這個理論下實在很難解釋)。

除了審視真實的需求之外,我提到另一個我覺得重要的地方,就是「問題不在你使用什麼framework,而是在於你的設計對不對」。

許多想要利用引進framework來節省自己的開發時間。在你能克服某種程度的複雜度以及學習曲線時,這能做到。不過,我比較懷疑的是,你究竟能節省多少時間。

即使你使用了Struts,你使用了Hibernate,但是,你沒有建立一個好的設計,所以你在Action class裡直接操作資料物件,也就是說在Action class中直接實作了business logic。光是你的Action class和你的資料物件之間的相依性,以及Action classbusiness logic實作之間的相依性,其複雜程度以及引發錯誤的機會,就足以在開發中後期把你拖跨。而這才是你真正很有可能會投入大量時間的地方。

你或許用了被普遍被採用的工具或應用程式框架,而這些工具或框架若是使用得法,也確實會有很大的助益,但根本的問題時常出在只是知其然而不知其所以然,那是一種「反正別人用了,我跟著用準沒錯」的心態在支配著。

把焦點移回你自身的設計,會更有助於真正的生產力。好的設計,能夠提昇品質,也能大幅的提昇開發的效率。有道是:「練拳不練功,到老一場空。」

迴響:

發表迴響:
  • HTML 語法: 關閉
把對母乳媽媽的感謝與支持傳出去

« 三月 2010
星期日星期一星期二星期三星期四星期五星期六
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   
       
今日

Search this blog

Links

Weblog menu

Today's referrers

Feeds