WWW.YOUINFO.SITE
标签聚合 golang

/tag/golang

v2ex · 2026-06-10 08:06:02+08:00 · tech

核心要求(精通) Golang Gin 或 Go-Zero 框架 PostgreSQL Redis (缓存、限流、状态管理) WebSocket (实时通信、低延迟,实时最高 500 同时在线) REST API 设计 JWT/Token 认证机制 安全设计(权限控制、防越权、防刷接口、接口安全、数据保护等) 具备独立系统设计能力(模块拆分、服务解耦、状态流设计) 网页防爬虫 熟练使用 AI ,减少开发周期 前端要求(熟悉) Vue3 TypeScript Vite WebSocket 前端通信 Pinia/状态管理 Element Plus 或类似后台框架 部署要求(熟悉) Docker Linux 服务器部署 Nginx CI/CD 基础流程 最好有过的其中的经验 SaaS 系统开发经验 私有化部署系统经验 IM/在线客服/实时监控系统经验 SDK 或平台型产品开发经验 低代码平台开发经验 可扩展系统架构设计经验 可视化编辑器开发经验 拖拽搭建系统开发经验 Tauri 桌面应用开发经验 对<实践论><矛盾论>有较深理解 希望你: 人品好,有原则,有责任心,合作精神 可远程合作,但要求全职 能力过硬,能独立负责开发,维护,效率高 沟通及时,沟通理解能力强 身体健康,少/不喝酒 请你提供: 个人情况 个人项目案例 项目和股权简介 项目正在运营,现产品技术弱水平不够,急需一款高性能的产品垄断市场。 有初代产品(低质量)验证市场和盈利(非正式推广)的 5 个月营收流水 7 位数明细。 有三年行业经验总结和最全面的行业旗舰产品完整设计方案。 现有客户展示,不是构思项目阶段。 合作 50/50 股份,你负责全部技术问题,我负责推广营销变现。 项目年盈利高于 8 位数(保守) 开发周期,预计 2-4 个月(含主要 bug 修复,主性能优化),主要功能完善后即可开始投放。 投放即有老客户付费内测,在主体性能稳定后正式推广,周期大概 1 个月后有稳定收入,且逐月高递增,3-5 月后趋于稳定状态,半年后几乎垄断市场。 项目寿命预计 5 年内稳定 联系方式: 请发邮件到: [email protected] 大概介绍一些您的情况和联系方式。以及对<实践论><矛盾论>的理解。

v2ex · 2026-06-10 08:06:02+08:00 · tech

核心要求(精通) Golang Gin 或 Go-Zero 框架 PostgreSQL Redis (缓存、限流、状态管理) WebSocket (实时通信、低延迟,实时最高 500 同时在线) REST API 设计 JWT/Token 认证机制 安全设计(权限控制、防越权、防刷接口、接口安全、数据保护等) 具备独立系统设计能力(模块拆分、服务解耦、状态流设计) 网页防爬虫 熟练使用 AI ,减少开发周期 前端要求(熟悉) Vue3 TypeScript Vite WebSocket 前端通信 Pinia/状态管理 Element Plus 或类似后台框架 部署要求(熟悉) Docker Linux 服务器部署 Nginx CI/CD 基础流程 最好有过的其中的经验 SaaS 系统开发经验 私有化部署系统经验 IM/在线客服/实时监控系统经验 SDK 或平台型产品开发经验 低代码平台开发经验 可扩展系统架构设计经验 可视化编辑器开发经验 拖拽搭建系统开发经验 Tauri 桌面应用开发经验 对<实践论><矛盾论>有较深理解 希望你: 人品好,有原则,有责任心,合作精神 可远程合作,但要求全职 能力过硬,能独立负责开发,维护,效率高 沟通及时,沟通理解能力强 身体健康,少/不喝酒 请你提供: 个人情况 个人项目案例 项目和股权简介 项目正在运营,现产品技术弱水平不够,急需一款高性能的产品垄断市场。 有初代产品(低质量)验证市场和盈利(非正式推广)的 5 个月营收流水 7 位数明细。 有三年行业经验总结和最全面的行业旗舰产品完整设计方案。 现有客户展示,不是构思项目阶段。 合作 50/50 股份,你负责全部技术问题,我负责推广营销变现。 项目年盈利高于 8 位数(保守) 开发周期,预计 2-4 个月(含主要 bug 修复,主性能优化),主要功能完善后即可开始投放。 投放即有老客户付费内测,在主体性能稳定后正式推广,周期大概 1 个月后有稳定收入,且逐月高递增,3-5 月后趋于稳定状态,半年后几乎垄断市场。 项目寿命预计 5 年内稳定 联系方式: 请发邮件到: [email protected] 大概介绍一些您的情况和联系方式。以及对<实践论><矛盾论>的理解。

v2ex · 2026-06-09 23:43:27+08:00 · tech

核心要求(精通) Golang Gin 或 Go-Zero 框架 PostgreSQL Redis (缓存、限流、状态管理) WebSocket (实时通信、低延迟,实时最高 500 同时在线) REST API 设计 JWT/Token 认证机制 安全设计(权限控制、防越权、防刷接口、接口安全、数据保护等) 具备独立系统设计能力(模块拆分、服务解耦、状态流设计) 网页防爬虫 熟练使用 AI ,减少开发周期 前端要求(熟悉) Vue3 TypeScript Vite WebSocket 前端通信 Pinia/状态管理 Element Plus 或类似后台框架 部署要求(熟悉) Docker Linux 服务器部署 Nginx CI/CD 基础流程 最好有过的其中的经验 SaaS 系统开发经验 私有化部署系统经验 IM/在线客服/实时监控系统经验 SDK 或平台型产品开发经验 低代码平台开发经验 可扩展系统架构设计经验 可视化编辑器开发经验 拖拽搭建系统开发经验 Tauri 桌面应用开发经验 对<实践论><矛盾论>有较深理解 希望你: 人品好,有原则,有责任心,合作精神 可远程合作,但要求全职 能力过硬,能独立负责开发,维护,效率高 沟通及时,沟通理解能力强 身体健康,少/不喝酒 请你提供: 个人情况 个人项目案例 项目和股权简介 项目正在运营,现产品技术弱水平不够,急需一款高性能的产品垄断市场。 有初代产品(低质量)验证市场和盈利(非正式推广)的 5 个月营收流水 7 位数明细。 有三年行业经验总结和最全面的行业旗舰产品完整设计方案。 现有客户展示,不是构思项目阶段。 合作 50/50 股份,你负责全部技术问题,我负责推广营销变现。 项目年盈利高于 8 位数(保守) 开发周期,预计 2-4 个月(含主要 bug 修复,主性能优化),主要功能完善后即可开始投放。 投放即有老客户付费内测,在主体性能稳定后正式推广,周期大概 1 个月后有稳定收入,且逐月高递增,3-5 月后趋于稳定状态,半年后几乎垄断市场。 项目寿命预计 5 年内稳定 联系方式: 请发邮件到: [email protected] 大概介绍一些您的情况和联系方式。以及对<实践论><矛盾论>的理解。

LinuxDo 最新话题 · 2026-06-01 12:19:04+08:00 · tech

唉,鼠鼠找不到工作捏!今年1-3月在某大型对日外包实习(golang开发),纱x 女 mentor,想要的东西从来不说,让我去猜,猜不对就压力我,还让我主动带领团队,我一个实习仔我带领你M,天天压力我,pua我加班,动不动就要开除,遂被开除。到了4月,又到一个很小的对日外包,搞什么Cobol转java,干了十几天,实在搞不明白cobol,上古语言,代码里的注释都是97,96年的,比我年龄还大,难搞,遂离。 6 个帖子 - 6 位参与者 阅读完整话题

v2ex · 2026-05-27 21:36:34+08:00 · tech

职位信息 岗位:Golang 后端工程师 类型:全职/兼职 *工作地点:远程或深圳线下 薪资:(全职)固定薪资+ 期权 (兼职)按工时结算 团队规模:15 人创业团队,产品/技术/市场/运营齐备 主要工作 参与后端架构设计与核心模块开发,保证 API 高可用、高并发。 负责数据模型、MySQL / Redis / MongoDB 优化和维护。 搭建并维护基础 AI 推理服务(模型部署、监控、告警)。 实现多 Agent 协同与任务调度,确保业务流程顺畅。 和产品、前端、运营配合,按周迭代需求。 我们希望你具备 3–5 年 Go 后端开发经验,基础扎实,熟悉 Gin / GORM ,理解并发编程和常见性能问题。 熟悉 MySQL 、Redis 、PostgreSQL 等常用存储,能完成数据建模、性能优化和问题排查。 有后端系统设计经验,理解微服务、幂等、分布式锁、消息队列等常见机制。 熟悉 Docker / K8s ,了解服务部署、监控告警和基本运维。 代码质量意识好,注重可读性、可测试性和长期维护。 沟通顺畅,自驱力强,能适应创业团队的节奏,推动事情落地。 加分项 有高并发、大流量系统经验,能讲清架构演进和关键技术决策。 对数据库、缓存、消息队列或存储中间件有深入理解。 有开源贡献,或参与过基础组件、中间件相关开发。 了解 Agent / RAG / MCP / LangChain 等 AI 工具链,有实际落地经验。 有跨境电商、SaaS 产品经验。 懂一些前端协作更好。 简历投递邮箱: [email protected] weixin:godhaveajoke

V2EX - 技术 · 2026-05-19 16:57:22+08:00 · tech

目前,tkrok 第 7 代,实现代码行业达到了 20+ 万行,即将达到个人维护的边界。为方便后续个人远程开发者可以方便地接入项目维护工作,特此将第 6 代实现重构升级。分享给社区,为 golang 微服务兴旺,肋力。也方便后续开发者接手了解生产级的代码实现,为自学的开发者指南。 接口契约优先 · 实现细节隐藏 · 协作零泄露 🎯 核心目标拆解 ✅ 服务提供方:只暴露 IDL + 生成的 Client/Handler 接口,隐藏业务实现 ✅ 服务消费方:仅依赖 RPC 客户端代码,无需拉取服务端源码 ✅ 协作开发:通过契约版本协商变更,避免「改接口改到崩溃」 ✅ 安全管控:私有仓库 + 权限隔离 + 依赖审计,防止源码泄露 💡 本质: 「接口定义仓库」与「业务实现仓库」物理分离 + 自动化代码生成 🏗️ 整体架构设计(参考字节/腾讯实践) 📦 公司 Git 组织 ├── 🔓 idl-registry/ # [公开] 接口定义仓库(只含 IDL + 生成代码) │ ├── user-service/ │ │ ├── user.thrift # 服务契约(唯一真理源) │ │ ├── kitex_gen/ # 自动生成的 Client/Handler/Model │ │ ├── go.mod # module company.com/idl/user-service │ │ └── README.md # 接口变更规范 + 版本日志 │ └── order-service/ │ └── ... │ ├── 🔐 user-service-impl/ # [私有] 服务端实现仓库(仅内部可见) │ ├── handler/ # 业务逻辑实现(实现 idl 定义的 Handler 接口) │ ├── main.go # 服务启动入口 │ ├── go.mod │ │ require company.com/idl/user-service v1.2.0 # 依赖接口仓库 │ └── .gitignore # 禁止提交 handler 业务代码到 idl 仓库 │ ├── 🔐 order-service-impl/ # [私有] 其他服务实现 │ └── ... │ └── 🔐 internal-tools/ # [私有] 代码生成/发布工具链 ├── kitex-gen-wrapper.sh # 封装 kitex 生成命令 └── publish-idl.sh # 自动打标签 + 推送到私有 GOPROXY 🔑 关键原则: idl-registry : 只含接口契约 + 生成代码 ,权限开放给所有开发者 *-impl : 仅含业务实现 ,权限严格管控,禁止外部访问 消费方 go.mod 只依赖 company.com/idl/* , 永远不依赖 *-impl

v2ex · 2026-04-29 17:36:30+08:00 · tech

