2013工作總結與2014工作計划(編程方面)


這一年就這么過去了。。。總覺得應該寫個總結來記錄和反思一下。
在編程學習方面: 
    已經在編程道路上走了一年半了,買了大概50本技術書籍(TAT省吃儉用2000多啊。。。),看完了大概20來本,大概10來本看了幾遍。深入學習了C++,入門了C#,入門了算法,入門了操作系統,入門了編譯原理。雖然感覺自己學的挺多,但是暴露出來的問題依然很多。
    1.即使是看了幾遍的內容,依然還是會忘記,應該沒事多多溫習自己看多那些東西,例如當初對象模型可是看了三四遍,這塊抽象基類的內存模型以及混合抽象基類,虛基類,虛函數表,多重繼承后的這些東西的內存模型以及編譯器的處理依然不清晰。在溫習舊知識這塊,我做的還是太爛。。。
    2.對於需要工程實踐的內容,不能僅僅滿足於看過了,看過了還是會忘記,例如effective STL ,exception系列,effective系列,都是出於工程實踐的經驗總結,顯然我目前的閱讀方式不適合太好的吸收書中的內容,特別對於那些C++的坑,沒有太過深刻的理解,后面應該這些書多次重新看,深入思考,寫博客記錄。
    3.對於完全是工程實踐的設計原則與設計哲學。。。這塊還是學的不是怎么好。。可能是因為自己沒有太多大工程來實踐吧,還是需要一個比較大一點的工程,可以讓我把我學的所有知識都運用起來,這樣可能就會有更深的理解,像C++的API設計,大話設計模式,這一塊沒有寫上1W上以上代碼的大工程的錘煉,就不要談什么設計模式。。。。目前這塊做的還太弱了。
    4.在下半學期,對於編程的學習比前一年感覺少多了,一方面是我學的深入以后差不多目前是個緩慢增長期,設計原則,架構,操作系統,編譯原理,都不是說學習了立即就可以看到效果的東西。而且這些書本身難度也比較大,所以進度就比上學期感覺慢很多了。當然這是客觀上,就主觀上,這學期懈怠了很多,一方面11月份以前工作事情多的一比,我要處理,另一方面11月份以后雖然工作那邊不忙了,但是我個人卻有點懶了。。。除了看書基本沒敲太多代碼。簡單說是沒敲難度太高,太深入某一個方面的代碼。對一些新東西的學習也沒深入到專業程度。這一塊做的不好,后面肯定要改,就1年半就要工作了- -再不好好干就晚了!
