自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(245)
  • 资源 (5)
  • 收藏
  • 关注

原创 飞书多维表格技巧:用“查找引用”实现明细表自动汇总到汇总表

本文介绍了一种利用飞书多维表格实现明细表自动汇总到汇总表的方法。通过"查找引用"字段和工作流配置,当明细表新增或修改徒弟记录时,汇总表能实时更新师傅的汇总数据。实现步骤包括:1)创建明细表和汇总表;2)配置查找引用字段实现数据关联;3)设置工作流确保新增师傅自动创建汇总记录。该方法具有零代码、实时更新、灵活扩展等优势,适用于各类"一对多"数据汇总场景,有效提升数据管理效率。

2026-04-01 10:27:39 491

原创 委托模式详解

委托模式是一种将职责转移给其他对象的结构型设计模式。它通过定义委托接口,让委托者持有被委托者的引用,实现功能解耦。示例展示了打印机委托和事件处理两种场景,对比了紧耦合实现的弊端:违反开闭原则、职责混乱、难以测试和扩展。委托模式通过面向接口编程和组合,提高了代码的灵活性和可维护性,支持运行时动态替换行为,是Go语言中实现松耦合设计的有效方式。

2026-03-26 10:56:15 390

原创 零运维基础:Kafka Docker完整部署+全链路问题排查实战指南

本文记录了零运维基础的Go开发人员通过SSH部署Kafka 2.3.0的全过程。主要内容包括: 服务器环境准备:创建目录结构并配置权限 编写JAAS认证配置文件实现外网强制账号密码认证 编写docker-compose.yml实现双端口隔离(内网免密9093/外网认证9092) 部署过程中遇到的4类典型问题及解决方案: docker-compose命令不存在 Go客户端连接报错 最终实现Kafka+Docker部署,并配套Kafdrop可视化面板 全文提供完整部署步骤和问题排查思路,适合开发人员参考实现生产

2026-03-26 10:03:04 395

原创 Kafka Docker 部署避坑指南:监听器配置与客户端连接问题深度解析

Kafka Docker部署中监听器配置是关键,本文通过三个版本逐步优化: 初版问题:端口映射不全导致Kafdrop无法连接,需明确映射9092端口并配置监听地址为0.0.0.0 二版问题:内外监听器分离时,Go客户端连接成功但发送消息失败,因Metadata返回的broker地址(kafka:9093)在宿主机无法解析 终版方案: 使用自定义Docker网络 区分内部(kafka:9092)和外部(localhost:9092)监听器 确保Metadata返回地址与客户端环境匹配 核心结论:Kafka监听

2026-03-17 10:44:29 499

原创 Redis SCAN 命令使用指南(华为云Redis版)

摘要:Redis的SCAN命令是KEYS命令的安全替代方案,支持增量式键遍历。它包含SCAN、SSCAN、HSCAN和ZSCAN四个子命令,分别用于遍历键、集合、哈希和有序集合。SCAN具有非阻塞、游标迭代和灵活过滤等优势,适用于动态Key获取、批量数据处理和键空间巡检等场景。华为云Redis建议控制COUNT值在100-1000之间,避免业务高峰期操作,并注意集群版需要遍历所有分片。与KEYS命令相比,SCAN虽可能重复/遗漏,但性能更好且不阻塞服务,是生产环境推荐方案。

2026-03-13 10:14:45 390

原创 解决华为云编译构建“找不到历史CommitID”的坑:克隆深度是关键

摘要: 华为云CodeArts编译构建服务中,使用历史CommitID构建时提示“找不到版本”的常见原因是浅克隆限制。系统默认只拉取最近几次提交(由“克隆深度”参数控制),导致无法识别更早的CommitID。解决方法为调整代码下载配置中的克隆深度值(建议≤25),或改用Tag构建。合理配置此参数可解决构建失败问题,确保历史版本可追溯。(149字)

2026-03-05 15:23:43 220

原创 代码沼泽里的屈原:一个后端工程师的自白

摘要: 在混乱的代码系统中坚持专业操守,如同屈原行吟泽畔,清醒却孤独。面对技术债务,作者提出优化方案却被忽视,转而采取渐进式修复策略,但仍难抵系统腐化。为此总结出“沼泽生存法则”:防御性编程、测试兜底和量化风险,以最小代价维持系统运行。文章强调“课题分离”——系统问题是公司的责任,而个人应坚守代码质量,不为改变环境,只为保持专业尊严。最后指出,若环境长期消耗热情,或许是时候重新评估匹配度;但坚持整洁代码本身,就是对抗熵增的意义。在技术沼泽中,每个保持清醒的开发者都是当代的“代码屈原”。

