1. 程式人生 > >【十日談】將程式設計的思維用於檔案管理

【十日談】將程式設計的思維用於檔案管理

檔案管理是一個困擾著我的問題。

從高中起,我就開始意識到一點,我高中的檔案管理方式太低效。做了無數張卷子,收集了好幾個錯題本,寫了好幾十萬字的日記,看似認真踏實,實際上低效愚蠢。因為我的這些工作相互重複,缺乏規劃,無法方便將來索引。它們對我而言更大的功效,往往是第一次記錄時的功效。因為,謄寫的過程中花費了我大量時間,使我遠離了電子遊戲。

但那些被我認真記錄下來的東西我看過第二次沒有?偶爾看過。

我當時就隱隱約約覺得,這個世界上的資訊太多了。高中課本中喜歡用這麼一個詞語來形容網際網路世界,“資訊爆炸”,老實說,那時的我並沒什麼感覺。但我有種感覺,檔案管理做得差勁的人不只是我,幾乎我們全部人,檔案管理都做得很差。例如大家都瘋狂的買這家那家的練習題,而實際上,很多書籍中的題目大同小異,更有價值的不是再做一套,而是詳細的歸納一次並收容整理。

我想——當知識掌握到一定程度後,比起繼續學習,更重要的是防止遺忘。而遺忘幾乎不可防止,更重要的是創造一種方法快速掌握。

(這個判讀方法可以用來幫助你判讀一本書,一個學習網站的優劣。)

上大學的我開始做檔案管理,因為總會有各種作業要交,也會有找到盜版資源需要儲存的時候。我就把他們儲存下來。那時我的管理辦法是按照,學習|娛樂|其他,下面再按照各種不同的類別進行分類。這樣也還不錯,但最終我這種管理方式破產了,各個盤中都有軟體,也都有不同的檔案,過了一段時間後我就會忘記我存放的檔案存放在哪個資料夾下。而且,我也開始隱隱約約覺得,很多檔案其實不適合放在本地,例如看過的電影,做過的作業,很長一段時間不會再次使用到他們,每當一個課程結課後,其實很多軟體就很長時間無法使用上了。而且隨著下載軟體的變多,C盤中出現了很多我完全不知道幹什麼檔案路徑。

我挺煩的,一方面管理檔案很耗時間。刪除檔案,瞭解每個資料夾的意義也一樣耗費時間。於是我想,我做檔案管理到底是為了什麼?為了更好地找到所有的檔案麼?

不是的,我想——檔案管理的本質是是為了複用!

這可以引出一下三點:

  1. 快速找到檔案只不過是為了方便複用的一種體現。合理的索引是幫助我們快速找到檔案的要訣。
  2. 而沒有複用價值的檔案就應該立即刪除,就像我們不會去考慮一張廢紙的價值而是立即把它丟棄。因為空間本身也是有價值的。
  3. 只要保留下一種方式使得複用容易實現,那麼不論檔案是存在本地或者是雲端,或者僅僅是存了一個網址,這些都沒有問題。

 

接著我來講一個故事來說明上面三點:

小A有“病”,我們姑且把這個病叫做“磁碟焦慮症”。磁碟空間才到1/2就覺得快要滿了,到了2/3就覺得已經連檔案都不敢下載了。

他找我求助。

我問道:“你的電腦多少個G?”

小A說:“本來是1000G,現在只剩下300多個G了。反正我現在我下個東西都不敢下,生怕把空間用完了。”

我哭笑不得,對小A說,“我電腦總共才256個G。你現在剩下的空間比我全部空間還要大呢。你都下了些什麼啊?700個G,可以下載350個matlab了。”

小A驚訝地看著我,彷彿覺得一個理工男電腦上竟讓連500G都沒佔滿是件數一數二的怪事。他說到:“不會吧。老師佈置作業要用的軟體下來就夠七八十多個G了。我再隨便下幾首歌,下幾個電影,下幾個遊戲,幾個好不容找到的動漫,和幾個破解軟體的安裝包,還有幾份學習資料。儲存空間就全部沒有了。”

小A有“病”,他的病不只是“磁碟焦慮症”,還要算上“生怕錯過什麼好東西的網際網路心理”。我問他,幾個破解軟體的安裝包?什麼意思?

他感到很不解,說:“就是字面意思啊,今年上課老師不是要我們用SAS(資料分析系統)麼。找破解資源我找了好久,好不容易找到了,當然要把它存在我的電腦上。”

我忽然地想起了總是隨身帶著一個U盤跑的那些人。其中很多東西都完全可以儲存到網路上,但他們還是固執的儲存在U盤中。把U盤當成一個檔案互動的視窗自然很好,但如果都將檔案系之於容易丟失的U盤,那便是潛在的危險。

回到小A這邊。我問小A:"這沒什麼問題,但你為什麼不把他存到網盤上呢?"

小A說:“檔案太大了,存網盤太慢了。我想著什麼時候我要是換電腦了,就用U盤把舊電腦的東西拷貝下來,把這個軟體拷貝過去就好了。”

