網站技術發展史

前言

這篇主要是對 Web 技術的發展史做一個概略的介紹,讓大家對目前 Web 技術的演變能有初步的認知。

不過製作網站的技術很多,這裡我僅針對瀏覽器、 HTML 、 CSS 及 JavaScript 做粗略的演進說明,細節部份就請大家參考維基百科或其他更深入的資訊。

另外文章內容或多或少會帶有我個人的主觀意見,而我也儘可能透過網路上的資訊作查證,但一定會有錯誤及不足之處,還望大家能夠指正或補足。

閱讀更多

用 Imagick 建立 CSS Sprites

這是工作筆記,介紹如何用 Imagick 製作出 CSS Sprites 。

閱讀更多

領悟 - 程序員版

時程一直是專案很難掌握的東西,尤其是上頭訂下一個尷尬的死線時。然後自己明知道不可為,但為了面子就只能勉強答應下來。

所以新網站在還沒完全測試後就上線了,只好邊看規格邊修 Bug 。

這時腦海裡突然浮現出一首歌的旋律,心有七七煙的我,就改出了以下的歌詞:

閱讀更多

Content Swap 模式

不曉得大家有沒有遇過一種狀況:當某些資料的快取失效時,需要重新建立,但建立快取需要花費很長的時間;這時如果程式需要讀取這些快取時,就會有一段空窗期。

那麼要如何解決這種問題呢?我想方法應該有很多種,但我個人認為比較容易實作且有效率的方式就是: Content Swap 。

閱讀更多

初探 Zend_Search_Lucene

全文檢索一直是內容型網站很重要的功能之一,它讓使用者可以快速透過一些關鍵字來找到網站中符合條件的文章。

在 Zend Framework 裡, Zend_Search_Lucene 就是提供這個功能的套件,它是以 Apache Lucene 專案為參考,而以 PHP 實作。

Zend_Search_Lucene 的說明在官方手冊中已經寫得很詳細,以下我會用較為簡明的方式來介紹重點。

閱讀更多

讀書會報告 - 深入淺出 MVC

MVC 一直以來是初學者很難跨過的一個觀念障礙,因此前陣子,我便在 PHP 讀書會中分享了這個主題:深入淺出 MVC 。

這次的內容主要介紹了 MVC 與 MVP 的觀念,以及簡易的 PHP 及 JavaScript 實作,希望能讓大家對 MVC 有進一步的認識。

閱讀更多

學習設計模式的心得

從幾年前開始接觸設計模式之後,一直覺得設計模式真的是太酷了!而這其間看了一些設計模式的書籍與文章,也實作了一些模式,深深覺得大師們的教導是對的。

但要到達大師所體悟的境界,以我目前的程度來說還差得很遠;所以就我個人所學的過程,我簡單整理出一句話,那就是:

找出模式,熟悉模式,模仿模式,忘掉模式,而後領悟模式。

閱讀更多

實戰 PHP 重構與模式

重構對一般開發者來說,實在是一件吃力不討好的事情,更別說想要把程式以模式來重構了。

在這次的讀書會報告裡,我首次挑戰這樣的題目,為大家介紹如何將模式真正地應用到重構裡,也以實際的例子來展現重構與模式的威力。

當然以我個人的能力,還是有很多不盡理想之處;但還是希望透過這樣的介紹,讓大家對重構與模式有不一樣的看法。

因為在讀書會是用 Live Demo 來呈現重構的流程,所以可能在看投影片和範例時,會無法感受到重構與模式的魅力,這點要請大家多多包涵。

以下就是本次報告的投影片及範例:

閱讀更多

[PHP] 簡易的物件傳遞方法

在 PHP 中,傳遞物件是很容易的事;我們只需要將物件的狀態封裝起來後,以字串的方式傳遞給另一端的程式還原執行即可。物件的傳遞用途很多,例如我們在 Gearman 中,就可以在 client 把物件當做是 job data 傳遞給 Server 。

註: Gearman 的介紹可以參考拙作:Gearman 心得

以下我們來看看範例。

閱讀更多

重構實例介紹 – 實戰篇

接續前篇:重構實例介紹 - 分析篇

在上一篇中,我們分析了該功能的每段程式碼,也瞭解有哪些地方需要改進,接著我們就來進入實戰的階段。

在實戰的階段,我們要做兩件事:建立自動化測試,重構程式碼。

閱讀更多