2026-03-05 13:35:01 538

原创 弹窗缓存重构技术方案

弹窗配置系统缓存优化方案摘要 针对现有缓存架构的缺陷,提出五项优化决策:1)采用Cache-Aside模式,先更新数据库再删除缓存;2)简化缓存键设计,移除城市字段,将匹配逻辑移至内存处理;3)引入customCache工具包封装缓存操作;4)实施双删策略确保一致性;5)优化对象创建方式避免字段遗漏。优化后预计实现Redis内存减少90%、写操作耗时降低70%、代码重复率减少80%,同时保持99%以上的缓存命中率。方案解决了原设计存在的缓存冗余、城市匹配耦合、写操作风险等问题,显著提升系统性能和可维护性。

2026-03-05 13:21:33 448

原创 面向接口编程与单元测试最佳实践

本文探讨了如何通过面向接口编程提高代码可测试性。以StoreThemeConditionChecker为例,分析了直接依赖数据库模型导致的测试痛点:需要准备真实数据库、测试缓慢且不稳定。解决方案是将储值操作抽象为StoreConditionChecker接口,业务代码依赖接口而非具体实现。生产环境使用真实数据库实现,测试环境则通过Mock实现模拟各种场景。这种解耦方式使单元测试变得快速、稳定且隔离,有效解决了代码与外部依赖强耦合的问题,展示了依赖倒置原则在提升测试效率中的实际应用。

2026-03-04 17:11:30 573

原创 golang:Redis Mock 测试模板

本文提供了一个使用redismock/v8库进行Redis单元测试的Go语言模板。主要内容包括: 依赖引入:使用go-redis/redis和redismock/v8库进行Redis操作模拟 核心结构: mockRedis结构体实现Redis接口 测试函数模板包含测试用例表、mock设置和执行验证 测试流程: 创建Redis mock客户端 设置mock预期行为 执行测试方法 验证结果和mock调用情况 使用说明: 替换占位符适配具体业务 支持多种Redis操作模拟 提供并行测试和错误处理建议 该模板适用于

2026-03-04 16:56:21 250

原创 从结对到范式:SDD驱动下的AI协同编程新实践

本文提出SDD(方案驱动开发)协同编程范式,通过结构化流程解决AI编程中的不可靠性问题。核心方法包括:技术方案先行作为开发契约,渐进式代码生成与校验,测试闭环保障质量,高频提交控制风险。实践表明,这种系统化设计能有效应对AI代码暴走、错误累积等问题,将人机协作从即兴模式升级为可信赖的开发流程。文章还提炼了文档契约化、最小化迭代等落地原则,为团队级AI协同提供了方法论支持。

2026-01-22 14:48:13 881

原创 AI与人协同:开发领域的转型实践与深度思考

本文分享了AI与开发者协同工作的实践经验与思考。作者通过PostgreSQL批量写入优化、企业微信消息推送系统设计等案例,展示了AI在方案设计、代码生成、测试验证等场景中的价值,总结出"发散-收敛-细化"的协同模式。文章指出LLM本质是概率预测器而非理解者,其成功率随任务复杂度呈指数级下降,因此需要构建"人机协同"新范式:通过确定性优先、减少可能性空间、阶段性交付等原则,用系统设计对抗个体不可靠性。最后提出将AI协同从个体扩展到团队层面,打造工具链、建立规范,并探索A

2026-01-22 13:46:59 640

原创 企业知识库解决方案调研文档(模板)

企业知识库解决方案调研摘要 为构建安全高效的企业SOP知识库,调研对比了四类方案: SaaS方案(如HelpLook):部署快但数据在第三方云端,隔离性低; 二开/私有化方案(如Confluence+AI):数据本地化,需开发支持; 开源方案(如FastGPT):自主可控但技术门槛高; 完全自研:安全性最优但研发成本极高。 核心权衡:数据隔离(安全)与实施成本。建议短期试点B/C类方案验证效果,长期视需求逐步转向自研或开源架构。优先保障机密数据安全,同时平衡开发资源与效率。

2025-12-23 11:15:48 379