在大型項目和工程方面 :
    5.在大型項目和工程方面,我個人覺得以后我能自豪寫入簡歷的項目的雛形,大概就是暑假開始修煉的ZTL標准模板庫還有C++正則引擎。但是目前問題還是很多
    在ZTL標准模板庫方面:
    1.目前還是太弱了,只是提供了內存池,類型萃取器,vector,list,map,hash_map,deque,智能指針,這些的實現,但是這些遠遠不夠,這不過是最基本的罷了
    2.在架構上還有些問題。當初寫的時候編譯器是VS2010,對於C++11支持不完整,有些東西的寫的很丑陋,另一方面,因為個人對於大型項目的掌控力不足,在架構的適用性上API的設計上還是有些問題,這一塊肯定要重寫的,目前寫的最多也就玩具DEMO罷了。
    3.對於寫出的標准庫容器沒有撰寫XML調試器支持文件。所以調試的時候很蛋疼。另外沒有考慮多線程環境的互斥與鎖,在多線程環境下也沒有提供基本的保證,對於異常安全也沒有都提供保證。
    4.改進:重寫ZTL,支持bind,function,那些常用容器,通用算法,智能指針,將boost的好用小部件和stl的好用部分整合過來。
    5.需要加上技能點,ZTL寫的太爛的一個很大的原因就是我C++技能點沒有加滿,對於模板元編程和模板技巧掌握不足,對於預處理期元編程也沒有涉足。所以在代碼可以實現的能力上完全不能和STL還有Boost抗衡。所以新的一年里需要新技能get。將這塊知識補足。
    在正則引擎方面:
    1.這個東西在網上找不到太多資料- -找到的都是簡單的一比的那種,和我想做的完全不一樣,想做只能去看別人的源碼或者自己思考,所以這塊做起來特別蛋疼,我已經寫到了第四版了,但是問題依然很多。
    2.一個是引擎能力不足,目前還不能支持.NET正則引擎的全部功能,平衡組,附加選項,編譯執行選項這些都沒有實現,我希望能做出一個C++版的.NET正則引擎。這塊后面還要繼續研究如何去實現
    3.一個是重寫次數太多,已經第四版了,前幾次的重寫都是因為我想加入更多新功能的時候,發現自己的引擎的架構已經沒法改了。。。每一次都是寫着寫着發現又悲劇了,只能重寫了。對架構這塊的能力還是太弱了。。不過這玩意往后寫壓根就沒有教程去學,多摔倒幾次也屬於正常現象。
    4.一個問題是沒有用CodeGen的思想。重寫了4次了,每次寫都有一種感覺,特別是第三版和第四版,總感覺可以用自動化生成的方式去生成它.我寫的時候就經常是把enmu的標簽復制到notepad++之后直接用正則替換就快速生成大量框架代碼。然后再手寫一部分,但是手寫的這塊也是有很多重復或者相似的內容,這塊我還是要構思一下,在第五版的正則引擎中加入Codegen的代碼生成工具。手寫那些冗余代碼實在無聊。
    5.還有一個問題是沒有用單元測試和自動化測試工具,一個合格的程序員的標志是能公開的,持續的,維護自己的作品,但是不用測試如何能去維護- -在第五版的引擎編寫中,要參考軟件工程的開發流程,做好規划,Code,審核,測試,修改這一系列的流程。沒有大量的測試,寫出的代碼的維護水平就是不可維護。這塊做的還是太爛了。
 
    6.目前技能水平還是太爛還有更多技能需要get,目前我的編譯原理知識只是皮毛,正則引擎這塊作深入了也沒啥教程,沒有堅實的技術基礎去探索如何實現上下文無關文法的正則引擎,還是太吃力的了,還是需要get更多新技能,不然工作還是不好開展,希望寒假能真的將這個正則引擎第五版做完。
    6.項目還是不夠大,第四版的正則引擎也不過4000+行代碼,離VCZH聚聚說的用1W+行代碼的大工程能來練習設計模式這塊還差的太多,就算只有4000行,我發現我對於這塊代碼的控制力也不足,寫上一個月到后期的時候對於前期實現的一些細節,也不是那么清晰記得和實現了。這塊還是個問題,對於這塊的解決只能通過更加詳細的設計文檔和清晰的思考來解決了,其實這塊也說明了問題,我沒有對引擎設計都思考的非常清晰,對於如何實現都思考的非常深刻就開工,返工重寫什么的也是必然的,這一塊在下一版的正則引擎上一定要改進。
在下一步想學的技術和想做的工程方面:
工程方面:
    1.繼續去完善我的ZTL庫和正則引擎,希望寒假能夠搞定正則引擎吧.
    2.寒假之后繼續去實現我的ZTL,比起vczh菊苣的輪子,太弱了
    3.寒假后開始用C#寫個文本編輯器
想學的技術:
    1.寒假時候繼續每天2小時的haskell英文資料學習.
    2.寒假繼續學習編譯原理和C++的模板和模板元編程知識.
    3.溫習之前學的種種知識,用博客或者印象筆記總結一下.
寒假之后到年底暫時還沒有太多規划吧,大體上一個是haskell入門,C++技能點點滿.C#相關WCF WPF技能點點滿.C#的文本編輯器完成,參
Sublime和VAX,對能對C++的模板有智能提示和補全.
     4.希望能心想事成吧.繼續努力! :)向一流程序員進發!

  歡迎大家給我一些寶貴的意見與建議:)


免責聲明!

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



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