kyo

三思而後 install

snyk.io/advisor/python

無論是工作或個人的開發,在為專案選擇新功能所需要的套件時,一個需求可能會有複數的套件選項可供選擇。

在 Python 中,這些套件幾乎都是開源的,而 Snyk Open Source Advisor 就是一個幫助你 查詢、確認開源專案健康度 的服務!

採用一個缺乏維護者與使用者的開源套件,可能會讓後續的開發付出代價,如果存在涉及資安的 bug,那麼最壞的情況恐怕不止是砍掉重練而已。(這段話聽起來好像廣告業配的台詞 🤣)

所以,在研究新功能的實踐而必須採用新的套件時,只要不是公認的主流選項,或是我不熟悉的領域,我一定會去這個網站查一下套件的健康度。依照網站的計算公式,專案更新愈頻繁、社群活躍度愈高、愈多人採用,健康度就愈高。

我會以它給出的健康度分數,來決定是否採用一個新套件。

舉例而言,比如當 Django 專案想要存取 MongoDB 資料時,就需要能有支援 MongoDB 的套件(package)。依照 MongoDB 官方的 文件說明 ,最常見的三種選擇如下:

其中 PyMongo 是後二者的底層依賴套件,一定會安裝,可以忽略不計。而且畢竟是 Web 開發,我們實際需要的是類似 Django ORM 的 Object-Document Mapper 框架,後兩者都符合這個要求,所以要從選項 2、3 中選擇其一。

選擇的時候,需要考慮專案的具體需求、整合成本、通用性等重要方向,其中套件本身的 健康度 也是一大指標。

如果套件專案健康度不到 80 分,除非只是個人開發且別無選擇,否則我基本不考慮!

所以用它查了一下,MongoEngine 得分為優秀的 94 分,而 Djongo 僅得到 71 分 ,單憑這個指標,我顯然就不會選擇 Djongo 了。

除了 Python,Snyk Open Source Advisor 還支援 Node.jsGo 以及 Docker (可查詢 image 健康度)。

總之,推薦 Snyk Open Source Advisor 作為開發時的套件選擇參考。

Originally published at https://blog.kyomind.tw on May 27, 2022.

--

--

不爽也不要亂刪啊啊啊!

又好久沒寫 note 了!會有這種情況主要是把內容要求想得太嚴謹,這樣不行,還是要隨興些,把值得記的事情寫下來。

zinit 作者刪庫

前幾天才知道,原來我目前用的 zsh 套件管理器 — zinit,在去年十月發生了作者把整個 GitHub organization 即「 zdharma 」 刪除事件,而旗下的 repo 也都跟著遭殃。

得知此事後,我立刻更新了〈 Ubuntu 安裝使用 zsh + zinit 懶人包 〉的內容,以免因過時不符現況而失去作用,還好問題不大,只需要改些路徑而已。整個專案已經由社群接手了,所以不會因此而斷了生機。

本來知道的當下心中不禁 OS:「不會吧!我才從 zplug 轉來用 zinit 沒多久耶,難道又要換個管理器了?」這也太煩!所幸並不需要。

作者刪庫真是太不講「武德」了,不過對此我也沒什麼特別的感想,真覺得的不快,換一個即可,尤其現在還有社群接手,所以還是繼續用 zinit 吧!

我對 zsh 套件管理器的看法

雖然沒用過 oh my zsh,但無論是 zplug 或 zinit,我真心覺得都大同小異,從前者換到後者,也只是一時興起,兩者對我而言幾乎沒有差別,尤其在都使用 powerlevel10k 佈景的情況下。

zsh 確實比 bash 強大許多,拜這些套件管理器所賜,它的力量得到真正的發揮,對開發人員尤其是常常要和 Linux 打交道的後端可謂幫助巨大,省下不少時間。

不過話說回來,產生明顯效益的其實主要就是我前文中戲稱的「 zsh 套件四天王 」,裝了這 4 個已經足夠發揮 zsh 的 7、8 成戰力了,剩下還有非常多功能,在我看來基本是錦上添花,可有可無。而這 4 個件套,相信絕大部分管理器都支援,所以真的,用哪個都沒差。

Originally published at https://blog.kyomind.tw on March 20, 2022.

--

--