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

WeeklyARTS-Sharegit

1、概述

框架的功能:定時讀取指定路徑下的配置文件,掃描配置文件中的節點,而後拼出一個新的路徑,在該路徑下判斷任務文件夾是否該刪除,若是該路徑下的任務文件夾爲0,同時刪除該路徑。github

 

2、所須要的關鍵技能點

技能概述設計模式

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

 

3、搭建步驟

經過爬樓梯形式一步步完善框架的功能安全

1,寫出經過掃描指定路徑打印該路徑下的全部文件和文件夾;併發

能夠用 ioutil.ReadDir 函數實現框架

 

2,加入定時器,定時打印指定路徑下的全部文件和文件夾;函數

能夠用 Ticker 實現單元測試

 

3,在指定路徑下添加以時間命名的文件夾,定時將其符合條件的刪除,不符合條件的刪除;測試

能夠用 Unix時間戳 實現命令行

 

4,在指定路徑下添加配置文件,經過掃描其節點從新拼湊成一個新的路徑輸出;

5,在從新拼湊的新路徑內建立須要定時刪除的文件夾,並判斷若是文件夾爲空,將該路徑也一併刪除

6,添加日誌系統

7,進行單元測試

 

4、收穫

三週時間從零到一搭建出了一個框架,帶給個人感觸不少。

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

get到的技能有熟悉運用了兩個設計模式,對結構體,指針的做用有了更深刻的理解,學會用Unix時間戳對文件夾進行刪除判斷,熟練使用Go語言對文件和文件夾的操做,理解進程、線程、協程之間的區別,熟練掌握Go語言的兩個併發機制 channel和 goroutine。

相關文章
相關標籤/搜索