WC 我的項目 ( node.js 實現 )

基於 node.js 的 wordCounter 我的項目css

GitHub 項目地址:https://github.com/KofeChen/node.js-WordCounterhtml

實現功能:前端

可以匹配並處理node

  • 單個文件:行數、單詞數和字符數
  • 文件夾中符合條件的多個文件: 行數、單詞數和字符數
  • 單個或者文件夾中符合條件的多個代碼文件: 代碼行數、註釋行數和空行數
  • 控制檯或者圖形界面展現結果 圖形界面展現的文件可點擊經過瀏覽器訪問

PSPgit

PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
Planning 計劃 40 30
· Estimate · 估計這個任務須要多少時間 40 30
Development 開發 1230 1580
· Analysis · 需求分析  60 30
· Design Spec · 生成設計文檔 40 40
· Design Review · 設計複審  30 30
· Coding Standard · 代碼規範 20 20
· Design · 具體設計 60 60
· Coding · 具體編碼 800 990
· Code Review · 代碼複審 100 150
· Test · 測試(自我測試,修改代碼,提交修改) 120 120
Reporting 報告 150 130
· Test Report · 測試報告 60 50
· Size Measurement · 計算工做量 30 20
· Postmortem & Process Improvement Plan · 過後總結, 並提出過程改進計劃 60 60
Total  總計 1420 1600

使用手冊:

下載下整個項目文件而且安裝了node.js以後,打開 cmd 或者 git bash 到項目文件目錄下 例如:C:\Users\Kofe\desktop\WCgithub

輸入命令:編程

  • node wordCounter.js -l "路徑" "文件名.擴展名" --> 統計文件的行數
  • node wordCounter.js -w "路徑" "文件名.擴展名" --> 統計文件的單詞數
  • node wordCounter.js -c "路徑" "文件名.擴展名" --> 統計文件的字符數
  • node wordCounter.js -s "路徑" "文件名.擴展名" --> 遞歸遍歷文件夾中符合"文件名.擴展名"的文件,並處理它們
  • node wordCounter.js -a "路徑" "文件名.擴展名" --> 遞歸遍歷文件夾中符合"文件名.擴展名"的代碼文件,並處理它們
  • node wordCounter.js -x -? "路徑" "文件名.擴展名" --> 處理單個文件或者多個文件並經過圖形界面展現

說明:若是不指明路徑則默認爲當前文件夾下查找符合條件的文件,文件名能夠爲通配符 * 。設計模式

解題思路

  1. 選擇編程語言

我是學前端方向的,當時選課程的時候選了 C#,結課以後沒有進行過深刻學習,最終選擇用 node.js 加上一點點 html 和 css 模擬設計這個wc我的項目。瀏覽器

  1. 從小模塊開始實現

一開始想過是否能夠用 C# 的簡單工廠設計模式作項目,後來發現本身的技術不過關,用 C# 作不來,在轉向 node.js 的時候決定從一個一個小模塊着手實現。經過對文件一行一行的讀取而且正則處理,來統計行數、單詞數和字符數等。bash

  1. 處理用戶和程序之間的交互

用戶和程序之間的交互,我用的是事件的發佈訂閱模式,程序訂閱(監聽)事件,用戶輸入的命令通過處理以後發佈(觸發)事件,監聽到事件觸發以後再傳輸給模塊進行處理。而後再將處理好以後的文件信息經過控制檯展現出來或者再傳參到圖形頁面展現模塊展現。

  1. 實現圖形界面

實現圖形界面這裏只能統計好文件處理信息以後,自動打開一個瀏覽器,將信息拼裝好放到頁面上進行展現。有一個遺憾就是,沒有找到方法在頁面選擇文件而且返回路徑再處理文件。因此經過圖形界面選取文件這個高級功能這裏並無實現。

設計實現:

測試:

1.控制檯

統計單個文件的行數:(多打了個字~下面是空文件)

統計單個文件的單詞數:

統計單個文件的字符數:

遍歷文件夾:

遍歷文件夾統計代碼文件:

2. 圖形界面

執行命令以後,瀏覽器自動彈出並展現文件信息,點擊文件名連接能夠經過瀏覽器訪問文件

實現了選擇文件對話框,可是沒有實現選取文件以後處理文件

項目總結:

走好每一步才能放心地走下一步。

  除了認識到了我的項目開發的一系列流程外,意識到只有熟悉每一個流程,並經過正確的方法作好每一個流程,才能避免項目走到後期的時候再來填前期的坑,浪費不必浪費的時間。

還需增強自身硬實力。

  項目並無涉及到框架和具體的設計模式,用到的只是事件的發佈訂閱模式處理用戶(User)命令,程序(WC)調用方法模塊去處理用戶請求返回結果。由於時間關係,代碼當中還存在不少可優化的地方。

相關文章
相關標籤/搜索