2006/07/20

Refactoring and Testing

"A refactoring will change memory consumption, probably have a detectable effect on speed, etc."
中文的軟體文件把 refactoring 譯為「重構」,這是一個改善既有程式碼設計的工作過程,以便提昇記憶體使用效率及整體執行效率。那麼,又該如何衡量重構後的成效呢? 如果原本已存在測試規劃的話,那重構後的第一步,就是既有的 Testing Case 仍能執行通過。
A refactoring is a test-preserving transformation.
測試規劃在軟體改善過程中所佔的重要性,由此可見。

2006/07/09

Automatic Summaries Using Haystack

在 Automatic news summaries with Plone using Haystack 文章中,提到如何利用 Plone 建置一個新聞網站,再搭配 Haystack product 來分析新聞稿的內容,自動進行內容摘要的工作。處理底層分析工作的則是 libots (Open Text Summarizer) 工具軟體,目前支援主要的歐美語文,如果想要加入中文支援,則可以從記載分析規則的 XML 檔案進行修改。文章摘要是項常見的需求,可應用的內容包括新聞稿、學術論文等。

2006/01/21

Empower to Save the Life

電腦網路是我們的重要工具,而程式語言是駕馭電腦網路的好工具。有效地應用程式語言,生產力提高之餘,能夠讓人們靜下心來,更常面對我們生命裡真正重要的課題。

在 Programming at Python Speed 一文中,Guido van Rossum 提到,「一個兩萬行的 Python 程式,可能相當於一個十萬行的 Java 或 C++ 程式,或是一個二十萬行的 C 程式。如果想要偵錯或進行系統調整,十萬行的程式和兩萬行的程式相比,花的工夫就天差地遠。在規模小一點的程式裡,這樣的道理還是存在的,一個伍佰行的程式,和一萬行的程式,相比起來是很不一樣的。」

程式設計人員的生產力,關係著他們的生活品質,也關係著更多其他人的福祉。

如果我是一個程式設計人員,除了解決自己的問題之外,還要能協助別人也解決他們的問題。這就是我學習 Python 語言的意義所在。在電腦世界裡,零件已經太多了,運算資源浪費的狀況也時有所聞,如何快速組裝零件並有效解決問題,成為關鍵的瓶頸點。

Jon Udell 在 Shipping the prototype 一文中提到,Python 的設計哲學,就是針對這樣的問題。一個易學易懂、動態具彈性、簡潔有效率的語言,直接帶領你去處理問題與建置系統,而不需要花太多時間在學習程式語言本身,或許,這就是 Python 書籍目前仍較少,但程式框架卻一卡車的原因之一。我發現同樣功能的程式,Python 設計人員會花費較少人力、時間、程式碼長度去完成,由於 Python 工程師能夠快速有效地完成程式碼,接手維護的人容易看得懂,想要擴充功能的人也輕鬆,因此大家都獲得生產力的提昇,這是應用 Python 最美妙之處。

2006/01/19

Plone Customization

很多人對修改 Plone 預設網站樣式感到興趣,Jon Stahl 是建置網站的好手,平常樂於分享自己使用 Plone 協助非營利組織的經驗談,最近便撰寫一篇心得,從設計到實作,介紹客製化的技巧。另外,也可以從 ZopeMag 找到 Hawaii 州政府應用實例。