整理一下做过的个人项目

整理一下除了工作项目外做过的个人项目,有的是解决问题的工具,有的是练手造轮子,有的是把灵机一动的idea实现出demo

AI apps

一个 vscode 插件,可以基于代码生成各种类型的图表、给代码添加注释,用于简化代码阅读。
还去复旦某实验室做了次分享 😁


  • 一个辅助内网运维的 Devops agent,在工作中使用,设计了一套数据脱敏机制

  • AI 个人助理 p6,基于gpt-3 api 的 LLM agent,相比于chatgpt等产品的优势是能帮我干活,例如帮我下载电影。

  • chatgpt api网关
    因为我没有信用卡、用不了chatgpt api,就逆向工程分析了5个 chatgpt的镜像站点(比如 poe.com 这种),把这些站点的api 封装成了一个网关,对外暴露出和openai 一样的接口。
    请求到达网关后,网关会做协议转换、然后把请求转发给不同的镜像站点 (而不是openai 的官方站点)。
    为了避免触发风控、被封号,网关内部设计了一些负载均衡、限流、熔断、爬虫策略来躲避风控、提高稳定性。
    最终达到的效果:可以免费、高速的使用chatgpt api :)

  • 【用AI给代码添加注释】
    在 jetbrains 系列的IDE(比如 IDEA,Goland,Clion) 里, 选中代码后,按一下快捷键就能自动给代码添加注释

在工作中解决痛点,一些提高效率的工具

  • protoc-gen-p6
    一个代码生成器,用于为 Layotto 项目自动生成 代码、文档、CI 配置。
    想解决的问题:每次想在 Layotto 项目里实现一个 API 时,需要写很多代码和文档,review 起来也很花时间,因此写了这个工具,开发者定义好 proto 后,敲一条命令就能生成所有代码、sdk、文档、CI 配置。让机器替人写代码,让程序员下岗
    更详细的说明见文档: 如何基于 proto 文件生成代码、文档
  • 在 CI 中自动测试文档,mdx 。写这个是因为开源项目的 quickstart 文档长时间不维护可能会过时,因此想在 CI 中自动测试文档。这个工具会自动运行 markdown 文档中的 shell 脚本,其实是基于另一个开源项目 mdsh 的封装。
    更详细的说明见文档: 使用工具自动测试 Quickstart 文档

  • 开源治理工程化,github-growth-hack 。工作负责做开源,要推动提高SOFAStack和MOSN社区的活跃度,涉及项目较多,靠人工管不过来。搞了个自动化治理工具,功能包括:

    • 观测: 生成项目活跃度数据周报/月报,一方面便于大盘展示、数据分析,一方面便于推动
    • 专家系统:类似于 k8s 的 Controller 模式,声明对每个项目的期望状态,由 Controller 监控状态,如果状态不符合预期,则提醒项目维护者,并给出一定的专家建议,建议完成xx事情,即可达到期望状态
  • "refined-alipay": 感觉公司一些内部系统不好用,于是做了一个 chrome 插件,安装后会自动魔改蚂蚁内部各种系统的 UI 界面,让界面变得更好用,提高生产力(例如屏蔽所有的蓝点、红点,例如小 UI 自动放大,等等)。没开源。
    类似于 https://github.com/refined-github/refined-github

  • 测试环境监控系统:呆过的第一家公司刚开始做微服务转型,但是分布式系统的基础设施不完善,测试环境天天出问题。为简化测试环境问题排查,我写了个监控工具(其实是扫描器),定时多线程扫描公司内各个微服务,发现系统挂掉则邮件报警(使用Java)

  • 边缘机房“故障自动诊断”:也是在呆过的第一家公司,项目会在客户的多个机房部署,机房之间通过专线网络通信,每个机房规模不大(可以理解成“边缘机房”)。边缘机房的稳定性不高(毕竟每个机房的硬件资源有限,不可能为每个微服务部署太多副本),为简化生产环境问题排查,我写了个故障自动诊断组件,获得老板认可后集成进发布包。

  • 简化报销发票: 加班打车/吃饭报销、到处找发票太麻烦,写过个电子发票收集工具,每次消费完了把发票发到指定邮箱后,工具会自动搜集指定邮箱下的发票、下载到电脑上的指定目录,一键批量打印。后来去了大厂发现内部有类似的服务,而且是和报销系统打通的。

  • chrome debug插件
    https://github.com/seeflood/console.watch
    刚工作的时候前后端都要写,感觉前端debug别人的代码/开源框架比较烦(很多前端代码写的和套娃一样,可读性不高),写过一个chrome插件,提供“当对象的属性被修改时,控制台进断点”。后来发现做爬虫、分析别人的网页的时候也能用上

  • 自动生成sql建表语句的工具(Vue+jQuery);
    拿vue当模板引擎做的,一个根据数据库表设计生成DDL建表语句的工具。
    当然现在不用了,Visual Paradigm真香

  • 自动生成前端埋点代码的工具(Vue+jQuery);
    写前端的时候还得负责加埋点代码,很恶心,于是搞了个生成埋点代码的工具。
    同样是拿vue当模板引擎,配下要拦截哪些ajax请求,能自动生成埋点代码(代码逻辑:拦截指定ajax请求、抠出来需要的字段、发到后端打日志)
    生成的埋点代码不是这里加一句代码、那里加一句代码,而是一个独立的文件,拦截页面所有ajax请求、过滤出感兴趣的事件、做埋点逻辑。
    代码放在了https://github.com/seeflood/easy-life/blob/master/src/main/js/recorder/template.html
    后来换公司、不需要自己埋点了,这个就没再维护。现在看来这个思路可以优化:不仅可以拦截ajax请求,还可以拦截感兴趣的dom事件