我和小A說:“你直接儲存直接存一個下載的網址連結不就可以了麼?網路下載雖然慢一點,但完全不用佔你的本地記憶體,而且,你也可以隨時把它分享給別人,不是很好麼?”

小A沒想到我還窮追不捨,有點兒慌張了,說:“那要是原來的網站關閉了怎麼辦?”

我含著笑說:“首先一個網站關閉很難。然後,一個SAS的破解軟體也不是什麼稀奇的東西。還有啊,你存的這些歌曲啊,電影啊,其實很容易獲得。雖然說你偶爾需要在不聯網的時候聽歌,這畢竟是少數時候,完全沒必要下載任何一首歌,除非你要用音訊剪輯軟體做剪輯。電影也是這樣,下載看完後定期清空就好了,只要知道下載他們的網站,那麼是不愁第二次找資源不方便的。至於遊戲,我想也有很多遊戲你現在已經不玩了吧?還有老師有時候為了佈置一個作業而突然要你使用的軟體,比如SoildWork什麼的。去學校機房用就可以了。完全沒必要下載。我送你一句話吧。”

我們沒必要傳遞物件本身,而是可以只傳遞他的引用。

小A努著嘴,雖然一臉不情願,但還是點了點頭,承認我說的有道理。接著他又問道:“既然聊開了,那我乾脆向你請教一下檔案管理的方法。有時候我做一些英語作業啊,公選作業啊,工作報告啊,都會留下一些特別不好分類的文章,直接扔到回收站又覺得可惜。你平時是怎麼對他們進行分類的?”

我拍拍小A的肩膀,說:“這其實也是大部分人做檔案管理經常犯的錯誤,就是儲存資訊沒輕重緩急之分,什麼都存,反而掩蓋了有價值的資訊。很多粗糙的作品,沒有二次咀嚼的價值,你應該果斷拋棄掉!例如很多人電腦上還留著當時第一次學C語言時抄書上的程式碼,那時候的程式碼寫得又難看,也不是什麼有價值的東西。完全沒必要儲存下來。不過這方面我可以教你一招,你可以把他們存到百度文庫中去。但要記得,不要放到你苦心經營的部落格上,那隻會拉低你部落格的水準。當然你可以不放到百度文庫上,可以放到一個類似的網站上,你要心中告訴自己,這就是一個我“倒垃圾”的網站,至於有沒有人看好你的垃圾,那讓他們去分辨。這樣,萬一你有一天又想找某個垃圾了,回去翻一翻,一下子就找到了。”

 


老實說,小A的檔案管理其實比很多人都做得好。因為很多人甚至完全不做檔案管理。每次一有成果就隨便丟一個資料夾,也完全沒考慮到複用的可能。

但他檔案管理的瑕疵也是很明顯的。那麼,真正優秀的檔案管理方案又有什麼特點呢?

我給出的答案是八個字:

直觀明瞭,工作量少。

 

首先要直觀明瞭,要讓使用者一看到資料夾名稱就知道這資料夾是幹什麼的。而且,還應該減少歧義性。

接著,要工作量少。你永遠不應該讓使用者費盡心思開啟好幾層檔案就為了把一個檔案儲存在正確的位置。過於嚴謹反而沒有必要。例如網路上就有人推薦的交叉引用分類,檔案按星級分類,就讓人十分蛋疼。他們工作量太大了。

 

像是編寫軟體要先構建框架一樣,檔案管理也應該要先構建框架:

而且,在構建這個框架的過程中,我還強烈推薦您使用上封裝的思維。

所謂封裝,就是眼不見心為靜。

我構建的檔案儲存框架分為四大區域。

一、系統區域。我們完全沒必要知道我們的系統是怎麼執行的,一個一個去點開系統盤下的檔案只會讓你頭大。例如微軟系統中的一大堆資料檔案,那些檔案你不要去移動他們。雖然實際上你可以移動,但實際上你應該預設那部分割槽域對你而言是不公開的。你可以將一些確定不會刪除的應用安裝在這個區域,如VS等。實際上,你的很多應用會利用他們的許可權修改系統區域的很多配置檔案,但同樣地,你沒必要杞人憂天,隨他們去改就好了。

二、軟體區域。這部分是使用者自己安裝的應用。例如360,網易雲音樂,QQ,迅雷等。你最好用只用兩個資料夾來收納全部這些應用。一個用來收集由大公司製作的商業軟體,一個用來存放一些小型的工具(例如滑鼠精靈,加速軟體等)。做太多資料夾來收納這些應用反而沒有必要。你需要明白這其中有些什麼。什麼又是對你有用的,當你不需要使用某個應用之後,就可以來這個中間刪除某個應用。除了整體刪除應用,否則你還是不要試圖去了解其中每個檔案的意義和價值。很重要地,這些應用會產生一些有意義的檔案,你應該把他們收納到自己的個人區域中。例如QQ中收到的檔案,迅雷中進行的下載,網易雲中的歌曲等。

