在你的成長的路上總有不少值得你警惕的前輩
筆者曾待過超瞎的公司,他們對於一個專案遷移的概念還停留在把程式 copy 到 USB
,到現場的時候再把他放到正式的server上面
所以每次發布新版本都超級心驚膽跳擔心會不會檔案沒有 call 完全(如果你曾經在 windows 上複製過 node_modules 超過 2G 的專案就會知道我在說什麼惹)、會不會到現場的 server 跑不動,這個詭異的問題直到我離開那間公司後才知道根本是一道假命題...
都用 git 了,為什麼還要把程式 call 到 USB???
都有 package.json 紀錄要安裝的套件跟版本了,我幹嘛要複製好幾G的套件進去 USB???
筆者曾在公司兼職 MIS,幫公司架一個 gitlab 提供內部使用;但每個人 git 使用的習慣相差很大,有些部門的同事根本就沒在管什麼檔案適合傳到 gitlab 什麼不適合,每次 push 都全部上傳(各種執行檔、暫存檔全部上傳,根本把 gitlab 當成 NAS 在用...
)
因為 git 版本控管的特性,他的專案在 gitlab 就越來越肥,儘管跟他溝通很多次這樣的 git 版控很有問題但都被當成耳邊風,直到有一天 gitlab 的硬碟終於被他用完了...(他一個專案就用了 15GB 的容量
),他才開始願意去了解自己專案中有多少檔案是不需要上傳的
PS.因為 gitlab 一般只會儲存程式碼,所以當時只劃分了 100GB 的硬碟空間
這個事件發生在一個熱愛技術的朋友身上,他使用了一個需要憑證的套件,這個憑證會根據使用者使用的次數去做收費,不知道他當時是喝多了還是太累了;他居然把憑證加入 git 版控上傳,我永遠記得下個月他收到帳單時臉上的表情有多麼的驚嚇
昨天我們說到 .env 裡面存放的資料有許多都不適合公開
(ex:資料庫帳號密碼、token...),這些資料外流出去我想就不是檢討報告能解決的問題惹,為了避免誤傳檔案,今天我來介紹一個好用的東西 .gitignore
,他是一份忽略清單,忽略清單上的都是不需要加入版本控制的檔案
有了上方慘痛經驗的範例,我想大家應該對要加入 .gitignore 的檔案/資料夾有基礎概念了,在這我也整理了常見在忽略清單如下:
透過這份清單,大家可以想一下昨天的專案有哪些檔案/資料夾是要加入這份忽略清單的呢
這些資訊我們統一設定在 .env 環境變數裡面
,我相信大家都不希望把這些機敏資訊放到 git 外流出去透過 yarn 安裝的 dotenv 套件也產生了一個 node_modules 的資料夾
,從經以後你所安裝的套件都會儲存到這個資料夾裡面,通常一個中型專案套件他的大小都高達 300MB 以上,所以這個 node_modules 的資料夾是不適合上傳到到 git 的(這些套件到新環境下指令yarn就能安裝)所以我們的忽略清單會長這樣
node_modules
.env
如果你也是用 VSCode 當成編輯器,可以用他觀察使用 .gitignore 的前後變化
綠色的字代表有新增(U)的檔案,棕色的字代表有改變(M)的檔案
SOURCE CONTROL
中可以看到有哪些檔案被列入變更淺灰色
,代表不會被列入變更這份忽略清單會隨著你專案的變動而調整,如果你在撰寫其他種類程式語言可以參考github的官網來調整自己的.gitignore
今天我們把 .env 放入 .gitignore 中讓他不會加入版控,但為了讓專案快速遷移,我會建立一個 .env.example 的檔案
,他是環境變數的範例檔,這樣你在新環境只需要將他複製一份到 .env 檔填上自己的參數就能完成環境設定了,下面是本專案未來會用到的環境變數
#填寫你目標放入的sheet id
SPREADSHEET_ID='your sheet id'
#你FB及IG的帳號密碼(建議用小帳號)
IG_USERNAME='ig username'
IG_PASSWORD='ig password'
FB_USERNAME='fb username'
FB_PASSWORD='fb password'
#這是設定排程的時間參數(目前預設每日22:30準時執行)
CRONJOB_TIME='0 30 22 * * *'
關於撰寫程式的基礎介紹就到今天,從明天會開始撰寫爬蟲,這裡先跟各位分享一下我對於功能撰寫順序的邏輯以及技術文章未來的規劃
先把不熟悉的完成,因為他通常會花你最多時間
及時止損,避免你完成大部分功能最後因為卡在一個關鍵功能無法完成交付
今天的完整程式碼可以在這裡找到喔
我在 Medium 平台 也分享了許多技術文章
❝ 主題涵蓋「MIS & DEVOPS、資料庫、前端、後端、MICROSFT 365、GOOGLE 雲端應用、個人研究」希望可以幫助遇到相同問題、想自我成長的人。❞
在許多人的幫助下,本系列文章已出版成書,並添加了新的篇章與細節補充:
- 加入更多實務經驗,用完整的開發流程讓讀者了解專案每個階段要注意的事項
- 將爬蟲的步驟與技巧做更詳細的說明,讓讀者可以輕鬆入門
- 調整專案架構
- 優化爬蟲程式,以更廣的視角來擷取網頁資訊
- 增加資料驗證、錯誤通知等功能,讓爬蟲執行遇到問題時可以第一時間通知使用者
- 排程部分改用 node-schedule & pm2 的組合,讓讀者可以輕鬆管理專案程序並獲得更精確的 log 資訊
有興趣的朋友可以到天瓏書局選購,感謝大家的支持。
購書連結:https://www.tenlong.com.tw/products/9789864348008