原创 基于券类型路由的渐进式重构:函数式选项模式与管道模式的完美结合

本文介绍了电商系统中优惠券订单处理的重构实践。原有CreateCouponOrder函数膨胀至200+行,存在代码臃肿、难以测试和扩展等问题。重构采用函数式选项模式与管道模式相结合的策略,通过按券类型路由实现双逻辑并存:高德券走新管道逻辑,其他券保持原有处理。路由层CreateCouponOrderWithRoute识别券类型并分发请求,同时通过选项函数传递已查询数据避免重复操作。原有函数改造后返回选项函数,支持数据复用。管道模式处理高德券时,通过上下文结构传递状态,各步骤实现独立接口,确保业务连续性和风险

2025-12-17 16:54:39 1091

原创 解耦与提效:券订单系统重构全方案(策略+工厂+管道)

本文针对餐饮O2O系统中订单与券管理耦合度过高的问题,提出了一套系统重构方案。原有系统存在逻辑强耦合、流程混乱、事务一致性难保障和扩展性差四大痛点。通过采用策略模式+管道模式+事务策略的混合架构,实现了业务解耦和流程优化。方案包含清晰的分层设计(API/Service/Domain/Model/Enum层)、核心设计模式组合(策略模式封装券逻辑、管道模式编排流程)以及完整的基础定义实现(订单状态、券类型等枚举和请求响应结构体)。重构后系统显著提升了可维护性和扩展性,为多平台券接入提供了标准化解决方案。

2025-11-27 18:10:22 672

原创 基于GMP模型分而治之思想:实现Slice无锁化并发写操作的实践

本文探讨了Go语言中高并发场景下的Slice无锁化写入方案。通过借鉴GMP调度模型的"分而治之"思想,为每个goroutine预分配独立的数组写入位置,避免了传统加锁方式带来的性能瓶颈。方案具有完全无锁、内存安全、高性能等特点,适用于批量数据获取和并行计算等场景。基准测试显示,相比传统加锁方式,无锁化方案性能提升显著。该技术实现简单却效果显著,是解决并发写操作的优雅方案。

2025-11-19 10:19:21 1116

原创 高效批量数据写入:PostgreSQL COPY 协议实战指南

PostgreSQL COPY协议批量数据写入实战指南 摘要:针对PostgreSQL批量写入大量数据时遇到的参数数量限制问题,本文介绍了使用COPY协议的高效解决方案。COPY协议采用二进制格式直接传输数据,避免了SQL解析开销,可实现百万级数据无分片写入,同时保持事务安全和低内存占用。文章详细讲解了COPY协议原理,并提供了Go语言实现代码和完整测试用例,包括数据验证、事务管理和性能对比。相比传统分批插入,COPY协议在20000条数据测试中展现出显著性能优势,具备更低的内存占用和更少的网络请求次数。

2025-11-19 09:04:35 699

原创 分布式事务:可靠事件队列、TCC和SAGAS事务

本文探讨了分布式系统中解决事务一致性的三种方案:可靠事件队列、TCC和SAGA事务。可靠事件队列通过消息中间件实现最终一致性;TCC采用预留资源的方式保证隔离性,但实现复杂;SAGA更适合外部系统场景,将大事务拆分为可补偿的子事务。特别指出SAGA与事件溯源(ES)存在深刻的内在联系:SAGA的事务步骤可建模为不可变事件,其补偿逻辑与ES的"回溯"机制同构。这种架构融合为复杂分布式事务提供了健壮、透明的解决方案,尤其在涉及外部系统时展现出独特优势。

2025-11-12 16:33:23 961

原创 企业微信消息推送系统设计:基于ES(事件溯源思想)解耦规则与任务架构

本文介绍了一种基于事件溯源(Event Sourcing)思想设计的企业微信消息推送系统架构。系统通过将规则与执行任务解耦,采用"任务只增不改"原则,有效解决了传统方案中状态管理复杂、并发冲突等问题。核心设计包含规则管理器、规则调度器和任务调度器三大组件,通过规则表、任务表和发送日志表实现消息推送全流程管理。系统支持立即发送、定时发送和周期发送三种模式,采用乐观并发控制降低分布式锁复杂度,提升了系统的可靠性和可扩展性。数据库表结构中,任务表承担了"事件存储"角色,完整

2025-11-12 13:59:04 919

原创 优雅地Mock时间:gomonkey实现time.Now()替换的原理与实践

