念念不忘,必有迴響。有一口氣,點一盞燈,有燈就有人。

深入探討 Angular 的 DI 與 Provider

深入探討 Angular 的 DI 與 Provider

DI (Dependency Injection) 對於很多前端開發者是個陌生的名詞,畢竟以前沒有 DI 時,也沒有什麼東西寫不出來,為什麼 Angular 要全面提供 DI 與 provider 呢?

如何在 TDD 使用「重構九式」?

如何在 TDD 使用「重構九式」?

TDD 不僅是先寫測試而已,當第一個 綠燈 之後,剩下的半壁江山就是拼重構功力,重構的書多半來自於 Java,因此有些 PHP 獨門的重構技巧在 Java 書上是看不到的,也因為編程思維的持續演進,重構也有了新的面貌,本文整理出自己在實務上,天天必用的 9 個適用於 PHP 重構的 SOP。

如何使用 Forever 搭配 Laravel Queue 寄送 Email?

如何使用 Forever 搭配 Laravel Queue 寄送 Email?

傳統寄送 email 是採用同步的方式,也就是當你寄出一封信,必須等 email server 回應後,才可以繼續後續的程式動作,因此使用者會有明顯的等待時間;若能搭配 queue 機制,寄送 email 後,馬上以非同步的方式回到原來程式繼續執行,會有另外一個 process 去消耗 queue,負責寄送 email。

如何使用 PHPUnit 測試 private 與 protected method?

如何使用 PHPUnit 測試 private 與 protected method?

剛開始學習寫測試時,最多人的疑問就是該如何測試 privateprotected method? 理論上不該去測試 privateprotected,本文會介紹一個 PHP 邪惡的技巧來完成測試,但建議除非萬不得已,不要使用此方法。

如何使用 PHPUnit mock Closure?

如何使用 PHPUnit mock Closure?

若有需求需要抽換,物件導向編程教我們的是開 interface 達成解耦合,然後使用依賴注入,最後達成依賴反轉目標,隨著函數式編程越來越流行,函數式編程教我們將 closure 當成參數傳進函式,一樣可以解耦合與依賴反轉,尤其對於只使用一次的需求特別有效,不用在另外開 interface 與 class,但在單元測試則面臨挑戰,我們該如何 mock closure 呢?

如何在 WebStorm 使用 Angular CLI 建立 Angular 專案?

如何在 WebStorm 使用 Angular CLI 建立 Angular 專案?

Angluar 提供了 Angular CLI,一些原本必須自己使用前端自動化工具的部分,Angular CLI 都能幫我做到,讓我們不用為整合前端工具煩惱;除此之外,WebStorm 也支援 Angular CLI,讓我們可以在 WebStorm 內直接使用 Angular CLI。

如何設定 WebStorm 的 TypeScript 與 TSLint ?

如何設定 WebStorm 的 TypeScript 與 TSLint ?

WebStorm 已經內建 TypeScript,只要安裝完 WebStorm 就可以開始寫 TypeScript,但由於 TypeScript 更新快速,你可能會想自己更新 TypeScript 版本,此外,WebStorm 並沒有內建 TSLint,需另外安裝設定。

深入探討 Anonymous Function 與 Arrow Function 的 this

深入探討 Anonymous Function 與 Arrow Function 的 this

一般人印象,Arrow Function 只是 Anonymous Function 的 syntax sugur,讓我們用更精簡的語法來表達這類只使用一次的 function,但對於 this 的認知, 兩種表示法卻有很大的差別。

如何對 Laravel 進行自動化驗收測試?

如何對 Laravel 進行自動化驗收測試?

Laravel 在 5.1 之後,提供了應用程式測試 (Application Testing),讓我們不用開啟瀏覽器,就可以直接對 route、controller 與 blade 進行驗收測試,且執行速度非常快,但也因為沒有開啟瀏覽器,所以無法對 JavaScript 與 AJAX 進行測試,若搭配了 Selenium,配合我們熟悉的 PHPUnit,就能對驗收測試加以自動化。

如何修改 PhpStorm 預設的 Class Template?

如何修改 PhpStorm 預設的 Class Template?

當使用 PhpStorm 建立 class 時,預設會產生 Created by PhpStorm 的註解,並包含作者日期時間等資訊,有的人喜歡,有的人不喜歡,若你不希望每次建立 class 時都有這個檔頭,可以自行修改;除此之外,在 PHP 7 為了讓強行別檢查發揮作用,我們會在一開始 declare(strict_types = 1);,這也可以直接設定在 class template,以後只要建立新的 class,都會自動加上宣告。