個人項目總結 By 張雄


#這篇文章的目的是總結下過去兩周內ASE課程的individual project。內容是寫一個詞頻統計的命令行程序。當然統計單詞不涉及語義,只要是被非[A-Z a-z]的字符分開的都可以算為單詞。實現的語言不限,我是用C#寫的。

#拿到project的內容感覺不難,感覺重點也就是遞歸遍歷目錄和split,不過由於對C#訪問目錄的方法不是很熟悉,所以花了一點時間去學習,但總的來說沒有遇到什么組里地就寫完了,絲毫沒有考慮到效率問題,data structure什么的也都盡量挑了自己覺得省事的使用。寫完后拿自己之前在學校里的一個雙語語料的英文版測試了一下,感覺貌似還好的樣子,不過由於沒有參照,所以實際上也說不上好還是不好,只是看上去還比較靠譜的樣子。

#過了幾天之后又上ASE課程,然后得到了一個算是標准的測試數據集,用自己的代碼跑了一下,果然不負眾望地出錯了,當然我不是指RE這樣的錯誤,而是跑出的結果不對,觀察后發現結果中出現了很多無法很好地顯示的特殊字符,於是考慮到可能用split並不是很合適的一種做法,所以開始着手實現自己的split,這一寫就是好幾個小時,中間有個小bug一直沒有找出,花了相當長的時間去debug,好在最后終於還算是跑出了貌似正確的結果。

#有了結果后又順手看了一下性能。第一次使用VS自帶的性能調試工具,感覺還是很強大的,之前更多的時候還是把VS當成了一個不怎么好用的編輯器+編譯器,但其實VS叫studio不是叫visual edit或visual compile還是有原因的,里面確實集成了很多工具,而自己根本就不太注意。在自己8core高富帥機器上即使是自己幾乎沒有考慮效率問題直接去寫的代碼在性能界面上看到的運行結果居然也還可以,看到的兩個瓶頸一個是ToLower,還有一個是Dictionary的一些內部方法,我試着自己寫了一個ToLower,結果發現比自帶library的速度還要慢,於是只好作罷。Dictionary的話如果想優化貌似會涉及到一些非常重口味的東西,於是我也就呵呵而過了。

#然后submit源代碼和release出來的exe,這件事情就算結束了。

#另外值得一提的是,雖然這個程序很簡單幾乎算不上一個project(當然嚴格地說我還是在VS里建立了一個project),但我還是記錄了下做不同事情需要的時間,並最終把預期和實際情況做了下對比。

#超出預期的是Testing過程,原因就是我上面所說在獲得了新的數據集之后發現了split的問題之后又着手實現自己的split導致花了很多時間。

#總之,項目本身的最大收獲是學習了很多關於C#和VS的新姿勢(比如C#神奇的LINQ),並且多少也算是恢復了下荒廢已久的coding能力。

#以上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM