🤠工业软件开发过程记录
type
status
date
slug
summary
tags
category
icon
password
路线
1 学习路线 : 模块化—立项过程—吃透代码大全—zw 模块的存在 提高效率 为什么存在
2 发展路线:
a. 3-5年工作沉浸技术 + 发展副业: 影响力 (技术博文、网络教学、接外包,公众号等等)
b. 升级副业模式
复制粘贴 (做有影响力的个人网站技术网站平台、组建外包团队)
成为中介 (联络甲方乙方Q做外包中介)
c. 攒钱加强收入 + 稳定投资理财
3 和我在巴黎一样,机票 吃饭 住宿纪念品 博物馆门票 (欧盟学生免费) ,5天5夜花了4000rmb
规范
__xform matrix--多用矩阵,多用花里胡哨
__能用算法就用算法,标准化
__不使用inline
__注意代码层级结构,低层级无法调到高层级,钩子不行
__防御式编程:进来需要先判断参数,出去看看是否需要释放内存,传出参数也要注意
__头文件的包含/但是得考虑层级关系,记住这个点,奇奇怪怪的东西没定义,参数错误等。 cmake 没包含导致的报错
__想接口 er 不是造轮子
__不允许在cpp里面使用extern int XXX( )外部函数声明
__海量的bug需要有优先级文档,抢先定个规则
__goto exit(异常): 小心,下面的逻辑也要走,return err也是,要不要掉顺序,新增怎么办,移动语句来改代码非常愚蠢
__把逻辑从处理更新操作的剥离
__include路径必须区分大小写,否则在跨平台时会出错
__增量式开发的意义,一定要注释
__分层思想,注释框架的重要性,方便知道自己在写什么
__很多项目需要做到重构,一边开发一边重构,重构与设计模式往往冲突
__注意代码层级关系,放在那一层
__何为硬编码: 不允许硬编码 alert<<东西
__深刻体会下不需要那么多参数这句话,提高接口复用度
__函数颗粒度问题的把握
__PUSH 代码的时候一定要细致
__中间层,不直接用第三方库,方便上层不换的情况下,改底层
__这个函数你可能知道应用范围,但别人可能不知道,所以限制很重要
__一旦有内存分配,在未指向外部的时候,就不再返回err了
__重构方法:不要传一整个结构体的好处,能在外层就决定不同类型参数
__只增不删与结构框架的重要性
__析构一定要写,构造里面new,析构delete,一一对应
__之前改动的弊端: 元操作命令,不希望外部去决定
__double比大小用Vx 与V_ZERO
__尽量先return
__不用头文件 看看是不是能 作用域
__枚举值,层内第一步,只有一处
__不能再里面return foreach
__参数的初始化很重要
__.写if( err= 其实是方便自己
__DB不能暴露的函数参数特征,即最好不要->
__.新加入的结构体必须要加注释|
__好的接口是不传结构体,数据太多,修改分离,我是否需要再进入查看
__能加const,结构体引用,基本数据类型则不管
__参数的初始化很重要,泄漏的bug
___正则表达式非常好用
___子类加overdrive 表示该函数是对父类的重写,会检验
___用segment[]前要判断是否越界
___写完函数的时候检查: 多余变量 注释 位置 检查 各个return是否正常
___ZS_Gaurd的使用,减少对throw与goto exit
___include路径必须区分大小写,否则在跨平台时会出错
___消息链长且多,特例情况特别多,用类去重构
___数据与方法的分离,用户层可以使用数据和算法
经验
unordered_set<int> xxx ={} auto it = xxx.find() if(it≠xxx.end)
ui调节应该需要定规则+布局+比例,每个模块层级要对称,理清UI逻辑: 不允许字变小\格子压缩等
冒烟测试(详尽的测试),回归测试(重新回来测试): 自动化测试,然后修改其中的宏
编译的时候不要去调整函数
重构从简单的入手,跑通流程的重要性
心得:学会反驳,然后按照他说的来做
资源: 图片 警告 翻译
HG删除文件不是乱来的,必须保存记录
全局变量,全局变量打断点,breakwith,其实道理很简单,null之前是不是有释放操
设计一系列使用TpathContainer的 过渡函数去替代原有函数,保证重构稳定小步 如TurnxxMove->TurnxxMove1
第三方库移动省内存
项目与bug驱动重构与理解
先改turn 从熟悉总结出一套方法
立项标准
(1)需要输出需求文档,评审会议记录
(2) 开会讨论统一后的SOW, 里程碑是最重要的, 测试与改bug与集成前测试,工作量要长或者工期要长
(设计说明书:
①jacob觉得我只是再说方案
②框架思路,相当于开发的思路
编码阶段
(1)开发按照用需、设计方案(如有)完成编码开发
(2)进行自测,包括冒烟测试、体验评审自测、跑宏、单元测试、内存泄露测试等
(3)产品按照用需设计体验评审内容
(4)测试按照用需等完成验收测试方案、用例,以及方案的评审
(5)集成
完成的指标:
①完成用需上点,通过上面的自测、跑宏、单元测试、内存
②代码整理, 注释 位置 规范 重构
③全量理解—ave
④测试bug 测试轮廓分类,就是测试案例分类本质是测试轮廓分类。
入口标准: qts无崩溃 + 内存泄漏 + 新录宏
不需要频繁无意义的尝试
高层思维
不要死磕
技术选型原则: 最新,生态,上次更新时间
僵尸进程: 太多下ctrl c 掉ssh了
要学会写伪代码以及画图
有注释的打一遍,盲打一遍
在milvus中,collection 叫表,为什么选milvus?
python -m Modules.Qwen2Model 模块需要运行,然后重启ipynb
小细节(效率)
__看*看.cpp改了无
__类似功能
__边写边改
__抄领导的东西
__及时commit节点
__浪费时间 不想改就看文档
__做好自己的事情,不要被别人的事情干扰
__思考习惯是否很费时
__ 效率(两台屏幕,多个仓库,编译器),mlink 软链接
__断层恢复,周末回去看不懂代码的难堪
__权衡好任务与学习之前的关系,时刻保持清醒
__哪个项目改动不多呢,要有耐心
__VA outline 看文档中的头文件跟cpp
__别人的好习惯,以前比赛的时候,录屏
__需求模糊的部分不做,返工
__先自己找找原因再找jacob,先表达清楚问题
__如果需要看数据库的内容就好好看,下拉框watch
__顶层设计>想修改方法 :自由度太大导致的问题
__get stuck时候可以放松一下
__最好是用多个节点提交bug,阶段性问题
__服务器跑宏
__很多你困惑的难题,产品一句话可能就搞定了
__增量式开发的意义,一定要注释
__.记住编译的时候要看清楚不是debug,浪费时间
__去哪里蹲断电的问题:Uiformshow里面蹲着 cfgread
__改了头文件就重新build,不要再把那个箭头拉来拉去了
__不要重复输出业务,浪费时间,直接用宏,有无一些自动化测试的首段
__ui改动:先交流清楚,且理清顺序
__努力去缩小改动范围
__小报错.dll可以接受的
__breakPnt来记录想去的函数
__先别动手改先想,想不通则是在试,但确实是动手写效率>调试效率>干看效率
__提高自己阅读代码的速度,写代码的速度,排查问题的速度,思路清晰
__并不是搞清楚那个参数是什么意思,对比主干,发现哪个参数不一样,然后就是看那个参数是啥
__shift + f11 跳出当前,除了一些极大提高效率的东西,其他其实不太重要
问题
没用就是没用
1.我会QT?? 学下QT,增量式
2.如何log文档
3.HG与git
4.如何从github上抄一个小程序
5.C_Auto
6.cpp checker
7.Cmake
8.防御式编程
9.void的返回是 throw vxException
10.设计模式: 单例模式 工厂模式
11.如何检查内存泄漏等
12.Mermaid 类图
13.熟练使用IDE
14. throw 还是return
15. 观察者模式与访问者模式
debug
__快捷键的使用
__如果一条代码改了又删,停下来,干别的事情
__看description,参数,函数名去追踪答案,if该隐藏就隐藏,differ对比
__调bug策略:问题定位,找熟悉的函数下断点,看堆栈,先小试一段,调通,bug存在否,成功后再去复制
__搞清函数的目的真的很重要,参数输入输出后的不同, 有重点的看,如果是自己来实现应该这么写
__聚焦的问题, 哪里导致的bug
__看hg+画图好像效率更高,查找HG的改动后直接理解函数意思
__先想类似的功能--画下重要函数的流程图--提炼接口--尝试直接冲--调试失败—后仿造重写,按参数高亮追踪会更
__先看再动手 改bug前要考虑哪里可能出现问题
__优化不了,换种方法
___算法对比时候,可以放在同一个循环里
___为啥其他的没错
__源码阅读逻辑
1. 读源码前,熟悉业务,必须全面熟悉该框架的所有功能
2. 读源码前,必须分清主次真正的核心流程
3. 读源码过程中,多多利用源码调试技巧和工具
条件断点法—断点溯源法(补齐无参构造)—修改源码法—注释法
4. 常用工具介绍
读源码过程中,善用猜测法,增加趣味性—反复、反复、再反复
__先确定是否是自己的问题,UI框架
__bug可能时没走相应的流程导致的
__自己添加条件断点,if(fabs (xx -xx )< tol
__改bug就像在刷题
__== || 换成!=有坑
__goto exit(异常): 小心,下面的逻辑也要走,return err也是,要不要掉顺序,新增怎么办,移动语句来改代码非常愚蠢
__gs_rblsMgr.m_FnPreview(),小心那个-> 函数,遇到这种多按几次F11查看隐藏的函数
__dll报错编译那个 不行就重开 或者重启 或者再编一下zw3d
__能最快改bug的方法,面向接口
__c与c++不要混用,new与malloc小心宏定义下可能是vector
__看不懂的代码就不管他
__进程没编译
__头文件的包含/但是得考虑层级关系,记住这个点,奇奇怪怪的东西没定义,参数错误等
__production跑了后cfg资源没变
__报一堆错/注释掉加入的东西/一点点排查
___Realloc奔溃,先前没分配内存,但是能写,故调用后奔溃
___只有他往外out 深刻去理解他的精髓
___科学调试的方法:
1.定位:
2.尝试且猜原因: 控制变量法 + 验证
3.好好理解比你瞎改好得多, 而且清晰改bug真的很重要
上一篇
王兴早期博客
下一篇
我是肖徽腾
Loading...