文章摘要:gomonkey库通过函数地址替换实现在单元测试中对time.Now()的无侵入Mock,解决了时间依赖问题。其核心原理是修改函数机器指令,将标准库函数跳转到自定义mock函数。具体实现包括:构建跳转指令、备份原指令、修改机器码。该方案无需改动业务代码,使测试更加稳定可靠,适用于需要控制时间的测试场景。

2025-11-11 14:37:32 228

原创 架构权衡与实践:基于“约束大于规范”的缓存组件封装

文章摘要:本文介绍了一个基于业务需求封装的Redis缓存组件,重点讨论了延时双删机制的应用场景与实现细节。该机制通过两次删除操作(立即删除+延迟删除)应对主从同步延迟导致的数据一致性问题。组件采用缓存穿透防护(设置特殊占位符)、并发控制(singleflight)、指数退避重试等策略,并支持随机化过期时间避免缓存雪崩。代码示例展示了双删策略、错误处理和缓存操作的核心实现,同时探讨了架构设计中复杂度与可靠性的平衡考量。

2025-10-24 16:56:58 395

原创 从golang从GMP模型到分布式架构:无锁化思想的高并发实践

摘要:本文探讨如何借鉴Go语言GMP模型的无锁化思想应对高并发场景。核心思想是通过数据分片和本地缓存将全局竞争转化为局部操作,如将库存分散到多个数据库实例或应用本地内存。针对分布式环境下的扩缩容和故障恢复问题,提出两种方案:中心调度器模式和基于分布式缓存的共享池模式。最终通过分层设计实现高效与可靠的统一,体现了"分而治之"的并发处理智慧。(149字)

2025-10-24 16:17:00 1136

原创 K8s日志查看与程序更新验证指南

本文探讨了在Kubernetes集群中查看Go程序日志和验证服务更新的问题。针对控制台输出不可见的问题,指出应该使用kubectl logs命令而非直接进入容器shell查看。对于验证服务更新,建议通过检查Pod镜像标签、强制重启Deployment、对比程序版本信息等方式确认。文章提供了具体命令示例和排查思路,帮助开发者解决K8s环境下的日志查看和版本验证问题。

2025-08-20 08:48:44 783

原创 Kubernetes 负载均衡现象解析:为何同一批次请求集中于单个 Pod

在Windows本地Kubernetes集群中,通过Traefik和Kubernetes Service实现负载均衡时,发现循环请求会集中路由到同一Pod,间隔后才切换。这主要是由于Kubernetes Service默认启用会话亲和性和HTTP长连接复用机制:1)同一TCP连接内的请求会被固定到同一Pod;2)Traefik仅转发到Service的NodePort,实际负载均衡由Kubernetes Service完成。解决方案需调整会话亲和性或强制新建连接来实现请求均匀分布。

2025-08-20 08:44:08 718

原创 Kubernetes 常用命令

本文介绍了在Windows环境下使用Kind创建本地Kubernetes集群并集成Traefik进行负载均衡后,如何进入集群容器内部的操作方法。通过kubectl命令获取服务对应Pod名称,使用kubectl exec进入容器控制台进行调试,并提供了常用Kubernetes命令,包括查看集群信息、节点状态、Pod详情和日志等。文章详细说明了如何通过标签筛选Pod、进入容器内部的操作步骤及注意事项,为开发者提供了实用的集群管理和问题排查指南。

2025-08-19 09:42:04 889

原创 在 Windows 上使用 Kind 创建本地 Kubernetes 集群并集成Traefik 进行负载均衡

本文记录了在Windows环境下使用Kind创建本地Kubernetes集群并部署Go服务的完整流程。通过Go1.17环境安装Kind工具,创建集群后,独立运行Traefik作为Ingress控制器。详细说明了构建Go服务镜像、加载到Kind集群、配置Deployment/Service/Ingress等步骤,并解决了Traefik独立运行与集群服务的连接问题。最终通过配置共享网络和动态路由,实现了外部访问(hello.local)的负载均衡,验证了流量分发到多个Pod的功能。

2025-08-19 09:03:30 1260 1

原创 评论父子级关系的高效删除方案:避免递归

