? ? ? 還有4天就是我進(jìn)公司滿一年的日子时捌,想想一年前的稚嫩掂之,到現(xiàn)在的稚嫩抗俄,只能說,越學(xué)習(xí)越覺得自己的卑微世舰。
? ? ? 我準(zhǔn)備從多方面來回顧與總結(jié)這一年的工作动雹。由于是公司內(nèi)部有保密協(xié)議,只能是籠統(tǒng)的總結(jié)冯乘。
? ? ? 公司主要是做CDP備份業(yè)務(wù)洽胶。我主要負(fù)責(zé)的是客戶端C++這塊晒夹。
一裆馒、工作任務(wù):
1. 獨(dú)立開發(fā)了一個類似于進(jìn)程管理器的簡易版(記錄特定進(jìn)程的CPU, MEM, IO)∝で樱【練手項目】
2. 客戶端代碼的維護(hù)喷好,主要以解bug為主。
3. 客戶端模塊的開發(fā)读跷。
4. 客戶端安裝包的打包梗搅。
二、涉及技術(shù):
1. windows win32. 開發(fā)效览, Linux 開發(fā)无切。
2. windows, linux跨平臺丐枉。 Cmake哆键。
3. Inno Setup腳本。
4. Linux的shell腳本瘦锹,windows的.Bat腳本
5. 客戶端狀態(tài)機(jī)異步模型籍嘹、多進(jìn)程通信模型闪盔、多線程模型、socket編程辱士。
6. UML建模泪掀,需求分析
7. 項目管理, WBS
三颂碘、遇到的問題及解決對策:
1. 如何快速閱讀大段代碼并了解其內(nèi)容
? ? ? 第一次閱讀客戶端代碼的時候异赫,所有代碼加起來有接近4萬多行,瞬間感受到自己陷入一片汪洋大海中头岔。后來通過調(diào)試祝辣、畫UML時序圖和狀態(tài)圖、問原作者切油,逐漸知道了代碼的各個模塊的內(nèi)容蝙斜,并通過解決BUG增加了自己的掌握代碼的信心。
2. 如何進(jìn)行開發(fā)和安排任務(wù)
? ? ? ?遇到一個新需求要進(jìn)行開發(fā)時澎胡,如何進(jìn)行開發(fā)孕荠,這個問題很重要。
? ? ? ?最重要的是做好需求分析攻谁,明白為什么要有這個需求稚伍,現(xiàn)有的業(yè)務(wù)能不能覆蓋這個需求?如果能覆蓋戚宦,就不需要再造輪子个曙。如果不能覆蓋,就要思考這個需求的核心是什么受楼。明確核心之后垦搬,下一步就是進(jìn)行技術(shù)預(yù)研,選擇好想用的技術(shù)艳汽,然后就是設(shè)計和WBS了猴贰。當(dāng)然如果有條件的話最好有技術(shù)和設(shè)計評審階段。設(shè)計的時候要將可擴(kuò)展性考慮進(jìn)去河狐。
3. 編碼中遇到問題時怎么解決米绕?
? ? ? ?我一般的解決方式是先找文檔,一般是
·MSDN
? ? ? ?文檔還解決不了或者搜索的時間超過2個小時還沒有頭緒馋艺,就只能問同事了栅干。
四、工作1年的反思
1. talk is talk, code is code.
? ? ? ?工作中代碼很重要捐祠,溝通交流也非常重要碱鳞,能節(jié)省很多時間。
2. 慢就是快
? ? ? ?花時間做好設(shè)計比一上來就直接編碼雖然看起來費(fèi)工夫雏赦,但是這種設(shè)計一旦做好了劫笙,后期出bug的可能性小芙扎,bug即使出現(xiàn)修復(fù)也很容易,而且便于新同事接手及培訓(xùn)新人填大。
3. 模塊化很重要戒洼、重構(gòu)的力量
? ? ? ?重復(fù)造輪子是很沒有必要的。如何把已經(jīng)有的輪子很好的組裝起來允华,如何把之前復(fù)雜的邏輯拆成模塊便于可以任意組裝圈浇,這些都是需要思考的。這點(diǎn)也是需要做的靴寂。
4. 定位問題磷蜀、調(diào)試的能力
? ? ?遇到問題時,資深的工程師能夠憑借經(jīng)驗直接猜測可能問題出現(xiàn)的地方百炬。我只能根據(jù)現(xiàn)象褐隆,通過排除法單步調(diào)試,逐步解決問題剖踊。這個方法很笨庶弃,效率也很低下。下一階段德澈,解決bug之后歇攻,要進(jìn)行總結(jié),如果遇到相同的bug要找到共性梆造,以后遇到問題了缴守,就可以進(jìn)行類似的推斷,這樣就不必每次從頭開始單步镇辉。
? ? ?調(diào)試能力很重要屡穗,windows與linux都需要掌握,尤其是多線程摊聋、內(nèi)存泄露方面的調(diào)試鸡捐。
5. 學(xué)好英語寫作
? ? ? 一手的資料大多數(shù)都是英語栈暇,目前自己能夠做到在閱讀英文材料的時基本了解作者的思想麻裁。但是如果讓自己寫出來,你能重新寫出來這個資料么源祈?如果有問題想請教這個作者煎源,能用英語準(zhǔn)確的寫出你的問題放在論壇上或者寫在郵件里么?
? ? ? 做技術(shù)不是閉門造車香缺,是需要交流的手销。縝密的邏輯图张、好的文筆是很重要的锋拖。如果遇到大牛诈悍,在與他溝通時還要靠翻譯,這不是很可笑的事情么兽埃!