開發新需求,zq項目總結--如何學習代碼

@2018-03-10

背景

從去年六月份到目前爲止,正式學習和從事c++相關的工作有不短的時間了。因爲入門是tc++pl,對其中的思想和觀點很是認同,所以在c++和win的學習上秉持着有個大概的瞭解,用什麼學什麼的態度。
py啊,java啊,設計模式啊,uml啊,dml啊,這幾個在實際的工作中自己意識到了相關的東西,在與人交流作爲經驗吹水的時候,有相關的小夥伴或者可愛的大佬就會出來說,你說的這是xxx語言,直接用xx語言就好了啊。每次遇到,我都會講,md它們這是剽竊我的思想。註冊回調啊,狀態機啊,藉口啊,類關係啊一類。
然後維護代碼的過程中之前一直採用 fun1
                                |__fun2
這樣形式的筆記來總結某些類關係和函數調用關係。
在之前xmdk項目中,文檔中繪圖,使用uml的過程中,發現還是不錯的。

問題描述

本次從項目的大佬那要了他畫的uml圖,通過調試觀察調用棧以及uml的類圖,發現對代碼的認識效率有一定提升,自己嘗試着作出大佬沒有畫的邏輯部分。
但是中間出現了一個問題,
在我負責的模塊中,我通過調試驗證一些小的細節是否能過,以防止之後實現的過程中出現斷層gg。
然後我居然忽略了一層封裝(uml類圖中沒有列舉這個),導致對功能的實現上出現了很大的問題。

解決思路

在調試和分析模塊功能的時候,
    1,斷點和調用棧分析,簡單粗暴,耗時。
    2,預判和猜測,需要經驗和技術基礎。系統瞭解過工作技能知識,c++語法啊,操作系統啊,=,=出錯習慣啊,認真聽取老人的總結啊。反正我蒙對的概率極高,可惜複雜邏輯的代碼情況下,解決思路還是沒有,不敢動啊。
本次造成問題出現的因素,
    1,消息傳遞,線程跳轉,調用棧抓不到。
    2,調用棧調用點不一定代表了完整邏輯,例如創建某關鍵對象,對象向管理器或容器註冊等關鍵地方,完全可以先把指針送到管理器,然後再new,然後再調用某些方法。很可能在瀏覽調用點的時候就略過去了
    不掠過去,那時間和精力,呵呵了就

@2018-03-13

c++代碼維護–心得

準備下手開發了,然後對於代碼這塊有了新的體會。
1,概念的分層和分類,按照什麼分層,按照什麼分類。
如接口(純方法)和對象,如容器,啓動註冊,對象實體。
2,對於各個模塊,聲明,定義,初始化,運行,停止,回收。
就像線程的狀態一樣,由於指針的存在,模塊的狀態是一個很神奇的東西。
我們假象自頂向下,創建容器,創建對象,將對象註冊增加到容器。
實際在這個過程中,可以先聲明容器指針,創建對象,然後檢測容器是否創建,再註冊對象。
也可以先創建個含對象聲明指針的包裝,將包裝註冊,實際需要時再創建對象。
以上的實際意義在於,1,增加設計封裝性,2調代碼的時候,會干擾你的思維

@2018-03-15

問題與解決

煩人啊,子類繼承父類,然後調試跳轉到父類函數(子類沒有重載),這個函數調用了一個函數(被子類重載)。f12仍然在父類裏打轉,坑死了。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章