本文提出了一种基于路径存储的高效多级评论删除方案。通过在创建评论时记录完整的评论链路路径(如"1,2,3,4"),取代传统递归删除方式。当删除某条评论时,只需使用LIKE条件匹配该路径前缀即可批量标记删除(软删除)目标评论及其所有子评论。该方案显著提升了删除效率,避免了递归查询的性能损耗,同时采用软删除机制保证数据完整性。方案实现包括创建时生成路径、删除时批量更新等核心逻辑,适用于层级较深或数据量大的评论系统场景,兼具性能和可维护性优势。

2025-08-15 08:48:38 368

原创 gorm:全局禁用默认带有deleted_at IS NULL查询条件

GORM默认启用软删除功能,对含deleted_at字段的模型查询会自动添加deleted_at IS NULL条件。本文解释了该机制的原理,并提供了三种解决方案:1)全局取消软删除过滤,通过注册查询钩子强制所有查询返回全部数据;2)单次查询使用Unscoped()方法;3)模型层面移除软删除特性。这些方法可帮助开发者在需要时灵活控制软删除行为。

2025-08-15 08:45:32 539

原创 营业数据多维度统计系统设计:解决跨期去重与精准分析难题

摘要:为解决多维度统计分析中的性能瓶颈和跨期数据去重问题,本文提出基于MySQL的预计算方案。采用星型/雪花模型构建数据体系,通过ETL四层架构(ODS→DWD→DWS→ADS)实现数据分层加工。方案创新性使用bitmap技术处理跨期去重,存储用户ID集合并通过位运算实现高效聚合。针对客单价、留存率等核心指标设计专门计算逻辑,建立会员消费时间序列中间表支持跨周期分析。性能测试显示,bitmap并集计算平均耗时469ms,内存消耗30MB,满足实时查询需求。该方案在保证查询效率的同时,解决了传统预计算方法面临

2025-07-17 14:46:16 1304

原创 巧用 Golang 函数特性实现单元测试中的数据库操作 Mock

本文介绍了一种基于Golang函数特性的Mock方案,用于解决单元测试中数据库依赖问题。通过将数据库操作封装为函数变量,在测试时重新赋值这些变量来模拟数据库行为,实现测试与数据库的解耦。该方法利用Golang函数作为"一等公民"的特性,无需引入复杂框架即可实现简洁高效的Mock功能。示例代码展示了如何模拟数据库查询结果和并发场景测试。该方案优势包括:消除数据库依赖、简化测试数据准备、提升测试效率、便于模拟特殊场景,同时保持代码简洁性,特别适合业务逻辑复杂、数据库操作频繁的项目场景。

2025-07-17 14:41:13 650

原创 docker设置镜像加速

在使用 Docker 拉取镜像时,我首先按照官方指引尝试配置阿里云镜像加速器。然而,多次操作后仍无法正常使用,怀疑是个人账号没有权限拉取镜像,但经过多轮权限检查与配置核对,始终未能定位问题根源,这一步的尝试最终以失败告终。为突破镜像拉取的瓶颈,我转向网络上的第三方解决方案,筛选了多个公开的镜像加速器资源后,选择了其中一个进行配置修改。具体操作包括更新 Docker 的 daemon.json 配置文件,添加新的加速器地址并重启 Docker 服务。完成这些步骤后,再次尝试拉取镜像。

2025-07-11 08:55:30 588

原创 golang条件编译:Build constraints

Go语言构建约束机制详解 Go语言通过构建约束(Build Constraints)实现跨平台编译控制,主要方式包括: 显式约束:使用//go:build注释行,支持逻辑运算符组合条件 隐式约束:通过文件名后缀(_GOOS_GOARCH)自动实现 案例演示了Windows和Linux平台的不同代码实现,其中: main.go调用SayHello() sayhello_linux.go和sayhello_windows.go分别实现平台特定逻辑 需注意gorun命令的两种使用方式差异: gorun main.

2025-07-09 11:24:46 1158

原创 提测文档模板

简要描述本次提测功能,包括功能实现的目标、主要操作流程、预期达到的效果。

2025-07-09 08:38:32 625

原创 上线文档模板

变更项变更内容简述变更影响范围变更风险评估[配置文件路径1][如修改数据库连接地址][影响用户认证模块][低风险,验证后生效][配置文件路径2][如调整日志级别][影响系统日志输出][中风险,可能丢失部分调试信息]变更类型变更对象变更内容简述变更影响范围回滚方案表结构变更[表名1][如新增字段age][用户信息模块][执行SQL脚本回滚新增字段]数据迁移[表名2][如历史数据格式转换][订单统计模块][备份原数据,异常时恢复]脚本类型脚本路径/名称。

