網路城邦
上一篇 回創作列表 下一篇  字體:
兵在精不在多,寫程式不叫外賣的才是最好!
2020/12/27 04:19:42瀏覽998|回應0|推薦7

這是我的六車道動態車牌辨識軟體的安裝檔封包,昨天POFB似乎引起不少關注?沒錯!每個跟我買這個定價六萬元軟體的客戶只會拿到這個檔案與一個小小的USB軟體保護鎖。最新版的介面已經可以辨識到十六車道了,安裝檔案還是一樣大的!

更深入看,裡面主要就是一個429KEXE執行檔,我的車牌辨識核心、操作介面,甚至所需的資料庫,如字型等等,都包含在這個429K裡面了!我並沒有太刻意想讓檔案變小,一切以方便與效率為主要考量。譬如我雖然是OCR模式的程式,但需要辨識的字不過幾十個英數字,就將這些資訊寫在程式內部,不要建立甚麼SQL資料庫了!

我認為:最有效率也最安全的軟體製作守則,就是不呼叫外部的DLL函數,因為一旦使用外部程式,就是在你的軟體中加入一個「黑箱」了!聽起來就不太好?譬如為了引用某個特定功能的函數,你必須匯入包含幾十個甚至幾百個函數在內的某個DLL,檔案一定比你的主程式大十幾倍!他們會不會搞破壞?或太多事亂了你的陣腳?甚至隨時寄個備份到北京?你怎麼知道!

其實像我的封包內容如此簡單是很少見的!上面六個檔案中四個是主程式與隨扈,另兩個是圖示檔,根本沒有任何其他不是我自己寫的程式單元!如果你是用OpenCV或其他類似模組開發影像辨識軟體,那就精彩了,至少這裡會有幾十個檔案!我曾為了嘗試叫用某個OpenCV的函數,讓我的安裝檔瞬間變成十幾倍大!就是好多個M!我當然很快就決定還是不用了!

使用很多外部的DLL確實有資安疑慮,因為軟體設計提供者也不能保證那些DLL的內容!但是很像大家已經適應了文明生活,要完全不呼叫外部程式完成一個商業軟體很難的!我會變成這樣有很大一部份的原因是我的個性就是如此龜毛!甚麼事情都想自己來。很像住在大都市的家庭主婦還是堅持家裡的三餐消夜都自己下廚煮飯一樣!

很多人會迷信或者說沒自信,以為大師製作的DLL必有神奇的力量?其實大師根本不知道你要做的事情細節,預設寫好的通用程式多半比你自己對症下藥寫的程式效能更差!我其實比較在意這個!如果沒辦法叫大師替你專屬設計,就不如多看書學會原理自己來!

我的龜毛作風,也讓我意外變成台灣最容易通過所有嚴格資安檢驗的軟體商了!如果任何一個外來的DLL你都要取得保證沒問題的切結書?多麻煩啊!我都不必做這些事,當然輕鬆了!想像一下,下面這個13.8M的APP,如果實際做車牌辨識需要的程式不必到一個M,那其他的12.8M都是些甚麼可疑的東西啊?要通過資安檢驗,要寫的報告有多少啊?你的手機資料會不會馬上在上海有備份啊?所以我個人其實都不太敢下載這些東西的!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=154893815