0%

2026年工作方式最大的变的化是开始使用 AI Agent,在入职新公司前都是用 ChatGPT 网页端对话的方式来工作,因为对项目非常熟悉,工作都是针对函数级别的内容做修改,所以网页端聊天的方式足够了,后面切换到 Agent 方式,发现很挑战使用者使用 Agent 的水平,即便在大厂,AI Agent 我的观感是总体来说提效有限,该忙还是超级忙,进度把控、交付质量保障上可能还是要打个问号,然后用加班填补。

观察到一些研发对 Agent 的依赖导致似乎丧失了对工程的熟练度,和同事交流,同事表示以前大部分代码是手敲的,接到新需求或者处理问题时基于对项目的熟悉,做事是有掌控感的,当拿着大部分是自己或者其他人用 AI 生成的代码,也是在慢慢适应。

我的想法是,AI Agent 技术一定要去用。实际上,我已经在自己的项目中开始使用,并且拿出专门的时间来学习 Agent 工具,希望不断提高工作质量的上限,而不仅仅图一时的干活快。

本来是在看资料的,想着积累了足够的 Agent 知识再开干,后面觉得不行,用熟悉这件事会变得遥遥无期,索性依靠少量的设置、操作,就是那常用的 20% 基础功能,把 Agent 用起来了,挺好,没有陷入过度准备的坑里。

早年大学毕业时,从王小民老师那里拷贝了几门课程的代码、课件,后面时常拿出来看看。70、80 年代成长起来的实战派,没有类似谷歌编码规范作为参考,形成了自己的一套编程规范、工程习惯,真的在各种企业、科研课题中保持持续的产出,在我看来是相当牛逼的。前几年我工作过两家公司,每换工作都会将这些资料拷贝到工作机,有时间的时候拿出来欣赏一下,哈哈。一直想总结出这套代码的一些规范,这件事情一直没有做。

昨天开始用 Claude Code (CC)开始梳理这些代码,沉淀了一套独特编码规范+工程规范,编码规范后面同时转化为 .clang-format 文件,工程规范成了我的学习资料,CC 总结出一些工程技术,以前没注意到,现在可以借助 CC 消化,一些技术在那个年代和现在这个年代的所用的编程接口不太一样,但思想一样有借鉴意义,例如多线程这些。

现在不再想通过对话的方式用 CC,往往词不达意,有种走一步看一步的不踏实感,而是用规范来指导,像是其他工程师做的那样。用 CC 总结旧代码就是第一步。

不过,我依旧倾向于重度参与编码工作,只是跟 Agent 的分工不一样,当前重点在于 AI 编码前的规范工作。一边写规范,一边磨练使用 Agent 的熟练度,一边深化自己的技术。

写代码是一件很开心、很有成就感的事情,不是所有项目都想全部交给 AI 来做,不然少了很多乐趣,也会遇到本文一开始提到的问题。我会选择部分项目,例如非 C++ 项目由 AI 来尽可能多的把控工作内容,目前我还做不到,还在继续练。

此外,CC 除了写代码,还能做视频,我也用它生成了若干视频,以后做科普类的短视频,部分工作可以交给它了。

文档背景

一次技术沟通中,发现与我做不同项目的同行,在C++的机制和操作系统 API 上特别有心得,而这是我近两年的工作和学习中用不上,也没有深入学的内容,交流后对我有很大启发,很过瘾。

这些内容解释了很多原理,填补了我的认知空白,也间接指导了我后续的实践,非常开心有这样的交流,后面我拉了个微信群,只拉取了 C++ 开发在里面,把靠谱的 C++ 都拉进群。

阅读全文 »

1 选择要保留的文件

保留_config.yml, themes/, source/, scaffolds/,package.jsona,.gitignore 这些文件夹,其它可以删除。

阅读全文 »

1 一些教训

非必要不升级系统,导致很多经典软件不能用,最后重新安装系统解决这些问题的.

阅读全文 »

这个图片是经过概念梳理后做的信息提取说明图,但是理清了 H.264 的内部关系,并且对 H.264 的结构和网络传输的概念予以说明,H.264 的传输说明应该关注的是 RTP 等协议,这些都有专门的 RFC 文档和对应的开源库。

  1. 单例模式的目的是确保唯一实例,确切的说是为了在应用程序的进程空间中确保唯一实例,刚刚在视频处理器的使用中被这种设计小小震撼一下:

阅读全文 »

1 引言

之前写过 vim 的教程,还写过 emacs 使用教程,自己整理了一份 emacs.d 文件,每次装机了就拿出来。

这一次是配置共享文件,这个不仅可以用于虚拟机,也可以用于 Windows 系统与远程开发机同步文件,并且方便在本地使用一些编码工具。

阅读全文 »

环境配置

库编译

从官网下载的版本是 5.1.4 ,配合《lua设计与实现》在 Linux/Windows 编译,在 Windows 上编译的过程中

阅读全文 »

引言

背景

文章记录一些开发时候遇到的问题和解决方法。

参考资料

  1. Qt Assistant(安装 Qt 时候选择安装,用于文档查询)
阅读全文 »

1 引言

1.1 写作背景

我看的设计模式资料使用 C# 和 Java 实现,这两种语言不需要处理内存泄漏问题。后续发现按照资料仿写的 C++ 代码有内存泄漏的情况,于是尝试解决这个问题,对 C++ 有新的理解,故记录之。