三、開放區域。這是真正由使用者維護的區域。其中包括使用者自己製作的檔案。包括來自word,QQ檔案,迅雷下載等。你需要為這個區域進行詳盡的分類。可能你會這樣分類。下載|QQ檔案|個人檔案>個人檔案中再分為|公司|個人|。個人又分為|平面設計|程式設計等等。你需要確保這兒留下的檔案都是有用的檔案,並定期的將這部分的檔案上傳到網盤中或備份。其中,我們十分建議只設置一個下載區域,所有不同軟體的下載位置都設定到下載區域。同時,下載區域也兼有緩衝區的功能。我們可以現在下載區域檢視一些文章,等我們準備使用並存儲這些文章的時候,我們再將之傳遞到被詳細分類的區域。

四、泛雲區域。請注意,不只是你的所謂百度網盤,騰訊雲才叫做雲區域。而應該是與你這個人本身相關聯的賬號,留下的足跡,收藏,都是你的雲區域。通過這種方法,你收藏的網址沒必要儲存到本地,也沒必要儲存到百度網盤中。直接儲存到谷歌或者其他瀏覽器賬號下就好了。你撰寫的文章也沒必要儲存到本地,而是盡情交給網際網路去儲存就好了。這就是泛雲。同理用GitHub儲存程式碼,用百度文庫儲存作業,用有道雲筆記儲存日記,圖片網站儲存圖片,簡書儲存故事。

 

這便是我推薦的四分天下的檔案管理方式。第一區域完全交給系統,不過問;第二區域放置下載的應用,不管應用的具體實現方法,你能做的操作只包括下載或移除軟體;第三區域是真正需要自己管理的區域。第四區域則是第三區域的網路的衍生,也是所有第三區域的有價值檔案的歸宿。

再次補充一點,管理這些區域時,請不要拘束物理分割槽。例如每個區域要弄一個新的磁碟。這並不需要。重要的是邏輯上的分割槽。通過這種方法,哪怕只有一個盤,也能幹很多盤的事情。

 

使用上封裝的思想後,我們真正要頻繁管理的區域其實只有第三和第四區域。而第三區域和第四區域的管理其實也不簡單。你得有一個針對該區域的框架。

例如我就很推薦在第三區域中使用如下框架。下載區&&緩衝區|回收站區域|具體內容區域,具體內容區域又分為,WORD,EXCEL,PS,程式設計,具體事件,以及一些根據學科而命名的區域。可以見得,我這兒的具體內容區域是零散的。甚至是不合理的,但至少是直觀的。當檔案找不到的時候,使用上系統提供的搜尋功能就好了,不是麼?過於的糾結細節沒有價值。

而第四區域我主要使用百度雲端儲存持久資訊,其中進行的詳細的分類,包括身份證照片這些資訊,我都無一例外的儲存在了上邊。我也用部落格來管理維護我的經驗。至於其他則都不大維護,只是使用的時候用一下而已,想要維護好全部內容,結果自然是沒有精力放在更重要的繼續奮進之上。

以上,就是這次的十日談,希望我這篇關於檔案管理的探討對你有幫助。PS:


PS:那麼,手機檔案怎麼管理呢?我給出的推薦是,不管理。不難發現,手機的下載是高度封裝的,應用幾乎不知道他所下載的軟體下載到了哪兒。也不知道如何設定收集到的檔案如何修改儲存路徑,即便知道,操作也不方便。所以,我給出的建議是,手機不要試圖做檔案管理。所有有價值的檔案通過QQ或者百度雲的方式傳給電腦,想要在手機上開啟檔案(如閱讀電子書時,再從電腦傳導到手機進行下載。)使得手機對你而言處於高度封裝的方式是很有價值的。手機是辦公的附屬物,而不應該試圖使他成為辦公的一部分。


PSS:賬號管理。每個人最開始的賬號就那麼幾個,但隨著接觸的應用變多,就會急劇增多起來,外加一些網頁端的應用,你所需要管理的賬號群異常龐大。有的賬號你擔心被盜,但有的賬號你更加擔心,遺忘。甚至,進一步的,你都會忘記自己是否真實的有過某個賬號。

以我自己為例,來了解一下我有那些賬號:

獨立:QQ 三國殺

基於手機:微信 支付寶 網易(手機號為郵箱)京東 中行卡 農行卡 百度

大公司直屬應用:網易系,QQ系,阿里系,京東系,百度系列。分別有一大堆應用。

其他有價值的衍生出來的賬號:CSDN(基於QQ)微軟(基於QQ郵箱) 秀米(QQ) MOOC(QQ)上線了(手機號)Adobe(基於QQ郵箱 Garry194278)嗶哩嗶哩(基於手機)拍拍貸(手機號)中信炒股(老手機號)雲閃付(老手機號)360(基於手機)

我的賬號已經到了如此之多的地步,這還是在很多賬號被我遺忘的情況下。在此十份建議,使用頻率低的軟體就不要維護了,改成用手機重新註冊會更好,減少記憶量,其他沒有的價值的賬號用過就可以拋棄就好了,例如四級報考的賬號。減少申請原生賬號,多用基於QQ,支付寶,手機的賬號。使用一個工作一個生活郵箱也很有必要。