星期五, 5月 25, 2007

下車再上車?


以前的同事pj曾經說過一個笑話,一群人開車到郊外踏青,在差不多算是荒郊野外的地方車子故障了,一群人急得想各種辦法要把車子修好,但是都徒勞無功,最後,一位在微軟工作的軟體工程師說話了:「我們把車子熄火,全部的人下車,再上車試看看,可能就沒問題了。」凡是用過電腦的人,多多少少會遇到類似下車再上車的狀況,對像可能是特定的應用程式,也可能是整個作業系統,怎麼找就是找不出問題,但是,把程式重開或是重開機之後,問題就不見了。而開發人員遇到這種狀況的機會又比一般的使用者來得高。



這種狀況,常常是因為系統在開發過程中沒有考慮到一些特定的狀況所造成的。但是隨著作業系統愈來愈複雜,今天,除了特殊的應用之外,單工的作業環境已經愈來愈少見了,導致要在開發階段就考慮到所有的狀況已經是愈來愈不可能了。為了因應這種狀況,近代的程式語言大都包含了例外處理的機制,這個機制最主要的目的就是讓程式在遇到開發時期未考慮到的狀況時,能夠死得漂亮一點,死得優雅一點,最低限度,要讓使用者知道,程式已經死了,而不是讓使用者去和一個不穩定狀態的系統打交道。



例外處理,是程式設計的一個很重要的課題,雖然有些人認為例外處理讓部份程式流程更不容易被追蹤(trace),但是不可否認的,在支援例外處理的程式中,程式碼可以以更容易被人類讀懂的方式來表示,而不是一長串的if/else if /else。畢竟,程式碼除了建立系統之外,也是程式設計師之間最主要的溝通工具。如果說,少男漫畫中的主角是用拳頭交心,那程式設計師就是用程式碼交心了。

需要wiki嗎? 自己挑一個吧!!

這幾年,wiki (維基)愈來愈紅,不管是公司、社群,甚至個人常常都會有個wiki。但是愈來愈紅代表的也就是選擇可能會愈來愈多,在wiki的領域,可選擇的軟體也愈來愈多,甚至也可以偷懶直接使用別人的wiki 主機服務。這麼多的wiki怎麼選呢? 當然,就是要靠比較多,這次介紹的網站,就是可以幫你比較常見的wiki間的差異、支援等等,讓你更方便的選擇一個自己的wiki。


這個網站收錄了87個Wiki軟體及服務(主機服務),可以讓你對各個wiki之間的功能作詳細的比較,更提供了一個Wiki Choice Wizard,透過幾個問題,先幫你作篩選,讓你不用在87個軟體間漫無目的的尋找,需要wiki嗎? 挑個自己合用的吧!!


WikiMatrix - Compare them all