1. 程式人生 > >從零到一搭建出一個定時刪除資料夾框架的收穫

從零到一搭建出一個定時刪除資料夾框架的收穫

WeeklyARTS-Share

一、概述

框架的功能:定時讀取指定路徑下的配置檔案,掃描配置檔案中的節點,然後拼出一個新的路徑,在該路徑下判斷任務資料夾是否該刪除,如果該路徑下的任務資料夾為0,同時刪除該路徑。

 

二、所需要的關鍵技能點

技能概述

  • Go語言基本語法
  • channel機制:通道負責傳輸資料,同時具有安全保障。
  • goroutine機制:多協程分發協作完成所需任務。
  • 併發原理
  • 熟悉常見的設計模式
  • 單元測試,依賴注入
  • 日誌系統:方便排查問題和跟蹤程式的執行過程。

 

三、搭建步驟

通過爬樓梯形式一步步完善框架的功能

1,寫出通過掃描指定路徑列印該路徑下的所有檔案和資料夾;

可以用 ioutil.ReadDir 函式實現

 

2,加入定時器,定時列印指定路徑下的所有檔案和資料夾;

可以用 Ticker 實現

 

3,在指定路徑下新增以時間命名的資料夾,定時將其符合條件的刪除,不符合條件的刪除;

可以用 Unix時間戳 實現

 

4,在指定路徑下新增配置檔案,通過掃描其節點重新拼湊成一個新的路徑輸出;

5,在重新拼湊的新路徑內建立需要定時刪除的資料夾,並判斷如果資料夾為空,將該路徑也一併刪除

6,新增日誌系統

7,進行單元測試

 

四、收穫

三週時間從零到一搭建出了一個框架,帶給我的感觸很多。

從踩的坑來看有非法指標訪問,型別轉換,函式作用域,在步驟五中出現類比失誤,將命令列與圖形化操作介面進行類比,阻礙瞭解決思路;

get到的技能有熟悉運用了兩個設計模式,對結構體,指標的作用有了更深入的理解,學會用Unix時間戳對資料夾進行刪除判斷,熟練使用Go語言對檔案和資料夾的操作,理解程序、執行緒、協程之間的區別,熟練掌握Go語言的兩個併發機制 channel和 goroutine。