关于公司 CWILL (畅销家)是一家深耕国际电商生态的 B2B SaaS 平台公司,总部在深圳。公司有 10+ 款 SaaS 产品,覆盖跨境电商从供应链、店铺建设、营销获客、物流追踪到售后管理的全链路,旗下包括 ParcelWILL 、TrustWILL 、ChatWILL 、SendWILL 、SEOWILL 等。 服务客户:Shopify 、WooCommerce 、Amazon 、eBay 、SHEIN 、DJI 、Banggood 、LUX SKIN 、BITTERLIEBE 团队规模:200+ 成员遍布全球,15% 有海外留学背景,20% 硕士及以上 核心成员来自 PayPal 、华为、VIVO 、Airbnb ,以及北大、中南、哥伦比亚、墨尔本大学 公司没有"总",只有哥和老师; 90 后为主,扁平、直接,好想法能被快速落地 公司官网: https://www.cwill.com (请注意:下文所有联系方式均为 我个人 的,与官网无关) 在招岗位(共 5 个,深圳) 内推联系方式见文末。下文每个岗位列出最关键的信息,更完整的 JD (含加分项)也一并附上。 1. 中高级产品经理(海外产品) · 15–25K · 急招 B 端 SaaS · 3 年以上 · 不是需求搬运工,是商业问题的终结者 岗位职责 深耕 SaaS / Tracking 场景,挖掘跨境电商 B 端客户痛点,设计有竞争壁垒的产品方案 以"数据 + 用户洞察"双驱动定义 Roadmap ,搭建埋点与数据看板,围绕 GMV 、履约时效、留存等核心指标迭代 主导 A/B 测试,用实验结果代替主观判断;串联研发、Marketing 、客户成功推动落地 资源有限时合理排优先级,果断否决"伪需求",保持产品聚焦 持续监控海外电商政策与竞品动态,预判未来 6–12 个月机会,定期输出趋势快报 任职要求 3 年以上产品经验,有 B 端产品或 SaaS 平台经验者优先 熟练使用 Axure / Sketch ,具备基础 SQL ,熟悉 Google Analytics 等数据工具 PRD 文档清晰规范,逻辑与共情并重; MVP 思维,拒绝功能堆砌 加分项 :英语可作为工作语言 · 海外团队对接经验 · 熟悉跨境电商业务链路 2. 高级运维工程师(海外云) · 25–35K AWS / GCP · Kubernetes · 多云架构 · 6 年以上 · 支撑全球 SaaS 基础设施 岗位职责 负责 AWS (主)及 GCP 、阿里云日常资源管理、实例维护与成本优化 Kubernetes 集群管理 + CI/CD 流水线,保障应用高效稳定交付 参与 OpenSearch / Prometheus / Grafana / ELK / Zabbix 监控与日志平台建设 MySQL 、PostgreSQL 、Redis 、MongoDB 数据库,以及 Kafka 、RabbitMQ 、Nginx 等中间件运维 Shell / Python / Go 脚本提升运维效率,对工具二次开发 配合推进 GDPR 、SOC2 等合规整改,执行权限最小化与安全审计 任职要求 大专及以上,计算机相关专业,6 年以上互联网 / SaaS 运维经验 熟悉 AWS 或 GCP 常用服务( EC2 、S3 、RDS 、VPC 等),掌握 Docker 与 K8s 日常管理 熟悉 Prometheus 、Grafana 、ELK 、Zabbix 部署与维护 MySQL / Redis 等数据库日常运维与优化,Linux 管理与故障排查熟练 Python / Go / Shell 脚本编写能力,Ansible 、Terraform 、Jenkins 、ArgoCD 至少熟悉一项 加分项 :AWS + GCP 多云混合部署 · 云原生( ServiceMesh / Helm / ArgoCD ) · 合规整改 / 安全审计 · 国际化 SaaS 运维 3. Golang 中高级工程师 · 18–30K 后端开发 · 微服务 · 真实大规模 SaaS 流量场景 · 3 年以上 Go 经验 岗位职责 负责核心业务系统模块的架构设计与开发,保障性能、可用性与可扩展性 主导技术选型与项目重构,推动代码分层规范化、数据结构化 编写高质量技术文档与 API 文档 参与高并发、高性能场景的技术攻坚,主导核心架构设计 指导初中级开发人员,组织技术分享与代码评审 任职要求 计算机相关专业,专科及以上; 5 年以上开发经验,至少 3 年 Golang 熟练 Go 及常见组件( gin 、viper 、cobra 、zap 、testify 、nacos 等) 熟悉 MySQL 、Redis 分布式缓存设计,以及 Kafka / RocketMQ / RabbitMQ gorm / xorm 、微服务架构与 gRPC ( go-micro / kratos / kitex ) 熟悉 Linux ,了解 Docker 及 DevOps CI/CD ,沟通与抽象能力良好 加分项 :0 → 1 Go 微服务或大型系统重构 · Jaeger / SkyWalking 链路追踪 · Prometheus / Grafana 监控体系 · AI 项目落地 / LangChain / LangGraph 4. AI 解决方案 / 产品经理(效率效能) · 15–30K AI 产品 · 企业效率 · BA + PM + PMO 三合一 · 4–6 年经验 面向三类背景人才开放:流程体系型( SA / BA / PMO )、企业效率工具(协同办公 / 工作流 / 低代码平台)、研发效能产品。 岗位职责 规划并落地公司 AI 应用产品与组织效率提升体系,用 AI 改造研发、运营、客服、内容等核心流程 打造企业级 AI 工作助手( AI Copilot )和自动化工作流体系 统筹公司办公协同系统整体规划(工具选型、使用规范、推广与优化) 调研各业务团队效率瓶颈,识别 AI 提效场景,输出系统化解决方案 设计 AI Agent 工作流,建立效能度量(使用率 / 自动化比例 / ROI ) 任职要求 本科及以上,4–6 年 PM 经验; AI 应用产品 / 企业效率工具 / 内部工具平台经验者优先 能快速理解复杂业务流程,识别 AI 应用机会 熟悉 Prompt Engineering 、AI Copilot 、RAG 、AI Agent 、LLM 应用设计等典型落地场景 能推动 AI 产品从 0 到 1 落地,跨部门沟通与项目推进能力强 加分项 :AI 应用产品成功落地案例 · 客服 / 营销 / 内容 AI 经验 · 研发效能 / 企业效率平台经验 5. 英文 SEO 运营 · 15–22K 海外 SEO · 英语优先 · 3 年以上 · 全球英语用户 岗位职责 海外网站 SEO 策略制定与执行,目标:自然流量、关键词排名、页面转化 高质量英文 SEO 内容策划、撰写与优化(文案、博客、产品描述、落地页) 关键词深度挖掘 + 目标用户画像,制定精准内容策略并持续迭代 Google Analytics 、Search Console 、Ahrefs 、Similarweb 等工具监控分析 网站结构优化、内链布局、页面速度、异常页面处理 结合 EDM 、社交媒体、YouTube 等多渠道协同; AI 工具提升内容效率;外链建设 任职要求 本科及以上,英语专业优先;书面与口语优秀(雅思 7+ 或同等水平更佳) 3 年以上海外 SEO 内容运营经验 熟练 Google Analytics 、Search Console 、Ahrefs 、Similarweb 、SEMrush 优秀的英文内容策划与原创写作能力 良好的数据分析能力与跨部门协作能力 加分项 :AI 内容生成工具实战 · 多渠道内容矩阵运营 · 跨境电商行业背景 工作信息 工作地点 :深圳 · 华为地铁站 · 有所为大厦 工作时间 :8:50 – 18:30 (灵活打卡 30 分钟) 福利待遇 七险一金 + 重疾险 + 责任险(额外商业险) 月薪 + 项目奖金 + 年终奖 + 年底分红,合伙人通道与股权激励 学习成长:购书全额报销、外部培训报销、定期技术分享与读书会 每周运动:周二篮球、周四羽毛球、公司跑团 餐饮:每月部门聚餐经费、不定期下午茶 & 水果 假期关怀:带薪年假、女生每月专属半天假、年度体检、"畅基金"应急援助 节日福利:妇女节、程序员节彩蛋、端午 / 中秋、圣诞、六一儿童节、不定期团建 团队画像 200+ 成员,分布在全球各地 20% 硕士及以上学历,15% 有海外留学背景 核心成员来自 PayPal 、华为、VIVO 、Airbnb 学校背景:北大、中南、哥伦比亚、墨尔本大学等 90 后为主体,扁平化,没有"总",只有哥和老师 联系内推人 📧 简历投递邮箱 ( Base64 ): bGlhbmd6aGltaW5nem1AZ21haWwuY29t 邮件主题建议 : [内推] 岗位名 - 姓名 (例: [内推] Golang 中高级工程师 - 张三 ) 邮件请包含 : 姓名 + 联系电话 简历附件,或在线简历链接( Boss 直聘 / 领英 / 个人网站均可) 简短自我介绍(可选) 我收到后会先做基础匹配,然后帮你递到对应部门负责人,正常会在 3 个工作日内给反馈。 📄 完整 JD 与公司介绍(带详细页面): https://cwill-jd.vercel.app/

