iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 30
4
Modern Web

成為 Modern PHPer系列 第 30

Day 30:鐵人賽總結

前言

這算是本次鐵人賽的最後一篇文章,能夠完賽還真的是個奇跡(?)

歷程

題目選擇

當時選擇主題時,曾經考慮了幾個選項

  • 老舊系統的重生,PHP 重構心得:本來想把 台灣抓漏小天使 拿來重構,因為看這程式碼真的吐血
  • 現代 C 語言:用 C 寫一個小型的 Web Framework 之類的
  • PHP Extension 開發實戰:如何用 Zend API 寫 PHP Extension,可能還會加碼用其它語言(golang 或 rust)來寫

第一次報名時,本來是寫「PHP 重構」,但是想到要寫好多程式碼就改為現在的主題,想說開賽前再改。

結果開賽前一晚在打 FFXIV 就忘記上來改題目,想說就硬著頭皮寫ㄅ。

寫作原則

聽聞有參賽者會預先寫好 30 天的稿子,然後每天上來發;或是留個 4、5 天的底稿避免自己有意外沒時間寫文。

這次我決定每天獨立寫作,也就是每天大概會花 1~1.5 小時來寫文,我必須說這對我而言是個大膽的想法。如果時間倒回 30 天前,我會建議自己 除非對自己寫的主題有信心及熟悉度,否則不建議這麼幹

這個 Modern PHPer 的主題是我一直以來提倡的主張,我每天大概只需要花費 10 分鐘左右就能找到我要寫的主題然後查到相關資料(雖然 Stream 那三篇花了我比較久的時間就是了),所以我算是很輕鬆完賽。

學習到的東西

  • PSR-2 被廢棄,已被 PSR-12 取代
  • PHP Stream 的精準使用方式及底層實現(對,我跑去看 Source Code)
  • PSR-7 及 PSR-15 的詳細內容及目前應用層面
  • Callable 及 Closure 的差異

門檻

主題並不吸引人

說真的,會去在意 Modern PHP 的人大多都有實力去寫值得更高薪水的工作(如 Golang 或 Rust),所以訂閱數超低也並不覺得太意外(?)

會想嘴人

不,我覺得自己很節制了(欸)。除了罵了一下台灣資訊出版環境跟某電商職稱技術長的技工以外,基本上我還真沒嘴啥(?)

開賽初期我本來有訂閱一些鐵人系列,但是最後看到文章有些謬誤之後就退訂了,也沒有去嘴人(壓抑衝動)。

想打遊戲

我假日都要撥兩個小時(通常是 11 點起床後到 12 點)來寫鐵人文,爬分(LoL)、解主線(FFXIV)、移民海拉魯(薩爾達:曠野之息)、解謎(薩爾達:織夢島)、爬大祕(D3)等等的時間都被壓縮。

我還有八方旅人跟 MWHI 還沒玩(尖叫)

後記

給之後參賽者的建議

  • 確定自己熟悉主題
  • 確定自己每天有 2 小時的空白時間
  • 確定自己這 30 天沒有什麼計畫(如出去玩或出差等)
  • 如果有實作項目建議要先實作過
  • 可以在假日時寫個兩、三篇當作底稿
  • 不連貫主題的難度會比較低

給 ITHOME 的建議

註:以下髒話部份以 OO 替代

  • 到底是哪個 OO 想出每 Request 一次點閱數 +1 的設計
    • 不過好像有改進一點點,用 User-Agent 下去判斷了
curl -A "User-Agent: `date|shasum`" https://ithome.com.tw/articles/10214765
  • 自己的文章不能留言的 OO 設計
    • 今天早上看到自己的鐵人文有人回應,於是寫了一大篇回覆
    • 送出之後跟我說「新手訓練期間不能進行回應」

https://ithelp.ithome.com.tw/upload/images/20191001/20104201N22vSTIMtz.png

https://ithelp.ithome.com.tw/upload/images/20191001/20104201PyLjDnNBWV.png

OO 的都寫了兩次鐵人賽(雖然第一次中途放棄)還在訓OO練。

順便回應一下這篇留言:我個人不是很建議新手往 PHP 的方向走,其原因有幾個

  • 努力程度與得到的回饋,相較於其它語言的投資報酬率過低
  • 大量的歷史共業導致各種謬誤的教學文章(可能在當時是正確的,但今天不再適合使用)
  • 市佔率嚴重灌水,很多統計都認為 PHP 是目前最流行的後端語言,事實上這個統計結果包括了很大量的 Wordpress 及 Discuz 這類 CMS 套裝

那以 RESTFul API 來說建議往哪個語言,我會推薦兩個方向

  • 如果你熟悉 Javascript ES6 以上的特性,可以優先考慮 Nodejs
  • 如果有專業的計算機組織知識(尤其是多執行緒、Content Switch、互斥鎖等),可以考慮 Golang
  • 如果是國內求職為優先,目前的傳統產業還是以 .NET 或 Java 為主流
  • 國外求職的話不熟悉,可能要另請高明

上一篇
Day 29:PSR-15 帶來的新生態
系列文
成為 Modern PHPer30
0
SunAllen
iT邦研究生 1 級 ‧ 2019-10-01 12:44:36

恭喜完賽!

0
Lucas Yang
iT邦新手 4 級 ‧ 2019-10-01 12:45:42

哈哈~~ 看到 OO 我笑出來了~ /images/emoticon/emoticon01.gif/images/emoticon/emoticon01.gif

0
EN
iT邦研究生 3 級 ‧ 2019-10-01 23:54:30

哈哈,謝謝大大的回覆/images/emoticon/emoticon37.gif

0
阿展展展
iT邦好手 1 級 ‧ 2020-02-29 11:06:58

恭喜完賽!! 恭喜或得佳作
歷久彌新 P!H!P!

我要留言

立即登入留言