开发新需求,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仍然在父类里打转,坑死了。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章