没有魔法,只有聪明的模型 + 合理的 Prompt
AI辅助代码流本文并非教你怎么使用 Claude Code,尽管有一定的参考价值。对我来讲,就是一篇流水账,我想到那写到哪。但我想,仅仅是记录事实就已经很有价值了。就像我在知道 Claude Code 的开发人员在高强度使用 Claude Code 开发 Claude Code 后,那我觉得,如果我没能用好 Claude Code ,那一定是我的问题,而不是 Claude 在做营销。使用之前的疑惑几个月前,我还没接触cursor这类的代码能力极强的aigc,对ai的代码能力是很贴切的,只能做很简单的网页代码编写。在23年刚接触GPT的时候,我只是把他当作一个更强大的搜索引擎,那个时候的ai联系上下文写代码的能力极差,而且在对于代码的理解方面经常性犯一些错误,你需要经常去纠正它。举个非常经典的例子来讲,c++中传输实时变化的数据需要用到指针和引用,那个时候的gpt是完全察觉不到这个bug的。入职之后,我开始大量使用ai去工作,最开始使用的gemini,再到后面的gpt和cursor,陆陆续续到gemini cli,codex这种指令化的强上下文ai,再到今天使用了Claude code, ...
堆叠式工作流
堆叠式工作流堆叠式 PR。堆叠式 diff。堆叠式变更。一种更好的拉取请求(Pull Request)管理方式。
代码评审很耗时代码评审对 PR 作者和评审者来说都可能耗费很长时间。
作为作者,你可能要等上几个小时、几天,甚至几年,才能把改动合并。这对跨时区的分布式团队尤其棘手:你正想发布一个功能,但评审人还在地球另一端睡觉,只能干等。
等到同事终于醒来,留了几条评论、请求一些更改,你又得开始迭代,整个循环重新来过。
对评审者而言,代码评审同样花时间。想写出有价值的评审需要付出相当多的精力,尤其当 PR 体量很大时。一次彻底的评审意味着要通读变更、建立上下文、留下评论与建议,然后再等待作者回应。
代码评审让你变慢等待队友评审你的 PR 会让你放缓脚步,任何依赖这份代码的工作也都被阻塞。
在等待评审的时间里,你本可以做这些事情:
发布有影响力的新功能
处理你一直搁置的技术债杂务
去海边
堆叠让你免去等待堆叠(Stacking)把你的开发与评审并行化,因此你无需等前一个改动合并,才能在其之上继续构建。
想象你在做一个功能,既需要新增后端接口,又需要前端改动。你刚在一个新功能分支上写完创 ...
250ETS
250ETS-MASTER项目功能
读取设备的电压,报警等参数
将电流电压等参数写入plc,通过上传excel,实现自动电流的写入
柱状图图标数据可视化
实时数据报表
csv文件实时写入保存
将实时数据存入数据库,在界面中管理数据,根据日期查询数据
同步光伏报警数据到csv,每分钟记录光伏的所有数据
重要功能实现逻辑读取设备的电压等参数(异步处理)五个参数数组,从plc从获取modbus地址读入
不管是读取还是写入,避免连续请求,在收到上一个请求的回复后发送下一个请求,在读写过程中都使用
123456789101112 QModbusDataUnit unit = readRequestQueue.dequeue(); if (auto *reply = modbusDevice->sendReadRequest(unit,1)) { /*异步处理 在绝大多数情况下,Modbus请求是异步的,也就是说你发出请求后,设备还没来得及返回数据,这时isFinished()返回false。*/ if (!reply->i ...
OPERATING SYSTEM
Computer Operating System导论cs -> hardware(io cpu…) software(application) data
interface(接口)hard - hard example: USBsoft - hard 操作系统通过instructions(指令集) example: printf() API接口
Virtual Machine操作系统向用户提供一个容易理解和使用的计算机(虚拟的),用户对这个计算机操作将被操作系统转换成对计算机硬件的操作
计算机系统组成CPU RAM DISK IOdevice …..
中断当所有事情发生时,CPU收到一个中断信号CPU停下来正在做的事,转而执行中断处理程序,执行完毕会回到之前被中断的地方继续执行操作系统是一个以中断驱动的系统
存储系统cpu负责将指令从内存读入,所以程序必须在内存中才能运行内存以字节为存储单位,每个字节都有一个地址与之对应,通过load/store指令可以访问指定地址的内存数据load:将内存数据装入寄存器(Register)store:将 ...
设计模式
设计模式简单工厂uml类图
优点:1.使用工厂方法可以让用户的代码和某个特定类的子类的代码解耦。2.工厂方法使用户不必知道它所使用的对象是怎样被创建的,只需知道该对象有哪些方法即可。
缺点1.不符合开闭原则2.职责过重3.不易扩展
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869//创建接口public interface Shape { void draw();}public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}//接口实体类public class Squa ...
c plus plus
cpp知识补充01 - 侯捷 - C++面向对象高级开发(上下两部曲)
02 - 侯捷 - STL标准库和泛型编程
03 - 侯捷 - C++设计模式
04 - 侯捷 - C++新标准C++11&14
05 - 侯捷 - C++内存管理机制
06 - 侯捷 C++ Startup 揭密:C++ 程序的生前和死后
07、算法原理与实践(选修)
08、系统设计与实践(选修)
书籍:c++ primer effective modern c++ stl源码剖析
前言拿来当c++知识点补充库,顺序不是按照学习的顺序,是感觉哪个不会了,看书或视频补充知识点。
namespace定义命名空间12345678910111213//如果不引入 using namespace std;就需要我们显示引入,例如std::coutnamespace a{ int a = 10;}namespace b{int a = 20;namespace c{ int a = 30;}}使用命名空间12345678910111213void ...
GDB调试
GDB调试编译c程序gcc test.c -o test.out
生成debug info文件gcc -g test.c -o test.out
打断点b mainb path :行数rn 不进函数体单个执行s 进函数单个执行
看断点info b 看断点d 行数 删除断点c continue
bt 看函数调用栈
监视watch 变量
info r 看寄存器的值
查看代码或汇编layout src 查看代码layout asm 查看汇编
example1234567891011121314151617181920$ gdb 调试(gdb) break 10 //在第十行打断点Breakpoint 1 at 0x4005f4: file my_program.cpp, line 10. //第一个断点,在地址 0x4005f4处 file 后面显示的是打在哪个文件 哪一行(gdb) run Starting program: /path/to/my_program Breakpoint 1, main () at my_program.cpp:10 / ...