2025-07-09 08:37:33 938

原创 技术方案设计模板

​示例:用户提交积分兑换请求→后端校验用户积分是否充足→校验商品库存→创建兑换订单→扣减积分→通知物流系统发货​。1.重点描述需求的边界,比如,由于某些原因,某些功能这一期无法实现或者降级实现。2.如果是修改的逻辑,需要重点描述兼容性等问题,描述改动前后的影响。比如:积分扣减的原子性(模拟并发场景,避免超扣 / 漏扣)用文字或流程图描述需处理的核心流程(最好附上流程图):​。接口测试整个业务流程。

2025-07-09 08:35:03 585

原创 多维度缓存一致性挑战:Cache-Aside模式下的解决方案精要

针对多维度缓存场景下缓存删除遗漏的问题,提出了四种解决方案:1)集中式缓存键管理器统一管理实体缓存键;2)缓存标签机制通过标签批量删除关联键;3)事件驱动解耦业务与缓存清理;4)测试与监控机制兜底保障。核心思路是将多维度缓存关联关系从分散转为集中管理,建议根据场景特点选择方案:键管理器适合简单场景,标签机制灵活性高,事件驱动适合分布式系统,测试监控作为通用兜底方案。这些方案可有效解决缓存不一致问题,降低开发维护成本。

2025-07-08 11:43:26 1121

原创 深度排查 benchstat 无输出问题:编码格式引发的 “隐形故障”

本文分析了Golang benchstat工具无输出的问题。通过源码分析发现benchstat严格依赖UTF-8编码解析基准测试文件,当文件采用GBK等非UTF-8编码时,会触发utf8.RuneError导致解析终止。验证测试表明,将文件转换为UTF-8无BOM编码后问题解决。建议规范基准测试文件的生成流程,确保统一使用UTF-8编码保存,以避免此类"隐形约束"导致的工具异常。

2025-07-04 08:32:44 543

原创 使用Process Monitor定位benchstat工具执行过程

摘要:在Windows11系统Go1.21.0环境下使用benchstat工具比较基准测试结果时遇到问题。通过ProcessMonitor工具捕获分析,确认benchstat已成功读取目标文件(20_runs_bench.txt)。使用官方示例文件(D:\Go\pkg\mod\golang.org\x\perf@v0.0.0-20250605212013-b481878a17be\benchproc\testdata)测试成功,证明工具本身运行正常。

2025-07-02 16:47:28 506

原创 Benchmarking in Go

本文对比了Golang中JSON和Protobuf在序列化/反序列化性能上的差异。通过基准测试(Benchmark)方法,作者设置了包含20个字段的复杂消息结构,分别测试了两种协议的序列化速度、反序列化速度和数据大小。测试结果显示Protobuf在各方面均优于JSON:序列化速度快约1.5倍,反序列化速度快约2倍,生成的数据体积更小(480B vs 904B)。文章详细介绍了基准测试的实施方法,包括测试数据准备、测试命令参数(-benchmem,-count)以及推荐使用benchstat工具进行结果分析。

2025-07-02 15:23:53 871

原创 could not import google.golang.org/protobuf/proto

在Go项目测试中导入protobuf包时遇到"could not import google.golang.org/protobuf/proto"错误。临时解决方案是通过go mod vendor命令将依赖复制到本地的vendor目录,使编译器优先使用本地依赖而非模块缓存。虽然该方案能暂时解决问题,但用户仍困惑于根本原因未解决,寻求遇到过类似问题的开发者帮助。疑问焦点在于为何常规依赖管理方式会持续报错,而vendor模式却能正常工作。

2025-06-27 16:42:34 368

java环境安装包,jdk

java环境安装包,jdk

2024-03-06

datagridview 标题中添加checkbox

解决方案用VS2017编程。在datagridview的列标题中添加checkbox,实现对整列进行全选,反选功能。

2018-07-25

ASP.NET MVC 5高级编程 第5版(中文版)