v2ex.com · 2026-04-28 14:22:31+08:00 · tech

AI 平台开发工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=4feb16bb-99e4-4d56-822b-e2803bd155b1&language=zh_CN 工作职责 1.负责 AI 应用开发范式的设计以及 AI 基础设施的建设,支持公司 AI 应用的快速落地; 2.与产品和算法团队紧密协作,把业务的 AI 需求转化为技术解决方案,并提供对应的系统底座工具; 3.确保 AI 应用系统架构稳定且高效地运行,助力业务优化性能、增强系统稳定性; 4.持续追踪前沿技术趋势,关注并探索 AI 新应用,适时引入新技术与新方法,不断提升产品在技术和工程架构方面的先进性。 任职资格 1 、本科及以上学历,计算机相关专业优先,具有 5 年及以上相关工作经验; 2 、熟练掌握 Python 、Go 等编程语言,具备扎实的数据结构与软件工程基础,以及较强的系统架构设计能力; 3 、具备企业级人工智能平台或应用研发经验,有 Dify 、OpenClaw 等平台或相关产品实践经验者优先; 4 、具备较强的产品意识,拥有良好的数据分析能力、逻辑思维能力及沟通表达能力; 5 、具备良好的项目推进能力与团队协作精神,能够熟练阅读和理解英文技术文档。 ================================================================== 资深前端开发工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=e3024501-38c4-4341-8384-15e8e93c00ca&language=zh_CN 工作职责 1 、负责集团核心产品(涵盖研运平台、推广系统、企业信创平台、AIGC 应用等)的前端整体技术方案设计与落地,包括需求评审、技术选型、架构设计及核心功能开发; 2 、主导核心系统的前端架构演进与性能优化,保障系统在复杂业务场景下的高可用性、稳定性及良好的用户体验,能够快速定位并解决线上问题; 3 、推动前端工程化与体系化建设,包括但不限于组件库、设计系统、构建工具链、微前端架构等基础设施的建设与持续演进; 4 、深度参与业务建设,从技术视角驱动业务效率提升与体验优化,能够抽象通用能力,提升多业务线复用与协同效率; 5 、跟踪前端及 AI 相关技术发展趋势,开展技术预研与落地实践,推动 AI 在前端研发流程中的应用(如代码生成、自动化测试、智能评审等),提升团队整体研发效能; 6 、参与团队技术氛围建设,通过技术分享、最佳实践沉淀、Code Review 等方式,提升团队整体技术水平。 任职资格 1 、本科及以上学历,计算机或相关专业,3 年及以上前端开发经验;具备全栈开发经验(如 Node.js )或后台开发经验者优先 ========================================================= 资深测试开发工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=a00037cd-b06a-44c2-b0d3-b92050c44322&language=zh_CN 工作职责 1. 负责 AI 类产品(包括大模型应用、智能对话系统、AIGC 工具等)的功能、性能、可靠性、数据质量及 AI 特有维度(如输出一致性、幻觉识别、提示词鲁棒性、偏见与公平性)的测试策略制定与执行; 2. 设计并开发面向 AI 场景的自动化测试框架与工具链,覆盖模型 API 接口测试、批量推理验证、评测数据集自动化比对、反馈闭环验证等关键环节; 3. 构建和维护 AI 测试数据集、评测基准及效果度量体系,协同算法团队开展模型迭代的质量评估与回归验证; 4. 参与 AI 产品需求与技术方案评审,识别 AI 特性相关质量风险(如上下文依赖异常、长程推理失效、多模态输入兼容性等),推动可测性设计落地; 5. 持续优化测试效能,推动 AI 测试能力嵌入 CI/CD 流程,实现模型版本、服务版本、前端应用的端到端质量门禁。 任职资格 1. 本科及以上学历,计算机科学、人工智能、软件工程或相关专业,具备 4 年以上软件测试经验,其中至少 2 年聚焦 AI/机器学习类产品的测试或测试开发实践; 2. 熟练掌握 Python 编程,熟悉主流测试框架(如 Pytest 、Behave )及 HTTP/gRPC 接口测试工具;具备构建轻量级自动化测试平台或插件的实际经验; 3. 了解常见 AI 技术栈,包括但不限于大语言模型( LLM )基础原理、Prompt Engineering 、RAG 架构、模型服务化( vLLM 、Triton )及典型 AI 开发框架( Hugging Face 、LangChain 等),能理解模型输入输出逻辑并设计有效验证方法; =============================================================== 高级 golang 后端开发工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=d489a903-1798-4d59-b860-c3155656555d&language=zh_CN 工作职责 1. 主导平台增长业务系统的开发与优化,包括但不限于:私域运营管理中台、用户增长与活动系统、触达与用户召回平台; 2. 负责系统架构设计、性能优化和技术升级,确保系统高可用性、可扩展性和安全性。 任职资格 1. 5 年及以上服务端开发经验,精通 Golang 语言特性及生态系统; 2. 深入理解分布式系统架构,熟练掌握 MySQL 、Redis 、Kafka 等中间件的应用与调优; 3. 熟悉 Kubernetes 集群运行原理,具备微服务架构设计与治理经验; 4. 个人素质要求: 对技术有浓厚兴趣,具有持续学习精神; 良好的问题分析与解决能力; 优秀的团队协作与沟通能力。 5. 加分项: 有支付系统或用户增长平台开发经验; 有电商或游戏平台核心系统开发经验; 有带领大型项目经验(项目负责人职责)。 =============================================================== 资深 golang 开发工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=2753f97c-24b7-4b7e-b8fc-dc49d2454f9b&language=zh_CN 工作职责 1 、负责核心业务广告投放产品的迭代升级和持续优化; 2 、参与需求分析、技术方案设计、代码编写、单元测试及系统上线全流程,保障交付质量与进度; 3 、配合产品、前端、测试等团队协作,推动项目高质量落地。 任职资格 1 、3 年以上后端开发经验,编程语言不限 (如果具备 GO 、PHP 经验最佳) ; 2 、熟悉 MySQL 、Redis 、Kafka 等常用中间件,具备数据库设计、SQL 优化及缓存策略应用能力; 3 、对自我认知清晰、有良好自驱力以及解决问题能力,能够相互成就和团队共同进步走得更远; 4 、对互联网广告业务有深刻理解或有 AI 赋能实践案例的优先。 ============================================================= AI 算法工程师 链接: https://neitui.italent.cn/37wan/sharejobs/detail?shareId=7c45eb95-1cd6-44ab-99cb-b788447d3423&language=zh_CN 工作职责 1. 负责 AI 算法在业务的落地和优化,包括但不限于内容生产、智能助手、本地化翻译、chatBI 、代码生成等; 2. 探索大模型 Post-Training 、Inference 、RAG 、Agent 等相关技术的业务落地,优化算法的效果和产品体验; 3. 研究和优化图文音视频等多模态生成模型,解决目前 AI 在生成质量、多样性、可控性等方面的问题,提升生产效能。 任职资格 1.本科及以上学历,熟练掌握深度学习、机器学习、自然语言处理、强化学习、生成模型等至少一个领域的基础知识; 2.熟悉 TensorFlow 或 PyTorch 深度学习框架,精通 C/C++、Java 、Python 等至少一门编程语言,具备一定的工程实现能力; 3.具备较强的学习能力、良好的数据敏感性、清晰的逻辑思维能力和出色的沟通表达能力; 4.在相关领域国际顶级会议或期刊发表论文,或参加相关数据挖掘/机器学习领域竞赛获奖者优先; 5.在大模型领域或者强化学习领域,有主导过大影响力项目者优先。

