被遺忘的 template

現在差不多大家也在談 PHP 呢(拜各種實用軟體如 WP,phpBB,postnuke 所賜)。PHP 的好處(也是害處)就是 HTML 和 Logic 撈在一起。好處是,PHP 不會像 Perl 和 Java Servlet 那樣要每行用程式碼把 HTML 輸出到網頁上(echo, print, println),也不用將那些 double quote/single quote 逐個逐個 escape,那麼輸出 HTML 便方便得多。不過,在編程的角度看,方便隱含難以維護的意思。好像除錯、明白別人的程式碼,如果程式碼沒有經過精心的包裝,讀者可能便會遇上老鼠拉龜的情況。對人來說,同時理解兩種電腦語言也許太難了。
Continue reading

PHP 哪個媽的中文譯者?

不知道自己的名字列到外國網站裏是否件很光榮的事,還是不知道他們真的有心去譯。我這樣覺得啦,如果真的有心去做,該一做到底,而不是到處留洞,給人家寫滿英文字的中文網站。

我還記得先是所謂的「台灣中文版」的參考文件先出爐。後來台灣版半途而廢,譯者生死不明,便又多了一個「香港廣東話版」參考文件。我想這個應該是避免間接觸犯分裂國家罪吧?怎麼就不用腦,叫人家刪掉台灣版,統一叫正體/繁體中文版不就行了?雖然「香港廣東話版」給多譯了幾篇,不過有不少頁面的內容跟「台灣中文版」內容就是一樣!那是哪門子的廣東話?母語教學應該要認真的實行實行。

番梘全接觸

在最近一次簡報以後,見某位著重「Selling Point」,「流動性」的教員對我們的 project 不大感到興趣時,我們為了博君一笑,最後決定將其中一套次系統搬到流動平台上發展(說實點吧,將 PM 信箱寫成為 PPC 的程式)。用戶端不用說是 .NET 的了,M$ 東西還是要用 M$ 嘛。伺服器端還是用 PHP,那麼和網站的整合性便能提高了。可是,用甚麼協定溝通才傷腦筋呢。

最初構思使用自行製作的 XML 格式來接收,而使用HTTP GET 來傳送由用戶端傳來的指令。可是,每次也得要把一大堆變數放到 URL 裏,也很煩人的。後來想到當初 M$ 推廣的 Web Service (.NET 的大賣點啊),想著可以透過特定的 XML 格式(SOAP,Simple Object Access Protocol)和 HTTP Header 便能做到 RPC (Remote Procedure Call) 的效果,又不用自己寫程序解讀 SOAP 訊息,真方便呢。

.NET 已內置支援 SOAP,PHP 在三個方案的選擇下我挑了 NuSOAP (其餘為 SOAP extension 及 PEAR SOAP lib),因為它還有自動製作 WSDL(像 IDL 的東西,提供客戶端關於 web services 的設定及描述) 的功能,技術也較成熟,便選了它為 PHP 作 web service 提供時的工具。

現在,只要在 PHP code 裏加點東西,便能於其他支援 SOAP 的語言環境直接使用 PHP 寫的 function,很方便哩。或許有人會問到:為甚麼要那麼麻煩,全部用一款語言寫不就好了?
第一:安全問題。假使客戶端提取的資料要到資料庫提取,要是用寫在一起的方法,不得不把資料庫的密碼存到客戶端的程式裏。那麼用者只要看看傳輸數據,便可輕易得到密碼,從而直接進入資料庫……
第二:API 支援。某類 API 在某平台支援比較好,反而另外一些平台則較差甚至沒相關的 API。要是只能限定在支援少的平台作開發,不得不使用這種分散程序的方法。
第三:程式碼再用。要是原本有一套己寫好的程式,何必又去把程式碼翻成另一套語言呢?

說了那麼多,還是想說說這種分散編程的好處。要是到將來有對物件存取的支援便好了。