看到這篇推，心中還滿有感觸的。本來就不是資歷混夠久、程式寫得好就能算得上資深工程師；資深工程師該怎麼定義其實很難拿個準，我的主管也曾問過我這個問題，我一時之間也很難完整回答。不過在面試時常常看到很多面試者都是應徵資深工程師，但實際問他們一些問題之後，卻發現他們卻缺乏了一些東西。
所以藉這個機會，我想從幾個面向來聊聊我心目中的工程師應該具備哪些特質與能力，而這些特質與能力，我都是從身邊厲害的同事們與社群的朋友們身上觀察到的，他們都是我所敬重的資深工程師 (當然職稱不一定是) ；同時我也會提供一些過去遇到的反指標，避免大家誤會資深工程師是否都是這樣的人。閱讀更多在 PHPUnit 中測試需要 closure 的函式2015-11-09不知道你有沒有在開發 PHP 程式的過程中，測試過需要使用 anonymous function 或 closure 的函式或類別方法？我在開發自己的函式庫時，就遇到了需要測試 closure 是否被正確調用的問題。
在解決幾個問題後，我發現其實做法並不難，所以接下來我就來介紹幾個測試 closure 的方式。閱讀更多利用 PHPUnit 與 Mink 來做 Web 測試2015-10-27如果你面對的是以前舊有的 PHP 程式，是時候負起一些責任了。
我知道它改起來很痛苦，一堆不良的 PHP 程式習慣都阻礙你的修正；使得每次調整功能時，到底改得對不對，得要等到上線才知道。想要重寫一個新版本，但太多的實作細節你不清楚；也沒有最新的規格文件，讓你無法為新版本做出功能無誤的保證。
現在你唯一擁有的，就是已經在線上運作的程式邏輯；雖然它可能還有 bug ，但至少大多數的功能是通過使用者驗證的。那麼先為它買個保險吧！確保之後的修改不會影響到其他功能的正常運作；而最直接的方式，就是把目前程式邏輯所呈現的結果或是使用者的操作，寫成自動化 Web 測試。
建立 Web 測試的方法有很多，這裡我將介紹我在實務上使用 PHPUnit 加上 Mink 搭配 PhantomJS 的方法。閱讀更多邁向 PHP 重構之路 - 以 Laravel 程式碼片段為例2015-10-05來上 TDD 課的學員問到一個 Laravel 程式碼重構的問題，這裡簡單地做分享。未來如果有好的實戰範例，這系列就會延續下去。閱讀更多在 Laravel 上用 MailCatcher 發送測試信件2015-07-29雖然 Laravel 在寄送測試信件上提供了 Mailgun 這個服務的串接方式，不過如果能夠在 Homestead 就可以直接測試是更棒的選擇；而 MailCatcher 剛好就提供這樣的功能，它能啟動一個 SMTP 模擬服務，並且讓我們透過 Web 介面來查看信件是否有被發送出來。
以下就簡單介紹一下如何在 Laravel 5.1 上使用 MailCatcher 。閱讀更多Laravel 5.1 Events Broadcasting 實務練習2015-07-26Laravel 5.1 提供了一個非常棒的 Events Broadcasting 特色，它能讓開發者建立一個 RealTime Web App 。作者 Taylor 也錄製了一個 Events Broadcasting 的教學影片，讓開發者可以更快瞭解這個新功能。
教學影片中雖然是使用 Pusher 服務來做事件推送，不過 Laravel 也可以搭配 Redis 來做到同樣的事情。考量到未來的系統發展，我打算採用 Redis 來當做事件推送伺服器，所以本文也會在此基礎進行說明。
以下就來介紹如何用 Laravel 的 Events Broadcasting 來實作一個簡單的聊天室。閱讀更多Laravel 5.1 正式釋出2015-06-10經過了幾個月的等待， Laravel 5.1 終於在美國時間 6/9 正式釋出了。同時 Laracasts 也推出了一系列的 Laravel 5.1 新功能介紹，絕對是每位 Artisan 必看的影片。
官方也介紹了 5.1 有哪些新特色 ，以下我會簡單介紹它們。閱讀更多在 Mac OS X 上搭建 Selenium 測試環境2015-06-03在開發網站的過程中，因為需要測試介面以模擬使用者的操作，最理想的工具就是 Selenium 了。