這兩天發瘋一樣改進 OverlayFS。。
今晚:
$ svn diff -r17:15 file:///svnroot/olfs/trunk | wc -l 847
周四晚:
$ svn diff -r15:12 file:///svnroot/olfs/trunk | wc -l 722
周三晚:
$ svn diff -r12:10 file:///svnroot/olfs/trunk | wc -l 573
目前代碼總行數:
$ wc -l * | grep total 1561 total
可以說學程式以來從未如此投入過。C# 的時候沒有,Java/Eclipse 的時候也沒有,寫 C++ 的時候更不會有。
目前進度:大量製造並消滅 bug 中。基本 overlay 完成,動態配置部分完成,訊號響應還沒有成功。輔助組態工具 dirmon 列入進程。
心得:開始的時候是由於在看 Linux VFS 源碼,而且最近一直號稱我是個寫 C 的人,所以想練練手。結果,複雜程度一點一點提高,代碼裡 C++ 的比重一點一點增加(苦笑)很多時候如果想偷懶,C++ 會是很好的選擇。模板、繼承之類的進階特性完全可以不用,只要“封裝”一項就能解決無數麻煩。FUSE 熟悉一些了,pthread 熟悉一些,最後正要熟悉 signal。Emacs + GDB 不說精熟無比也算略有心得;Valgrind 也慢慢會用了;順便跟著 hellwolf 學會了一個 screen (重新學會——我開始用的時候他還沒碰 Linux 呢。。)學會將任務分離到各個模組中,不論開發還是調試都會方便。不為了使用工具而使用工具,能用 Makefile 解決我就沒有必要去看 autobook。掃描字元方面直接用指標比用 std::string 方便,管理記憶體還靠 map<string, T>。既然 C++ 努力保持了 C 相容,我們就應該利用起來。
教訓:該動筆打草稿就應該動筆,鍵盤不能解決一切問題,時間浪費太厲害了。低級錯誤太多,要學會認真用眼睛(而不是調試器)審核代碼邏輯。很少做筆記,下次還得很麻煩。
非常期待 0.5 release 。。。:)
p.s.
$ uptime 04:36:18 up 8 days, 21 min, 2 users, load average: 0.00, 0.00, 0.00
我可憐的開發機 + 音樂伺服器啊……