ASP.NET MVC5高级编程(第5版.NET开发经典名著)作为Microsoft备受欢迎的MVC技术的最新版本,MVC 5是一个成熟的Web应用程序框架,支持快速的、TDD友好的开发。MVC允许开发人员创建动态的、数据驱动的网站。这样的网站具有复杂的功能,如单页面应用程序、针对移动设备优化、适应性呈现等。本书还包括了MVC 5.1和MVC 5.2中的一些新特性。通过采用分步骤讲解的方法,指导读者如何充分利用MVC。本平台提供的是中文版。 本书的作者加洛韦不是Microsoft的ASP.NET MVC专家,就是ASP.NET MVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。 主要内容 解释了ASP.NET MVC框架与其他“每个页面一个文件”的Web框架的区别 介绍了控制器、视图、模型、表单、HTML辅助方法、数据注解和验证、成员资格、授权、安全性和路由 新增了对One ASP.NET项目模板、ASP.NET Identity、Bootstrap和特性路由的介绍 探讨了一些重要主题,如Ajax、NuGet、依赖注入、单元测试和MVC扩展 提供了分步骤指导。

2018-07-03

C#公共通用类

----------Database-------------- 1.DataTable帮助类(DataTableHelper.cs) 2.Access数据库文件操作辅助类(JetAccessUtil.cs) 5.查询条件组合辅助类(SearchCondition.cs) 6.查询信息实体类(SearchInfo.cs) 8.Sql命令操作函数(可用于安装程序的时候数据库脚本执行)(SqlScriptHelper.cs) ----------Device-------------- 声音播放辅助类(AudioHelper.cs) 摄像头操作辅助类,包括开启、关闭、抓图、设置等功能(Camera.cs) 提供用于操作【剪切板】的方法(ClipboardHelper.cs) 获取电脑信息(Computer.cs) 提供用户硬件唯一信息的辅助类(FingerprintHelper.cs) 读取指定盘符的硬盘序列号(HardwareInfoHelper.cs) 提供访问键盘当前状态的属性(KeyboardHelper.cs) 全局键盘钩子。这可以用来在全球范围内捕捉键盘输入。(KeyboardHook.cs) 模拟鼠标点 击(MouseHelper.cs) 全局鼠标钩子。这可以用来在全球范围内捕获鼠标输入。(MouseHook.cs) MP3文件播放操作辅助类(MP3Helper.cs) 关联文件(ExtensionAttachUtil.cs) 注册文件关联的辅助类(FileAssociationsHelper.cs) 打开、保存文件对话框操作辅助类(FileDialogHelper.cs) 常用的文件操作辅助类FileUtil(FileUtil.cs) INI文件操作辅助类(INIFileUtil.cs) 独立存储操作辅助类(IsolatedStorageHelper.cs) 序列号操作辅助类(Serializer.cs) 获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs) 简单的Word操作对象(WordCombineUtil.cs) 这个类提供了一些实用的方法来转换XML和对象。(XmlConvertor.cs) XML操作类(XmlHelper.cs) ----------Format-------------- 参数验证的通用验证程序。(ArgumentValidation.cs) 这个类提供了实用方法的字节数组和图像之间的转换。(ByteImageConvertor.cs) byte字节数组操作辅助类(BytesTools.cs) 处理数据类型转换,数制转换、编码转换相关的类(ConvertHelper.cs) CRC校验辅助类(CRCUtils.cs) 枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量(StringConstants.cs) 简要说明TextHelper。(StringUtil.cs) 获取中文字首字拼写,随机发生器,按指定概率随机执行操作(Util.cs) 各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助(HttpWebRequestHelper.cs) Net(NetworkUtil.cs) IE代理设置辅助类(ProxyHelper.cs) ----------Winform-------------- 跨线程的控件安全访问方式(CallCtrlWithThreadSafety.cs) CheckBoxList(CheckBoxListUtil.cs) 窗口管理类(ChildWinManagement.cs) 由马丁·米勒http://msdn.microsoft.com/en-us/library/ms996492.aspx提供一个简单的方法打印工作的一个RichTextBox一个帮手(ExRichTextBoxPrintHelper.cs) 显示,隐藏或关闭动画形式。(FormAnimator.cs) 对窗体进行冻结、解冻操作辅助类(FreezeWindowUtil.cs) 窗体全屏操作辅助类(Ful

2018-09-07

ADB_v1.0.32_tool

附有txt格式的安装办法 包含四个文件,adb.exe AdbWinApi.dll AdbWinUsbApi.dll fastboot.exe

2018-12-10

考勤管理源码

请使用VS2017打开。WinForm端的考勤管理源码。仅供学习参考。

2018-07-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除