v2ex.com · 2026-04-23 11:08:22+08:00 · tech

SonicLens:一套面向个人音乐资产的本地优先音乐系统 很多开发者都做过“记录自己在听什么”的小工具,但真正把这件事做成一个可以长期运行、可持续扩展、还能支撑多端体验的完整工程,其实并不容易。 我做 SonicLens ,并不是为了再造一个播放器,也不是为了做一个简单的 scrobble 脚本,而是想回答一个更具体的问题: 如果一个人多年分散在 Apple Music 、Roon 、Audirvana 、 Last.fm 里的听歌行为,最终都要沉淀为属于自己的音乐资产,那么这套系统应该长什么样? 项目: https://github.com/vincentchyu/sonic-lens.git 这就是 SonicLens 的起点。 它的目标很明确: 统一接入多个播放来源,持续监听和记录播放行为 把听歌历史沉淀到本地可控的数据模型中,而不是依赖单一平台 在此基础上构建统计、资料库、歌词、AI 解析、收藏同步和多端浏览能力 让这些能力不只是“能跑”,而是能成为一个长期维护的产品 如果用一句话概括这个项目,我会这样描述: SonicLens 是一套以“个人音乐资产”为中心构建的本地优先音乐基础设施,它把听歌记录、资料整理、AI 洞察和多端消费体验连接成一个完整闭环。 一、这个项目真正想解决的,不是“听了什么”,而是“如何拥有自己的音乐历史” 大多数音乐平台都能告诉你“最近听了什么”,但它们很少真正为用户提供一套稳定、可迁移、可扩展的数据资产模型。 一旦平台策略变化、账号迁移、播放器更换,过去的听歌行为往往就会被切碎,最终只剩一堆零散记录。对我来说,这件事最大的问题不是统计缺失,而是: 你的听歌历史没有真正属于你。 SonicLens 的设计从一开始就不是围绕某个单独播放器展开,而是围绕“个人音乐资产沉淀”展开。也正因为如此,它在架构上天然不是一个脚本型项目,而更像一个围绕领域模型搭建的系统: 后端长期运行,负责监听、同步、聚合、广播和任务调度 Web 管理端负责运维入口、数据看板和后台治理 soniclens-bridge 负责 macOS 、iPadOS 、iPhone 三端原生消费体验 AI 解析、歌词、收藏状态、资料库同步都围绕统一的数据事实源工作 这意味着它的工程重点不在“把接口调通”,而在于让多个异步链路、多个数据来源和多个客户端之间保持一致性。 二、从工程视角看,SonicLens 其实是四层系统 从当前仓库实现看,SonicLens 可以拆成四个核心层次。 1. 持续运行的 Go 后端 后端入口在 main.go 。应用启动后会初始化配置、日志、OpenTelemetry 、Redis 、数据库、MusicBrainz 、对象存储,然后启动: HTTP API 服务 WebSocket 实时推送 播放器监听链路 Dashboard 统计调度 D1 云侧镜像同步 播放记录 replay 补偿任务 Bonjour 局域网发现广播 这类启动方式的重点,是把系统当作一个长期运行的服务,而不是一组临时执行的命令。 2. 明确分层的业务结构 这个项目后端不是把所有逻辑塞进 handler ,而是做了比较清晰的职责分层: api/ 负责 Gin 路由、参数绑定、缓存中间件和响应 internal/logic/ 负责业务编排,例如资料库、音眸、流派、MusicBrainz 、封面等服务 internal/model/ 负责所有数据库 CRUD 和事务入口 internal/scrobbler/ 负责播放器监听与当前播放状态处理 internal/sync/ 负责后台同步、D1 镜像和调度任务 core/ 负责 Redis 、Telemetry 、对象存储、AI 、歌词、WebSocket 、Bonjour 等基础能力 这种结构的价值不是“看起来规范”,而是当项目开始变复杂之后,数据访问边界、事务边界和业务边界依然可控。 GEMINI.md 里对这一点有非常明确的约束: 数据库 CRUD 必须收口在 internal/model/ ,Logic 层只负责编排,不允许把原始 SQL 和 GORM 细节散落到业务代码里。 这是一个非常重要的工程判断,因为它直接决定了系统后期是否还能继续演化。 3. 产品化的原生三端客户端 很多个人项目做到后端和网页就结束了,但 SonicLens 还继续往前走了一层:我为它单独做了一套原生 Bridge 客户端。 soniclens-bridge 目前包含四个 target: SoniclensBridgeMac SoniclensBridgePad SoniclensBridgePhone SoniclensActivities 也就是说,这不是一个“顺带做了个移动端壳”的项目,而是一套有明确模块边界的多端产品: 共享层 SoniclensCore 负责网络、模型、资料库同步、连接恢复、WebSocket 、播放态与收藏态 ViewModels 负责各类业务页的数据协调 Views 层根据 macOS 、iPadOS 、iPhone 形态做容器和交互差异 iPhone 侧还包含 Live Activity 和分享海报相关能力 从 project.yml 可以看到,整个 Xcode 工程本身也是生成式管理的,target 、scheme 和 extension 嵌入关系统一由配置驱动,而不是手工在 .xcodeproj 里维护。这一点在多人协作和长期迭代时非常关键。 4. 以 AI 为能力层,而不是以 AI 为项目本体 SonicLens 里我最看重的一点,是 AI 在这里是增强层,不是伪需求的中心 。 项目里的“音眸”能力并不是简单给歌曲丢一个 prompt ,而是围绕真实业务对象构建的: 曲目 insight 有独立 schema 、版本、评分和反馈 专辑 insight 不是重复逐曲分析,而是聚合曲目 insight 之后再进行二次生成 解析结果支持历史版本、推荐版本和反馈回灌 长耗时任务通过 insight_job 做异步调度,并用 WebSocket 推送状态 LLM 调用日志被单独记录到 llm_call_logs ,用于审计、回放和排障 这意味着 AI 不是一个“调用成功就结束”的黑盒,而是被纳入了工程系统本身。 三、这个项目最有技术含量的部分,不是接口数量,而是几个闭环 如果只看 API 数量,SonicLens 当前已经有几十个接口;但真正体现专业性的,不是接口多,而是几个关键闭环是否成立。 1. 播放监听闭环:从播放器状态到统一播放事实 SonicLens 当前支持接入 Apple Music 、Audirvana 、Roon 等来源。播放器监听不是单纯轮询标题字符串,而是围绕统一的播放事实在工作: 识别当前播放器运行状态和播放状态 读取歌曲元信息,包括曲目号、盘号、专辑副标题、采样率等细节 生成统一 TrackMetadata 判断播放阈值,决定何时落库、何时 scrobble 推送 WebSocket now_playing 同步收藏态并维护 favorite projection 这部分实现里还有几个我自己非常在意的细节: Apple Music 元数据不是一视同仁处理,而是根据来源质量给出不同置信度 当前播放链路有独立 trace 设计,不会每次轮询都制造噪声 span 停止播放时会判断是否还有其他播放器处于活跃状态,避免误广播 stop 这些处理看起来不“炫技”,但恰恰决定了系统在长期运行时是不是稳定。 2. 资料库同步闭环:不是简单拉接口,而是本地索引系统 SonicLens 的客户端资料库不是“每次打开页面重新请求远端分页”这种常见方案,而是采用了一套更像本地应用的设计: 服务端通过 library_change_log 记录专辑和曲目的增删改 /api/library/sync 提供基于版本号的增量同步 WebSocket 广播 library_updated(version) 作为刷新触发器 Bridge 客户端本地维护 SQLite 轻量索引和 FTS5 搜索 LibrarySyncService 先尝试增量 apply ,失败后自动回退全量重建 这套设计有两个明显好处。 第一,列表浏览和搜索体验不会严重依赖网络往返,客户端更接近原生 app 的使用感受。 第二,服务端和客户端之间的边界非常清楚:服务端提供变更事实,客户端维护查询性能。 这也是为什么 GEMINI.md 里会专门把“本地 SQLite 轻量索引 + FTS5 + 增量同步 + WebSocket 推送 + 详情页懒加载”列为长期红线。因为这不是一个实现细节,而是整个三端体验成立的基础。 3. 音眸异步任务闭环:把 AI 长任务做成产品能力 很多项目接入 AI 时最容易忽略的一点,是长耗时任务的状态管理。 SonicLens 里我专门为 AI 解析设计了 insight_job 这条链路,用它承载: 任务创建 幂等复用 运行中状态 终态结果 失败原因 客户端恢复 Live Activity 联动 对应的接口链路也很完整: POST /api/insight-jobs 创建任务 GET /api/insight-jobs/:id 查询任务和调用流水 POST /api/insight-jobs/:id/cancel 取消任务 POST /api/insight-jobs/:id/retry 重试任务 WebSocket insight_job_updated 广播状态变化 这背后体现的是一个产品判断: AI 解析不是“点一下等结果”,而是要适配真实客户端环境,包括前后台切换、网络中断、长耗时等待和终态回流。 如果未来我把这个项目继续做大,这条链路依然能继续承载更复杂的模型能力,而不是推倒重来。 4. 数据治理闭环:系统不是只会“记”,还要会“修” 这是我很喜欢 SonicLens 的一个点。 音乐数据不是天然干净的。专辑名不一致、版本名混杂、曲目归属错误、第三方元信息缺失,这些问题只要你真的做过音乐资料系统,就一定会遇到。 所以我没有把系统停留在“记录下来”,而是继续做了治理侧能力: Pending Albums 待归因工作台 MusicBrainz 候选搜索与绑定 Deep maintenance 深度维护 Replay 播放记录补偿 收藏状态补写 这意味着 SonicLens 不是一个被动收集器,而是一个可以持续整理自己数据的系统。 对我来说,这类能力的价值非常高,因为它说明项目已经开始从“功能实现”走向“数据运营”。 四、我在这个项目里特别重视的工程质量点 如果把 SonicLens 当成一份作品来看,我最希望别人看到的不是“功能很多”,而是我对工程质量的判断标准。 1. 不是只写功能,而是写长期可维护的结构 GEMINI.md 里保留了大量长期架构约束,这件事本身就说明这个项目不是靠短期记忆在推进,而是在持续沉淀工程规则。 例如: DAO 必须收口,事务入口必须由 internal/model/ 提供 异步逻辑不允许直接写裸 go func ,必须走安全封装 OpenTelemetry 、Redis 、GORM 、database/sql 的观测链路要统一 API 变更要同步维护文档 客户端 target 变更必须先改 project.yml 这些约束看起来“麻烦”,但正是这些约束让系统不会在迭代三个月后失控。 2. 对可观测性有明确投入 这个项目不是出了问题靠猜。 从实现上看,Telemetry 已经接入到: Gin 入站链路 Redis GORM D1 database/sql 出站 HTTP client 而且不仅有 trace ,还有 meter 、db stats metrics 和启动自检逻辑。这对一个个人项目来说其实投入不小,但我认为非常值得,因为系统一旦有多个后台任务、多个外部依赖和多条异步链路,没有观测能力几乎不可能稳定演进。 3. 对客户端性能边界有明确设计 在三端客户端这块,我没有把所有状态都堆进一个全局 store ,而是明确区分了: AppStore 负责低频全局状态 PlaybackStore 负责高频播放态 FavoriteStore 负责收藏态 LibraryViewModel 做 single-flight 、页优先加载和过期请求丢弃 这一套拆分说明我在做的不是“能显示出来就行”的 SwiftUI 页面,而是在认真处理高频状态更新对列表、详情和播放条的影响范围。 4. 把文档当成系统的一部分 SonicLens 不是写完代码才补 README 的项目。 除了 README ,本仓库还维护了: GEMINI.md 作为长期架构记忆 api/ api.md 作为接口盘点 Bridge 客户端边界清单 按日期归档的 memory 清单 我越来越认同一件事: 真正复杂的个人项目,必须有自己的“工程记忆系统”。 因为当系统开始跨越后端、客户端、异步任务、数据同步和 AI 能力时,光靠代码本身已经不足以承载完整上下文。 五、为什么我觉得 SonicLens 是一份值得拿出来展示的作品 如果从面试或者技术交流的角度看,我认为 SonicLens 最有说服力的地方,不是它“用了多少技术栈”,而是它体现了一种完整的工程能力组合。 它至少覆盖了下面这些维度: Go 后端分层架构设计 长期运行服务的任务调度与资源治理 WebSocket 实时推送与状态同步 本地优先的数据建模与资料库增量同步 多端原生客户端的共享层设计 AI 能力的工程化接入,而不是 demo 式接入 数据治理与外部元信息修复链路 可观测性、文档化和长期演化约束 更重要的是,这些能力不是彼此孤立的,而是组成了一个完整系统。 换句话说,SonicLens 不是“我会做后端”“我也会写一点 SwiftUI”“我还能接个大模型”的拼盘式展示,而是一份能体现系统设计意识、产品意识和工程落地能力的综合作品。 六、接下来它还会继续往前走 SonicLens 现在已经不是一个原型,但我也不把它视作完成态。 接下来我仍然会继续打磨几个方向: 更稳的资料治理和专辑归因能力 更完整的 AI 反馈回灌与质量优化 更成熟的分享和输出链路 更统一的多端体验细节 更长期可维护的系统观测与运维工具 对我来说,做 SonicLens 的意义从来不只是“做一个能用的项目”。 它更像是一块长期打磨的工程试验田:我把自己对后端架构、客户端设计、数据治理、AI 工程化和产品实现的理解,都持续沉淀在这里。 如果未来有人问我,什么项目最能代表我真正的技术表达,我想 SonicLens 一定会是其中之一。 如果你也对“个人音乐资产”“本地优先产品”或者“AI 与传统软件系统的结合方式”感兴趣,欢迎交流。 对我来说,SonicLens 不是结束,而是一个还会继续生长的开始。

