看板 PHP 關於我們 聯絡資訊
※ 引述《aa2468291 (penguin309)》之銘言: > 想請益是否把前端技能補起來比較好 如果你只是在想學些什麼比較有價值,那麼你花時間認真學些什麼都是好的 「什麼都知道一些(超過初學者)」有時比單一技能更有價值 不過不管前端後端認真挖的話水都很深... 除了認識基礎的 html 標籤以外,大概要知道一下 DOM,CSS 的 box model,以及query selector 然後開瀏覽器的 devtool 看別人的網站怎麼設 css 的,看到看不懂的屬性就丟關鍵字搜尋 Javascript 那邊稍微麻煩一點,上面的東西要先有些些認識 可以開始想像「那如果我動態改變這個屬性大概會發生什麼」之後再來學會有效率一點 更認真一點可以去翻一下瀏覽器本身的工作流程,有個模模糊糊的概念就好 ex: https://cythilya.github.io/2018/11/10/inside-look-at-modern-web-browser/ MDN 是不錯的文件參考,也有一些教學。不過不是每份文件都有中文 https://developer.mozilla.org/zh-TW/docs/Learn > 老師說沒有測試的ci/cd沒甚麼意義 > 是不是這段時間我可以去了解一下php的測試 自動測試串接 CI 的概念其實很簡單 - 寫另外一支程式去檢查真正要用的程式跑出來的結果對不對 - 如果有錯誤,回傳一個不為 0 的 status code - CI 看到不為 0 的 status code,會認定 Job 失敗 (至少我用過的 CI 都是這樣判斷的...) 舉個例子 假設我做一個...紫微斗數算命系統,裡面有個 class 負責做陽曆跟農曆轉換 那簡單的測試 script 可以長這樣 ------------------------------------- <?php require __DIR__ . '/vendor/autoload.php'; $times = [ '1711-09-25 00:00:00' => '辛卯年八月十三子時', '1900-01-31 02:00:00' => '庚子年正月初一丑時', '1982-05-18 08:02:00' => '壬戌年四月二十五辰時', ]; $ctime = new ChineseTime(); $hasError = false; foreach ($times as $input => $expectedOutput) { $acutalOutput = $ctime->convert($input); if ($acutalOutput !== $expectedOutput) { echo "{$input} 的結果不是 {$expectedOutput} 而是 {$acutalOutput}\n"; $hasError = true; } } printf("測試結果:%s\n", $hasError ? "失敗" : "成功"); exit($hasError ? -1 : 0); ------------------------------------- 只要 $times 裡面有夠多的資料點 那你跑這隻 test.php 大概就可以知道農曆轉換的的 code 有沒有改爛 接下來只要設定 CI job 裡面會執行 php test.php 看 CI job 的輸出訊息就知道有沒有把 code 改爛了 可喜可賀...... ......不過實務上很少看到「自己寫一個 test.php」這麼土炮的搞法 通常會用人家寫好的測試框架 phpunit 這套測試框架算是業界標準,上網搜尋教學文章吧 然後也可以看看 laravel 自己的測試怎麼寫的(當然是用 phpunit) 我認為寫測試通常是難在 - 用到外部資料(Ex: 資料庫)的東西怎麼測 - 哪些東西必測哪些沒有也不那麼要緊 前者的解法通常是把跟外界互動的東西單獨抽出來寫成一個 class 然後測試的時候塞一個行為一樣的假 class (phpunit 的 test double) 有時候則是準備一整套假的外部服務 例如測試時讓 laravel 不連 mysql 而是連 in memory 的 sqlite 然後在裡面建整份測試用的資料表 後者...就是經驗跟哲學了,多踩一點雷(或多寫一些其實沒用的測試)就會有感覺 -- 莉娜用魔法爆破進入屋內。 劫犯從另一個房間裡出現,大叫道︰「妳是誰!」 莉娜︰「我是個可疑的女人!」 劫犯無言以對。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.152.108 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1575111257.A.50F.html
aa2468291: 感謝,我會參考看看 12/03 17:07
onegoman: 推。 01/01 20:37