🤠工业软件开发过程记录

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...
目录