嗨,各位鐵人夥伴! 👋
這是一篇專為新手設計的入門指南。如果您是經驗豐富的開發者,可以考慮跳過,或將它分享給需要引導的新人,相信能有效節省您寶貴的指導時間! 😉
本文將會是實務經驗分享,常見的套件問題的問題,反而不是在 AI 上可以查到的,滿簡短的,可以當作重點提示看一下囉
良心建議新人看個重點,我帶過新人在這踩過坑
pip install
, mvn install
, xxx install
... 跑不起來啦有寫過真的 code 的人,應該都知道我們不會從頭寫到尾,通常很常會需要引入地方 package 或 library,任何語言都是。
但!!! 這個行為在甲方環境很容易無法行,開發環境跟部署環境都是!!!
這要分兩個環境講。
小事吧? 你在你自己的電腦安裝個套件 (比如 pip install
或 xxx install
),簡單的跟什麼一樣。
但你公司的開發環境通常是你的電腦 (筆電或桌電),大部分很常會遇到要執行不會很容易就過 (看網路)。
原因:通常牽涉到公司的網路規範、一些網路的憑證問題或資安規範問題,這邊不打算細部討論。
解法:我也無法跟你說 XD,畢竟這每家公司的解法都不一樣,慘一點你搞不好還是公司第一人遇到類似的問題。
唯一解法,問同事,求救,想解法,討論!
常見有資安管控一點的解法,公司會架設一個內部的套件 server,你的安裝指令要先指到該台 Server,透過那台 Server 去外網幫你載好。這樣企業也可以有個統一管控套件的地方。
那你知道個幹嗎? 反而很重要,我以前在某些沒有寫過特定語言的單位,我還真的就為了這個搞了好幾天。
你在估算長官交辦給你的任務的時程時,記得把這算進去,不要把事情想得那麼簡單。
開發玩爽爽結束啦,不!!!! 有可能部署更可怕。
這裡的「有可能」要看你的程式語言特性,還有你打包程式的方法,你不一定會遇到但可能會遇到。
用白話文解釋一下,你的部署環境通常是公司主機,那是不聯網的!!!
你說這不是常識嗎? 誒 對 但請聽我娓娓道來。
有些程式語言或框架的特性,他本身就可以把整包要執行的 code 包成一個執行檔,比如 java jar file。
這種比較不會遇到部署的問題,那恭喜你還好。
但我遇過一個剛入職的優秀同事,他很優秀的寫好的 python 爬蟲,在公司個人筆電也都測試完成 (沒錯他有解決了上面開發環境套件問題)。
但好死不死他沒有包成 Docker (不懂 Docker 的請見後續文章)。
但但但! 他部署到正式環境直接大出狀況! 就是因為卡在套件無法在部署環境的主機上安裝。
重點是該專案超急,我當下直接被遠在花蓮玩的前輩 call out 要我幫忙。
後來透過各種特殊手法解決。
解法:一樣我無法告訴你,畢竟每家公司的做法都不一樣,Docker 在 python 的狀況是個好選擇但不是唯一解,而且這個是要看語言的特性而定。
這簡單提一下而已,目前有許多甲方都有導入套件掃描軟體,如果沒有導入我也建議你自己用開源的掃一下。
所以在你開發的時候,要注意這個套件是不是很主流,是不是有些資安問題。
甲方開發套件不要亂用! 等等真的出大事,或是你用的很爽結果不給用><
我想上述的痛,其實跟超多身邊朋友聊過都痛過煩腦過,不是個大事但真的很煩。
如果你沒遇到過代表前人幫你走過了,你很幸運。
切記! > 評估長官給你的任務時程時,記得考慮進去安裝套件在開發環境還有部署環境的時程,不要天真以為很快就解決。