阅读全文 »

引言

写作目的

记录 OpenGL 学习的环境准备工作,为了下一步学习扫清障碍。

阅读全文 »

在命令行中运行程序的过程,是命令行会对程序进行复制,然后创建一个进程运行这个程序。因此,程序的内存结构所涉及的操作系统术语应该是 Linux 内存管理

阅读全文 »

本文是对前段时间学习自然语言处理(NLP)的总结。本文先介绍自然语言处理的内容,及其基于统计学的处理方式,在这个过程,逐渐矩阵化数据,看到矩阵化即可以想到机器学习方法的引入,预见到深度学习技术广泛应用的必然性。本文结尾我提供两个自己学习过程中建立的仓库,一个是对学习内容的总结,另一个是个对话机器人。

阅读全文 »

最新:更新一些 GitHub 使用异常的故障排查

  1. 问题1: Connection reset by 20.205.243.166 port 22

​ 解决方法:C://User/ 中编辑 /.ssh/config 给文件加上以下内容后再,重启git bash。

1
2
3
Host github.com
User git
ProxyCommand connect -H 127.0.0.1:7890 %h %p

1 本地 repo

  • 设置姓名和邮箱

    git config --global user.name "xxxx"

    git config --global user.email "xxxx@yyy.zzz"

  • 创建并初始化本地空仓库

    git init <repo_name>

  • 查看提交的状态

    git status

  • 暂存区中添加更改

    git add <file_name>

  • 记录一行提交信息

    git commit -m "commit info"

  • 提交记录

    git log

  • 忽略特定格式文件格式

    touch .gitignore && vim .gitigonre

    *.out *.py

    原有创建的格式用 git rm —cached 忽略
    常用工程的 ignore文件

  • 回滚操作

    1
    2
    git reset --hard <commit ID>   # <commit ID> 有两种,一种很长,一种截取前一种的若干字符表示
    git push -f -u origin main # 好坑,参考资料写 master
  • 解决push冲突

    假设用户1修改了 xxx文件,并且 push 了,我这边再修改后 push 会提示拒绝,有冲突,查看冲突:

    git diff master origin/master

    建议将该文件备份,然后执行以下操作(备份,先拉取再合并:

1
2
3
4
5
git pull
vim xxx PS 对其进行更改
git add xxx
git commit "my work"
git push
  • GitHub 创建本地仓库缓存,在本地构建 GitHub 云端方法

    (1) 在机器 a 上执行以下语句,可在该机建立了一个暂存区。

git init --bare /home/hanxinle/xdisk.git

(2)在机器 b 执行

git clone hanxinle@xx.mm.yy.zz:/home/hanxinle/xdisk.git

则将 repo 拉取到本地,在本地创建文件等更改后,在本地可执行 add,commit,push 操作。

(3)其它机器执行

git clone hanxinle@xx.mm.yy.zz:/home/hanxinle/xdisk.git

则可以在得到与机器b一致的 repo。


2 远程 repo

  • 查看分支

    git branch

  • 创建分支

    git branch <branch_name

  • 切换到分支

    git checkout <branch_name>

  • 创建并且切换

    git checkout -b <branch_name>

  • 分支合并(位于 master )

    git merge <sub_branch_name>

    同步后可以删除这个子分支

    git branch -d <sub_branch_name>

  • 分支同步

    git push origin <loacl_branch_name> (将本地分支同步到服务器)

  • 分支删除与重命名

    git brach -D/-d PS 删除 see git -h

    远端分支重命名(创建本地分支—>同步到远端—>删除远端同名分支—>原本地分支重命名—>推送到远端)

    git checkout -b <local_branch>

    git push origin <local_branch>

    git push --delete origin <local_name>

    git commit -m <local_name> <new_branch_name>

    git push origin <new_branch_name>

  • tag 管理

    网页端 release 中管理,和 commit 的哈希值相关。


3 免密操作

执行命令 ssh-keygen,一路回车,在 .ssh 文件夹中, id_rsa 为私有, id_rsa.pub 为公有,在 Github 中点击右上角自己的头像,选择 setting ,在 ssh 相关设置中,点击 NEW SSH KEY ,将 id_rsa.pub 的内容复制进来,此时 push 还是需要用户名密码,有两种方式可以免输入,一种是编辑.git/config 文件,将 url=https:xxxxx 更改,它的值在网页端打开 github repo 的时候,选择 clone or download 按钮,会有 use ssh 一项,点击这一项,复制 url 链接到.git/config 文件替换 url= 这一项.

另一种方式是在 clone 命令时,不要通过 https 命令操作,直接通过上面这个 ssh 的 url 方式操作.


4 fork 后用 upstream 同步原始 repo 最新情况

  • 首先 git clone 到本地

  • 查看远端分支

    git remote -v

  • 添加upstream分支

    git remote add upstream git@xxxx.git

  • 将upstream版本拉到本地

    git fetch upstream

  • 再合并upstream master

    git merge upstream/master

  • 最后push到远端

    git push origin master


5 其它 repo 选项

  • Issue

    bug提交

  • Projects

    项目进度管理

  • Wiki

    项目的介绍,可以制作网页,补充其它必要的文档,背景

  • Gist

    代码\文档的片段

引言

文章背景

对于Windows程序设计抓住主线进行总结,包括 Win32 和少量MFC和Qt的内容。

参考资料

阅读全文 »