参与过的开源项目

  • Layotto
    这个其实是工作项目(公司开源项目),我作为开源Co-founder,也不要脸的帖在这了哈哈
  • SOFAStack维护者
  • Dapr member
  • MOSN contributor

自己造的一些轮子/玩具

  • PUA-RPC
    https://github.com/seeflood/PUA-RPC
    一个java的RPC框架,特点是具有PUA功能:每次RPC调用会打日志,日志中随机加入一条PUA语录以鼓励程序员,而如果出现了RPC调用失败/报错/性能问题等bad case,会在日志中加入批评程序员的话

  • 分布式定时任务调度系统
    毕业设计项目,使用Go语言实现的一个分布式定时任务调度系统,基于Etcd做存储,去中心化的调度(每台机器到了时间都去抢锁,谁抢到谁执行,没有中心化的调度节点),支持多种容错策略(at least once,at most once等)
    做的过程中学了一些分布式系统的理论才意识到分布式系统中的时钟是非常不可靠的东西(除非用原子钟),所以这种去中心化调度其实是有很多问题的,因此不看好同样架构的Elastic-Job(一个开源的分布式定时任务调度框架)

  • 前端mvvm框架
    学习vue的时候看了原理自己写了一个简易版的mvvm框架,时间太久代码找不到了……
    核心就是个数据双向绑定,dom变了改内存变量,内存变量变了改dom

  • javascript容器库
    https://github.com/seeflood/jContainer
    javascript容器库,包含常用容器及相关算法

  • Copy-Paste-Data-Structures
    https://github.com/seeflood/Copy-Paste-Data-Structures
    一个java和Go的高级数据结构库,设计目标是任何数据结构都能单独复制粘贴出来、单独使用,文件和文件之间没有任何互相依赖,以便在打online-judge比赛(比如leetcode周赛,google比赛)的时候能够直接粘贴使用,或者把某个数据结构粘贴到自己的工作项目中做魔改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容

  • Awesome GitHub Topic for Go Awesome Go golang-open-source...
    Liam_ml阅读 3,714评论 2 14
  • 做这个的初心是希望能巩固自己的基础知识,当然也希望能帮助更多的开发者,如发现答案不准确或者不完整的可前往 Gith...
    打不死的强丿阅读 37,971评论 5 123
  • youtube下载神器:https://github.com/rg3/youtube-dl 我擦咧 vim插件:h...
    smart_small阅读 8,782评论 2 47
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,520评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,562评论 0 11