使用C#開發的人
對於nuget應該都不陌生
簡單來說就是引用別人的程式碼
不用自己重複造輪子

前一陣子開發公司專案
因為有API需要給其他專案共用
所以就做成內部的nuget專案
方便其他人直接呼叫

以前只會引用nuget的我
終於有機會把程式碼打包給別人用
心理上當然是躍躍欲試
不過實際上在執行時
卻發現不是那麼一回事

因為我們打包的內容是API
當需求變更時
如果API的參數有新增
就必須再重新發布一次

雖然呼叫端只要更新nuget版本
就可以拿到新的程式碼
不過如果是專案自己去刻Class去介接API
花的時間不會比更新nuget慢到哪裡去

而打包nuget的一方
除了更新原本的API
還得多一個步驟
就是更新nuget

除了沒有省下時間
另外一個我認為的問題是
沒有很好的板控機制
雖然Release Note會有描述
但還是很難一眼看出
兩個版本之間的差異

而推上nuget不會有git紀錄
要是推送的人沒有特別留下commit
nuget上的板號就行蹤成謎了

以我的觀點
要做成nuget的條件
不是共用的次數多寡與否
而是變動的頻率

當一個API變動頻率過大
就不應該做成nuget
而是讓外部直接用Http方式去介接資料

真正應該做成nuget
應該是那些萬年不變的基礎建設
例如拿取資料庫連線字串
常用的自訂義擴充方法等等

目前開發nuget的經驗不多
希望之後遇到類似的狀況
能有不一樣的思路