看板 MAC 關於我們 聯絡資訊
43 ※ 引述《HuangJC (吹笛牧童)》之銘言: : 什麼是亂寫,我突然想通一點 : 因為有 win app 的開發經驗,我來說一下 : win 下有所謂 DLL 架構,也就是如果程式很大,可以這樣開發 : A.exe => A.exe + common.dll : B.exe => B.exe + common.dll : common.dll 是 A,B 兩支程式的共用部份 : 有這個東西,則這兩支程式可以縮小一點 : 怎麼撰寫 DLL,書上教很多了;問題出在管理 : 如果這間公司還蠻長壽的,而 common.dll 出了很多版 : 當 a, b 兩支程式用同一版時還沒有問題 : 當它們用不同版時,則最好一起用最新版 : 而最新版必需向舊版相容;否則舊版那支程式其實也無法適應這個共用的 DLL : 這種事情其實 OS 本身就發生很多 : 但只有 OS 在開發 DLL 畢竟是乾淨多了 : 如果各公司都可以任意的開發 DLL : 那他們管理 DLL 版本的功力就很重要 : 管不好的話,乾脆不要共用,各存一版在各自的子目錄裡 XDDD 我不會想那麼多.. 如果 dll 可能有相容性問題,我就會寫反安裝 先確保舊版 dll 移掉,再裝新版 再說除了 .net framework 那種,一般程式很難想像會有同名稱多版本的 dll 存在 : ----------- : 那為什麼 Mac 不會有這些現象,我不太清楚 : 或者其實也是有,只是我還沒有發現 : 而我就要問另一個問題了:Time Machine 值不值得安裝 : 今天我新硬碟到了,第一次裝了 Time Machine : 發現它可以把不同時間的檔案給抽出來 : 老實說,Win OS 即使有這種工具,我也不敢用 windows 有喔: volume shadow copy 你可以針對同一個檔案/資料匣,按右鍵後,看到各個時間的版本 也可以針對不同版本還原特定檔案/資料匣 : 因為混到不同版本的 DLL,根本跑不動 : A.exe + common.dll : B.exe + common.dll : 像這樣,如果 B.exe 返回舊版,那 common.dll 要不要返回舊版? : 各別保留不同版本的架構可以讓兩支程式都能跑 : 但這樣 common.dll 就會有兩份,無法節省空間 : 或許不同 OS 在此有不同的作法,以致穩定度不同? 嗯.. 我想這牽涉到程式架構的觀念,因我只是粗略摸過,若要鞭請小力點 > <" 以之前導入 clean code 的經驗,寫程式時不會想要有這種 '互相引用' 的共用 dll 而是想辦法把程式區塊寫到最小,確保只修改這個功能時,不會影響到別的功能 以自己實做過的經驗,共用 dll 導致 a, b 兩隻程式運作上有問題,還沒有遇過 不過這是以程式設計來看這件事,如果很倒楣剛好你遇到的程式有這種狀況 .. 我也想不出來怎麼解 XD : --------- : 在本板以 Time Machine 做標題搜尋,發現問題不少 : 我承認我還沒爬完文 : 但問題看來不會那麼單純了? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.13.217 ※ 文章網址: https://www.ptt.cc/bbs/MAC/M.1538098619.A.C20.html