v2ex.com · 2026-04-23 11:08:22+08:00 · tech

SonicLens:一套面向个人音乐资产的本地优先音乐系统 很多开发者都做过“记录自己在听什么”的小工具,但真正把这件事做成一个可以长期运行、可持续扩展、还能支撑多端体验的完整工程,其实并不容易。 我做 SonicLens ,并不是为了再造一个播放器,也不是为了做一个简单的 scrobble 脚本,而是想回答一个更具体的问题: 如果一个人多年分散在 Apple Music 、Roon 、Audirvana 、 Last.fm 里的听歌行为,最终都要沉淀为属于自己的音乐资产,那么这套系统应该长什么样? 项目: https://github.com/vincentchyu/sonic-lens.git 这就是 SonicLens 的起点。 它的目标很明确: 统一接入多个播放来源,持续监听和记录播放行为 把听歌历史沉淀到本地可控的数据模型中,而不是依赖单一平台 在此基础上构建统计、资料库、歌词、AI 解析、收藏同步和多端浏览能力 让这些能力不只是“能跑”,而是能成为一个长期维护的产品 如果用一句话概括这个项目,我会这样描述: SonicLens 是一套以“个人音乐资产”为中心构建的本地优先音乐基础设施,它把听歌记录、资料整理、AI 洞察和多端消费体验连接成一个完整闭环。 一、这个项目真正想解决的,不是“听了什么”,而是“如何拥有自己的音乐历史” 大多数音乐平台都能告诉你“最近听了什么”,但它们很少真正为用户提供一套稳定、可迁移、可扩展的数据资产模型。 一旦平台策略变化、账号迁移、播放器更换,过去的听歌行为往往就会被切碎,最终只剩一堆零散记录。对我来说,这件事最大的问题不是统计缺失,而是: 你的听歌历史没有真正属于你。 SonicLens 的设计从一开始就不是围绕某个单独播放器展开,而是围绕“个人音乐资产沉淀”展开。也正因为如此,它在架构上天然不是一个脚本型项目,而更像一个围绕领域模型搭建的系统: 后端长期运行,负责监听、同步、聚合、广播和任务调度 Web 管理端负责运维入口、数据看板和后台治理 soniclens-bridge 负责 macOS 、iPadOS 、iPhone 三端原生消费体验 AI 解析、歌词、收藏状态、资料库同步都围绕统一的数据事实源工作 这意味着它的工程重点不在“把接口调通”,而在于让多个异步链路、多个数据来源和多个客户端之间保持一致性。 二、从工程视角看,SonicLens 其实是四层系统 从当前仓库实现看,SonicLens 可以拆成四个核心层次。 1. 持续运行的 Go 后端 后端入口在 main.go 。应用启动后会初始化配置、日志、OpenTelemetry 、Redis 、数据库、MusicBrainz 、对象存储,然后启动: HTTP API 服务 WebSocket 实时推送 播放器监听链路 Dashboard 统计调度 D1 云侧镜像同步 播放记录 replay 补偿任务 Bonjour 局域网发现广播 这类启动方式的重点,是把系统当作一个长期运行的服务,而不是一组临时执行的命令。 2. 明确分层的业务结构 这个项目后端不是把所有逻辑塞进 handler ,而是做了比较清晰的职责分层: api/ 负责 Gin 路由、参数绑定、缓存中间件和响应 internal/logic/ 负责业务编排,例如资料库、音眸、流派、MusicBrainz 、封面等服务 internal/model/ 负责所有数据库 CRUD 和事务入口 internal/scrobbler/ 负责播放器监听与当前播放状态处理 internal/sync/ 负责后台同步、D1 镜像和调度任务 core/ 负责 Redis 、Telemetry 、对象存储、AI 、歌词、WebSocket 、Bonjour 等基础能力 这种结构的价值不是“看起来规范”,而是当项目开始变复杂之后,数据访问边界、事务边界和业务边界依然可控。 GEMINI.md 里对这一点有非常明确的约束: 数据库 CRUD 必须收口在 internal/model/ ,Logic 层只负责编排,不允许把原始 SQL 和 GORM 细节散落到业务代码里。 这是一个非常重要的工程判断,因为它直接决定了系统后期是否还能继续演化。 3. 产品化的原生三端客户端 很多个人项目做到后端和网页就结束了,但 SonicLens 还继续往前走了一层:我为它单独做了一套原生 Bridge 客户端。 soniclens-bridge 目前包含四个 target: SoniclensBridgeMac SoniclensBridgePad SoniclensBridgePhone SoniclensActivities 也就是说,这不是一个“顺带做了个移动端壳”的项目,而是一套有明确模块边界的多端产品: 共享层 SoniclensCore 负责网络、模型、资料库同步、连接恢复、WebSocket 、播放态与收藏态 ViewModels 负责各类业务页的数据协调 Views 层根据 macOS 、iPadOS 、iPhone 形态做容器和交互差异 iPhone 侧还包含 Live Activity 和分享海报相关能力 从 project.yml 可以看到,整个 Xcode 工程本身也是生成式管理的,target 、scheme 和 extension 嵌入关系统一由配置驱动,而不是手工在 .xcodeproj 里维护。这一点在多人协作和长期迭代时非常关键。 4. 以 AI 为能力层,而不是以 AI 为项目本体 SonicLens 里我最看重的一点,是 AI 在这里是增强层,不是伪需求的中心 。 项目里的“音眸”能力并不是简单给歌曲丢一个 prompt ,而是围绕真实业务对象构建的: 曲目 insight 有独立 schema 、版本、评分和反馈 专辑 insight 不是重复逐曲分析,而是聚合曲目 insight 之后再进行二次生成 解析结果支持历史版本、推荐版本和反馈回灌 长耗时任务通过 insight_job 做异步调度,并用 WebSocket 推送状态 LLM 调用日志被单独记录到 llm_call_logs ,用于审计、回放和排障 这意味着 AI 不是一个“调用成功就结束”的黑盒,而是被纳入了工程系统本身。 三、这个项目最有技术含量的部分,不是接口数量,而是几个闭环 如果只看 API 数量,SonicLens 当前已经有几十个接口;但真正体现专业性的,不是接口多,而是几个关键闭环是否成立。 1. 播放监听闭环:从播放器状态到统一播放事实 SonicLens 当前支持接入 Apple Music 、Audirvana 、Roon 等来源。播放器监听不是单纯轮询标题字符串,而是围绕统一的播放事实在工作: 识别当前播放器运行状态和播放状态 读取歌曲元信息,包括曲目号、盘号、专辑副标题、采样率等细节 生成统一 TrackMetadata 判断播放阈值,决定何时落库、何时 scrobble 推送 WebSocket now_playing 同步收藏态并维护 favorite projection 这部分实现里还有几个我自己非常在意的细节: Apple Music 元数据不是一视同仁处理,而是根据来源质量给出不同置信度 当前播放链路有独立 trace 设计,不会每次轮询都制造噪声 span 停止播放时会判断是否还有其他播放器处于活跃状态,避免误广播 stop 这些处理看起来不“炫技”,但恰恰决定了系统在长期运行时是不是稳定。 2. 资料库同步闭环:不是简单拉接口,而是本地索引系统 SonicLens 的客户端资料库不是“每次打开页面重新请求远端分页”这种常见方案,而是采用了一套更像本地应用的设计: 服务端通过 library_change_log 记录专辑和曲目的增删改 /api/library/sync 提供基于版本号的增量同步 WebSocket 广播 library_updated(version) 作为刷新触发器 Bridge 客户端本地维护 SQLite 轻量索引和 FTS5 搜索 LibrarySyncService 先尝试增量 apply ,失败后自动回退全量重建 这套设计有两个明显好处。 第一,列表浏览和搜索体验不会严重依赖网络往返,客户端更接近原生 app 的使用感受。 第二,服务端和客户端之间的边界非常清楚:服务端提供变更事实,客户端维护查询性能。 这也是为什么 GEMINI.md 里会专门把“本地 SQLite 轻量索引 + FTS5 + 增量同步 + WebSocket 推送 + 详情页懒加载”列为长期红线。因为这不是一个实现细节,而是整个三端体验成立的基础。 3. 音眸异步任务闭环:把 AI 长任务做成产品能力 很多项目接入 AI 时最容易忽略的一点,是长耗时任务的状态管理。 SonicLens 里我专门为 AI 解析设计了 insight_job 这条链路,用它承载: 任务创建 幂等复用 运行中状态 终态结果 失败原因 客户端恢复 Live Activity 联动 对应的接口链路也很完整: POST /api/insight-jobs 创建任务 GET /api/insight-jobs/:id 查询任务和调用流水 POST /api/insight-jobs/:id/cancel 取消任务 POST /api/insight-jobs/:id/retry 重试任务 WebSocket insight_job_updated 广播状态变化 这背后体现的是一个产品判断: AI 解析不是“点一下等结果”,而是要适配真实客户端环境,包括前后台切换、网络中断、长耗时等待和终态回流。 如果未来我把这个项目继续做大,这条链路依然能继续承载更复杂的模型能力,而不是推倒重来。 4. 数据治理闭环:系统不是只会“记”,还要会“修” 这是我很喜欢 SonicLens 的一个点。 音乐数据不是天然干净的。专辑名不一致、版本名混杂、曲目归属错误、第三方元信息缺失,这些问题只要你真的做过音乐资料系统,就一定会遇到。 所以我没有把系统停留在“记录下来”,而是继续做了治理侧能力: Pending Albums 待归因工作台 MusicBrainz 候选搜索与绑定 Deep maintenance 深度维护 Replay 播放记录补偿 收藏状态补写 这意味着 SonicLens 不是一个被动收集器,而是一个可以持续整理自己数据的系统。 对我来说,这类能力的价值非常高,因为它说明项目已经开始从“功能实现”走向“数据运营”。 四、我在这个项目里特别重视的工程质量点 如果把 SonicLens 当成一份作品来看,我最希望别人看到的不是“功能很多”,而是我对工程质量的判断标准。 1. 不是只写功能,而是写长期可维护的结构 GEMINI.md 里保留了大量长期架构约束,这件事本身就说明这个项目不是靠短期记忆在推进,而是在持续沉淀工程规则。 例如: DAO 必须收口,事务入口必须由 internal/model/ 提供 异步逻辑不允许直接写裸 go func ,必须走安全封装 OpenTelemetry 、Redis 、GORM 、database/sql 的观测链路要统一 API 变更要同步维护文档 客户端 target 变更必须先改 project.yml 这些约束看起来“麻烦”,但正是这些约束让系统不会在迭代三个月后失控。 2. 对可观测性有明确投入 这个项目不是出了问题靠猜。 从实现上看,Telemetry 已经接入到: Gin 入站链路 Redis GORM D1 database/sql 出站 HTTP client 而且不仅有 trace ,还有 meter 、db stats metrics 和启动自检逻辑。这对一个个人项目来说其实投入不小,但我认为非常值得,因为系统一旦有多个后台任务、多个外部依赖和多条异步链路,没有观测能力几乎不可能稳定演进。 3. 对客户端性能边界有明确设计 在三端客户端这块,我没有把所有状态都堆进一个全局 store ,而是明确区分了: AppStore 负责低频全局状态 PlaybackStore 负责高频播放态 FavoriteStore 负责收藏态 LibraryViewModel 做 single-flight 、页优先加载和过期请求丢弃 这一套拆分说明我在做的不是“能显示出来就行”的 SwiftUI 页面,而是在认真处理高频状态更新对列表、详情和播放条的影响范围。 4. 把文档当成系统的一部分 SonicLens 不是写完代码才补 README 的项目。 除了 README ,本仓库还维护了: GEMINI.md 作为长期架构记忆 api/ api.md 作为接口盘点 Bridge 客户端边界清单 按日期归档的 memory 清单 我越来越认同一件事: 真正复杂的个人项目,必须有自己的“工程记忆系统”。 因为当系统开始跨越后端、客户端、异步任务、数据同步和 AI 能力时,光靠代码本身已经不足以承载完整上下文。 五、为什么我觉得 SonicLens 是一份值得拿出来展示的作品 如果从面试或者技术交流的角度看,我认为 SonicLens 最有说服力的地方,不是它“用了多少技术栈”,而是它体现了一种完整的工程能力组合。 它至少覆盖了下面这些维度: Go 后端分层架构设计 长期运行服务的任务调度与资源治理 WebSocket 实时推送与状态同步 本地优先的数据建模与资料库增量同步 多端原生客户端的共享层设计 AI 能力的工程化接入,而不是 demo 式接入 数据治理与外部元信息修复链路 可观测性、文档化和长期演化约束 更重要的是,这些能力不是彼此孤立的,而是组成了一个完整系统。 换句话说,SonicLens 不是“我会做后端”“我也会写一点 SwiftUI”“我还能接个大模型”的拼盘式展示,而是一份能体现系统设计意识、产品意识和工程落地能力的综合作品。 六、接下来它还会继续往前走 SonicLens 现在已经不是一个原型,但我也不把它视作完成态。 接下来我仍然会继续打磨几个方向: 更稳的资料治理和专辑归因能力 更完整的 AI 反馈回灌与质量优化 更成熟的分享和输出链路 更统一的多端体验细节 更长期可维护的系统观测与运维工具 对我来说,做 SonicLens 的意义从来不只是“做一个能用的项目”。 它更像是一块长期打磨的工程试验田:我把自己对后端架构、客户端设计、数据治理、AI 工程化和产品实现的理解,都持续沉淀在这里。 如果未来有人问我,什么项目最能代表我真正的技术表达,我想 SonicLens 一定会是其中之一。 如果你也对“个人音乐资产”“本地优先产品”或者“AI 与传统软件系统的结合方式”感兴趣,欢迎交流。 对我来说,SonicLens 不是结束,而是一个还会继续生长的开始。