iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
Software Development

PHP 大師之路 - 開源的技術淬練系列 第 1

Day 1 - 隨便聊聊的前言

這個主題很標題黨,下一個看起來非常厲害的標題「PHP 大師之路 - 開放源碼的淬練」不是我很厲害 ^^||,而是顧名思義,鼓勵大家藉由開放自己的原始碼作品,希望自己的作品更棒,而不斷地精進技術、強化自己的信念和學習慾望,往真正的「PHP 大師之路」前進。

第一天,內容沒有任何程式碼,我想簡單介紹一下在這三十天內想介紹給大家的內容,也和大家分享,一個觀念:你不止是一個程式設計師,自從你把自己的程式公開上網,開放原始碼供大家使用,那就已經是一個作品,是一種藝術,你就是藝術家。(即使你寫完後,只有自己覺得很棒 ^^",我也常常這樣 XD)

作品,想讓作品〝看起來〞變得更好,會培養出一種動力,讓你會想參考高手的寫法、翻閱書籍、不斷根據使用者的回饋而加強功能、改善寫法。不知不覺,不是〝看起來〞,而是〝真的會〞變得更好。

再者,作品對職涯只有好處,完全沒有壞處。未來同事可以先行審查,減少彼此的資訊落差。求職者總是多準備一點,對比其它沒準備的求職者多了一些機會。你對程式設計的熱情能有機會找到未來的創業伙伴也說不定。

IT 產業更新訊息、新知識的速度很快,假如沒有培養出對寫程式的興趣的熱情。坐在辦公室寫程式充其量不過是一份工作而已。對我來說寫程式就是一件好玩的事情,所謂的工作,就是一件好玩的事順便賺錢,真是一舉兩得呀。我希望你也能從中培養出興趣,讓人生更快樂。

作品主題

1. 自己要有愛

一開始你可能沒想到要發表什麼主題的作品。

以我個人經驗來說,我發表的作品一定要有〝愛〞,就是自己要用的,只不過是當做好後,很想大叫「我做了個好東西沒人知道怎行?」於是不甘寂寞地把它放上 GitHub。

例如 Githuber MD,就是找不到在 WordPress 上可以好好寫 Markdown 格式文章的編輯器,於是自己寫了一個。一開始是很陽春,根據使用者的正面的好評回饋及特色請求,功能才越加越多。

2. 市面上沒有

當你到處 Google 資料找不到解決之道時,只好自己解決,這時候你可以寫的更模組化一點,然後把它開源,幫助未來也有需要的人。真的會有人從 Google 找到你的作品幫你按星星。

3. 其它動機

不管是什麼,或者你還沒信心寫出好東西,怕啥。放上 GitHub 就對了。一回生二回熟,總要有個起頭。

文章目錄

暖身

  • 前言
  • PHP 各版本差異

說了一堆勉強度過第一天的客套話,接下來會介紹 PHP 各版本的差異。因為如果你想讓作品可以向下相容讓更多人使用,有些語法是否能在某些版本運作,不得不去注意。

設計模式

  • 單例
  • 註冊表
  • 工廠
  • 觀察者
  • 依賴注入

叫的出名字的設計模式居然有三十多種呀。在這邊介紹最常見的設計模式(其實是其它的我不熟 ^^",開玩笑的)

PSR 規範

  • PSR-1, 2, 12 程式碼風格
  • PSR-4 自動載入器
  • PSR-7 HTTP Message
  • PSR-15 Middleware
  • PSR-17 HTTP Factory

PSR 已經是現代先進框架 (Modern framework) 的共同標準了,瞭解了這些等於同時懂了好幾套框架對於 HTTP 的處理方法,例如 Laravel、Zend、Slim 等等。差別在有些框架會加料,但基本方法都通用。

開發 Composer 套件

  • Composer 設定檔
  • 相容性指南
  • 發佈到 Packagist

開始我們的重頭戲了,在這一章開始,我會設計一個套件,從放上 GitHub 到可以從 Composer 下載,一步一步實作。

開發 WordPress 外掛

  • 建立 WordPress 外掛
  • WordPress 程式碼風格
  • WordPress 事件處理機制 Hook
  • 提交 WordPress 外掛

WordPress 是市佔率最高的網站軟體,直至 2019 年高達 37% 的網站使用。自成一個完整的生態鏈。如果你有好的點子可以從 WordPress 外掛收費,那麼商機無限。但凡事總要起個頭。我來帶你發佈第一個 WordPress 外掛。

程式碼品質

  • 程式碼風格
  • 單元測試
  • CI 測試
  • 靜態分析工具

非常重要,非常重要,非常重要。因為很重要所以要說三次。


本文同步更新於 TerryL 部落格 Day 1 - 隨便聊聊的前言,歡迎前往討論。


下一篇
Day 2 - PHP 各版本差異
系列文
PHP 大師之路 - 開源的技術淬練30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言