看板 Soft_Job 關於我們 聯絡資訊
今天看到一個口試題目覺得很有趣,不知道業界的人對於這個問題怎麼看? 是說開發軟體的時候,要怎麼決定是不是要用某個Third Party Library 有幾點是在決定前需要對該library研究的: - 是否可靠? - 是否跟其他library有相依性? - 編譯的方式 - coding有沒做好?要如何確認? - 可擴展性,可配置,可修改? - 該library的優勢與劣勢? - threading model如何?可擴展嗎? - 最後,該library值得選用嗎? 我希望能夠投身業界,可是我好像沒有仔細想過這些問題。 (之前寫小程式也沒仔細考慮過這些) 希望各位前輩能夠分享一下想法,讓我了解我想法跟實際業界的差距。 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 90.27.97.212 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1421525445.A.3AF.html ※ 編輯: wtchen (90.27.97.212), 01/18/2015 04:11:51
guanting886: 初步了解通常在 Library 網站簡介或火力展示能略知一 01/18 04:52
guanting886: 二,接下來,你要先了解授權方式跟取得授權過程需要 01/18 04:53
guanting886: 要多少費用 01/18 04:53
guanting886: 會不會壓縮到產品利潤,會不會有致命的授權問題 01/18 04:53
guanting886: 造成產品有法律層面問題無法出售,公司、公司客戶 01/18 04:53
guanting886: 願不願意掏錢出來使用,都會影響你導入的過程 01/18 04:53
guanting886: 簡單說,在充份被授權的情況下, 01/18 04:53
guanting886: 你才有足夠的時間去對 Library「驗貨」 01/18 04:54
guanting886: 檢測跟驗證的方法很多種,但有幾項幾乎是鐵則 01/18 04:54
guanting886: 除了相關文件齊不齊,功能是否有效解決你產品問題 01/18 04:54
guanting886: 還要考慮這個東西在某些平台上的壽命,能多久? 01/18 04:54
guanting886: 未來會不會需要更換? 01/18 04:54
guanting886: 有時候還要翻授權、版權聲明 留意廠商支援可到哪 01/18 04:55
guanting886: 甚至龜毛一點,留意一下這間公司/團體賺不賺錢 01/18 04:55
guanting886: 擔心突然中途斷了維護,之後你修他們 Code 又是一個 01/18 04:55
guanting886: 大工程(例如在新平台支援某種功能、維持功能正常) 01/18 04:56
guanting886: 若不行,可能連整個 Library 都得抽換掉。 01/18 04:56
guanting886: 這個部分跟你用套件也是同樣道理 01/18 04:57
guanting886: 另外,近期資訊安全大家比較講究 01/18 04:57
guanting886: 你得檢查這個套件/Libary 會不會有奇怪的行為 01/18 04:57
guanting886: 如果你公司能買斷原始碼看還比較方便點 01/18 04:57
guanting886: 若沒有,為了對別人的保證(主管、客戶)使他們安心 01/18 04:57
guanting886: 你還需要用一些網路、檔案、系統工具追蹤偵測一下 01/18 04:58
guanting886: 對他們作記錄,了解這元件有沒有動其他的手腳後門 01/18 04:59
guanting886: 總而言之,要顧慮的還蠻多的 01/18 04:59
guanting886: 不過這些動作必須都在充分取得授權下進行才有意義 01/18 05:00
wtchen: 原來業界優先考量的還是錢跟安全性... 01/18 05:57
wtchen: (雖然我好像也沒多驚訝啦) 01/18 05:58
wtchen: 不過函式庫本身要怎麼觀察比較好呢? 01/18 05:58
wtchen: 我想不出來關於執行緒跟軟體開發的關係(非本科出身) 01/18 05:59
recorriendo: 你可以使用第四方的library來檢測它的安全性XD 01/18 06:53
snaketsai: thread-safe的問題?libc也有函式是不thread-safe的 01/18 07:55
snaketsai: 抱歉應該說POSIX的某些函數 http://goo.gl/JvNUcm 01/18 08:03
andymai: 實際去用,弄個壓力測試應該就能測出來了,但是通常會有 01/18 08:10
andymai: 文件說明這些東西吧? 01/18 08:10
snaketsai: 如果用的lib有不thread-safe的東西卻沒有文件強調, 01/18 08:17
snaketsai: 等踩到會很難找 01/18 08:17
snaketsai: 坦白說我有點看不懂原問題的〝Thread Model〞是指什麼 01/18 09:19
snaketsai: thread model在系統層級來說是kernel thread跟user 01/18 09:20
snaketsai: thread的mapping model,3rd party library應該普遍碰 01/18 09:20
snaketsai: 不到這層?還是想說程式自己maintain的thread pool? 01/18 09:21
Bencrie: 竟然沒考慮 Licensing 囧 01/18 12:53
lulala453: 其實還會再考慮背後的開發社群活躍程度 01/18 14:20
tsairay: 用thirdparty最重要的就是授權問題吧,其他都其次 01/18 18:57
carlcarl: 第一想到就是license 01/19 00:40
andymai: 其實發現沒有文件說明的時候~就要慎重考慮是否採用了~這 01/19 09:43
andymai: 如果沒有很多人用~通常表示還有很多雷等著你踩... 01/19 09:44