---
# System prepended metadata

title: PHP技術交流與應用實作工作坊
tags: [RD1]

---

# PHP技術交流與應用實作工作坊
###### tags: `RD1`

## 經驗分享
* phpstorm好用

* [FakerPHP](https://github.com/FakerPHP/Faker) - 可以用來產生假資料用於測試

* 不要依賴於框架，要相依於套件
避免以後如果要換框架的話又要重寫程式碼，Laravel很多東西都是套件，可以用來單獨使用。

### 台灣銀行爬資料TDD開發實作
描述: 用TDD方法寫一個去台灣銀行爬資料的程式。

[程式碼](https://github.com/recca0120/gold_price)

### 問題
1. 測試都還沒寫，主程式就寫好了
先寫程式再寫測試，測試就是負擔


2. 根目錄的使用方法

3. 我想了解laravel底層，框架底層東西好多，怎麼了解
你不是它，框架底層不要去了解，官網文件功能了解就好，不要hack底層，因為update後就會不見。錯的時候用單元測試去找錯誤，不要一行一行去追laravel的debug資訊。

4. contoller要不要寫測試？
要!前後端分離很好測，非常好測，只要測array跟json
前後端分離要測，要定好參數，這樣前後端就可以分開開發與測試。

5. php怎麼高併發？
    1. 水平擴展
    2. 用command 執行go或高併發的語言
    3. 效能瓶頸找其他方法，涼了QQ
    4. 有blackfire可以分析效能看看

6. 怎麼mock，好難～
    1. 確實... php不好mock，用laravel讚！不然就是你的class太過複雜

7. 撰寫測試出錯
阿就是你先寫程式在補測試嘛!

8. 正式環境下怎麼偵錯，如何重現問題
先保證自己的程式正確無誤，剩下就是外部溝通的問題。

9. orm效能不佳#@!$@!!@
先上線在說，效能有問題再來想辦法tune。


## 講者建議
* 問題要具體一點，給實例讚! 溝通要加油。
* 有事沒事看文件，善用IDE(<-phpstorm)。
* 不要用非文件上的東西，會阻礙你的升級。
* SQL很重要x3
## 
[講者github](https://github.com/recca0120)
