- 博客(30)
- 收藏
- 关注
原创 深入理解EF Core更新机制(开发中因为省事遇到的问题)
EF Core更新机制解析:"先查后改"的必要性 本文通过一个佣金管理系统的并发异常案例,揭示了EF Core更新机制的核心原理。文章指出,直接创建新实体并调用Update方法会导致并发异常,因为EF Core依赖状态跟踪机制来管理实体变更。正确的更新模式必须遵循"先查后改"原则,原因有三: 乐观并发控制需要原始实体数据验证 变更检测机制依赖被跟踪实体的状态比较 关联数据处理需要完整的实体上下文 文章提供了三种正确的更新模式,并特别讨论了聚合根设计对更新逻辑的影响。最
2025-12-10 16:38:31
595
原创 一篇文章搞定在DDD+abp7层架构项目的接口开发
以简单易懂的例子简述.netcore开发流程,开发中遇到问题可以在评论区留言,我们一起交流。
2025-12-03 13:54:04
722
1
原创 ORM会不会刷关联属性
摘要:EF Core中的导航属性(如ICollection<T>)不会直接映射为数据库表的字段,而是通过外键建立表间关系。数据库层面通过外键列和约束实现关联,代码层面通过导航属性表示对象关系。EF Core自动管理对象与表的映射,迁移时只生成实际的表和列。这种设计既保持了数据库规范化,又提供了面向对象的编程便利。开发时应区分数据存储(外键)与业务对象(导航属性),理解ORM如何桥接两者。
2025-12-01 16:57:25
691
原创 LLBLGen Pro 大数据量插入深度解析:原理、实现与性能优化
本文深入分析了LLBLGen Pro在大数据量插入场景下的技术实现与优化策略。通过对比单条插入和批量插入的性能差异(10,000条记录处理时间从60秒降至2秒),揭示了批量操作的核心优势:减少网络往返、优化日志机制和锁机制。文章详细介绍了四种批量插入实现方案,包括直接BulkInsert、分批次处理、异步操作和高级事务管理,并提供了具体代码示例。同时提出了内存管理优化等深度策略,帮助开发者高效处理海量数据,解决传统单条插入方式性能低下的问题。
2025-11-26 11:13:53
458
原创 C# 数据类型转换
C#类型转换方法全面指南 本文系统介绍了C#中的多种类型转换技术:1) Convert类提供全能转换功能,支持数值、布尔、日期等基本类型转换及进制处理;2) Parse方法专用于字符串解析,支持格式控制;3) TryParse方法实现异常安全的转换,是现代开发首选;4) 强制类型转换适用于已知兼容类型;5) 自定义类型可通过转换操作符和类型转换器实现灵活转换。文章还提供了实用工具方法建议,帮助开发者在不同场景下选择最合适的转换方案,确保代码的健壮性和可维护性。
2025-11-25 16:48:29
284
原创 ADO.net改为LLBLGEN 4.1(ORM框架封装sql)
本文对比了佣金记录删除功能在原始ADO.NET实现与ORM重构后的差异。原始方式需要手动编写SQL、管理连接和事务,代码冗长且易出错;ORM重构后通过面向对象的方式操作实体,自动处理参数和事务,使业务逻辑更清晰。ORM带来的优势包括:提升开发效率(减少样板代码、智能提示支持)、增强可维护性(业务逻辑清晰、集中化数据逻辑)、改进安全性(防止SQL注入)、简化事务管理以及提供更好的错误处理。这种重构不仅是技术升级,更是从数据表思维到对象思维的转变,使开发者能更专注于业务实现,为后续扩展和协作奠定基础。
2025-11-25 10:08:57
443
1
原创 从静态守卫到动态伙伴:一次关于门禁系统的思维进化之旅
摘要: 本文提出了一种创新的动态自适应门禁系统,通过“根记忆”与“叶记忆”的双层架构,既保障安全性又提升用户体验。系统优先比对最近容貌特征(叶记忆),失败时自动切换至初始录入图像(根记忆),并在验证成功后智能更新叶记忆。该设计突破了传统静态识别的局限,赋予系统随时间适应使用者容貌变化的能力,同时通过活体检测、版本管理等机制确保安全。这种融合动态学习与分层验证的模式,不仅适用于门禁场景,更可拓展至智慧办公、公共服务等领域,体现了科技对人文关怀的深度思考。
2025-10-30 20:30:08
1189
原创 从800条到10万条:一场关于数据查询的面试,与我的架构思维跃迁
从800条到10万条数据查询的架构思维跃迁 本文记录了一场技术面试中从简单查询到复杂架构设计的思维演进过程。面试从800条数据查询的基础分页方案出发,逐步探讨了缓存优化、防御式架构设计,最终升华到10万级数据处理的完整架构方案。关键启示包括:需求澄清优先、分层解决方案(前端分页/后端流式处理)、缓存策略优化,以及大型数据处理的核心原则(分流分治/异步化/读写分离)。整个过程展现了从功能实现到系统设计的思维转变,强调了技术决策中的权衡艺术和分层架构思维,为开发者提供了一套可复用的方法论框架。
2025-10-30 14:11:20
605
原创 写给应届生的 Git 分支管理入门指南
本文介绍了团队开发中使用的Git Flow分支管理流程,通过五大分支角色(Master、Develop、Feature、Release、Hotfix)实现有序协作。文章详细说明了各分支的作用、注意事项和典型工作场景,包括开发新功能、发布准备和紧急修复的操作步骤。为新人提供了实用建议,如从develop分支开始工作、使用--no-ff合并等,并附上常用命令备忘。通过规范的流程管理和清晰沟通,帮助开发者快速适应团队协作模式。
2025-10-30 13:28:47
342
原创 一次Nacos集群故障排查:从“找不到主节点“到协议文件重置
Nacos集群故障处理经验 故障现象:在Nacos控制台下线服务实例时出现"找不到主节点"错误,导致操作失败。经排查发现是集群选举状态异常,protocol协议文件损坏导致无法选举出主节点。 解决方案:通过备份并删除Nacos数据目录下的protocol文件,重置集群选举状态,强制节点重新选举。操作流程包括停止服务、备份protocol文件、删除原文件、重启服务等步骤。 经验总结:该方案适用于紧急恢复场景,但需注意备份数据并谨慎操作。后续建立了定期健康检查、协议文件备份等预防措施,完善了
2025-10-29 23:21:40
962
原创 一次价值千元的Bug:Long类型比较的陷阱与思考
摘要:文章剖析了一个由Java包装类比较引发的线上事故。当用户ID超过127后,使用==比较Long对象开始失效,根源在于Java的整数缓存机制(-128到127)。作者对比了三种修复方案,推荐使用Objects.equals()方法,并总结了经验教训:基础知识的深度理解至关重要,测试需覆盖边界场景,团队应建立包装类比较规范。文章强调编程中最大的风险往往来自看似简单的操作陷阱,建议通过静态检查工具和公用方法确保代码安全。
2025-10-29 22:45:39
912
原创 《从马士兵视角,解读中国开发者如何选择编程语言:薪资与天花板》
本文分析了Java、Golang、Python和C/C++等主流编程语言的技术生态与薪资发展路径。Java作为业务开发首选,薪资天花板高;Golang在云原生领域起点高;Python薪资分化明显,AI方向潜力大;C/C++底层技术专家稀缺且薪资无上限。建议开发者根据自身目标选择:追求稳定选Java,热门赛道选Golang,AI领域选Python,底层技术选C/C++。核心观点指出薪资由解决问题的复杂度决定,语言只是工具,需结合领域与架构深耕。
2025-10-26 18:40:07
341
原创 Docker与Tomcat:是替代还是协作?深入理解容器化时代的应用部署
本文探讨了Docker与Tomcat的协作关系。Tomcat作为Java应用服务器,专注于Servlet执行和Web应用管理;而Docker是容器化平台,提供环境标准化和部署便利。通过对比传统部署与Docker化部署的差异,指出Docker并非替代Tomcat,而是为Tomcat提供更好的运行环境。针对资源冗余问题,提出了服务共享和分层存储等优化方案。最后强调,两者的结合能实现从开发到生产的全链路解决方案,是现代化Java应用部署的最佳实践。
2025-10-24 10:51:15
964
1
原创 告别巨头,夺回你的数据主权!我如何用零成本将全球废旧设备变成永不关机的私人云帝国
摘要: 无需公网IP或复杂网络知识,利用ZeroTier/Tailscale建立虚拟局域网,可将闲置设备(旧手机、笔记本等)改造成私人服务器,实现文件共享、远程访问和媒体库等功能。整个过程简单安全,数据完全自主掌控,既环保又省钱。适合普通用户在一个下午内搭建属于自己的数字王国,摆脱对云服务的依赖。
2025-10-24 10:10:14
305
2
原创 技术之外的价值:如何向面试官证明你是个好队友?
摘要: 本文针对应届生在技术面试最后一轮常遇到的“软实力”考察问题,如团队协作、解决分歧等,提供了系统化的应对策略。文章指出软实力与技术能力同等重要,并拆解了面试官的真实考察点(沟通能力、情商、团队意识等)。核心框架“STAR-L”通过情境、目标、行动、结果和反思五个维度,帮助求职者结构化回答。文中还给出三个高频问题的回答范例,并强调“对事不对人”“数据驱动”等软实力心法,帮助求职者展现成熟的团队协作素养,提升面试通过率。(147字)
2025-10-24 09:26:09
387
1
原创 别让Redis成为你的短板:2025校招Java后端缓存攻略
摘要:Redis面试核心知识点解析 Redis作为高性能内存数据库,是面试必备技能。其核心价值在于内存存储、单线程架构和高效数据结构,能显著提升系统性能。面试重点包括: 数据结构与应用:String、Hash、List、Set、ZSet(如排行榜场景); 持久化机制:RDB快照与AOF日志的优缺点及组合使用; 高并发问题:缓存穿透(布隆过滤器)、击穿(互斥锁)、雪崩(随机过期时间)的解决方案; 数据一致性:优先采用“先更新数据库,再删除缓存”策略; 项目实践:需结合场景说明技术选型、具体实现和优化效果。 掌
2025-10-24 00:39:50
689
1
原创 致在校生:AI浪潮席卷而来,你的Java之路该如何走?
AI不会淘汰Java,但会淘汰不会使用AI的Java程序员。Java在企业级开发的根基依然稳固,而SpringAI等框架的出现,为Java开发者打开了集成AI能力的大门。你的Java经验不是包袱,而是在AI时代竞争的独特优势。给在校生的三步行动指南:筑牢地基(大一大二): 扎实掌握Java核心、数据结构、数据库(MySQL)和网络基础。这是根本,不可动摇。拓展视野(大二大三): 精通SpringBoot生态,了解微服务。同时学习Python基础并了解AI基本概念,以便与AI世界“对话
2025-10-23 22:24:15
873
原创 【春招护航计划】送你一个硬核分布式项目,简历直接“王炸”!全程免费,代码开源
【摘要】本文为应届生量身打造分布式电商项目实战指南,助力春招突围。项目基于Spring Cloud Alibaba技术栈,涵盖Redis高并发、RabbitMQ异步处理、Elasticsearch搜索等核心模块,解决"项目经验不足"的求职痛点。通过完整实践微服务拆分、秒杀架构、分布式事务等企业级场景,学员可获得可直接写入简历的实战成果。项目全程免费开源,包含代码讲解、部署指导和面试话术转化,帮助求职者用真实项目经验应对技术追问。文末号召读者组队学习,将理论知识转化为可演示的竞争力。
2025-10-23 11:07:48
499
1
原创 应届生必备:RabbitMQ面试高频考点解析,从入门到实战
消息队列是解决高并发和分布式系统问题的关键技术,RabbitMQ作为开源消息中间件,通过异步处理、应用解耦和流量削峰提升系统性能。其核心组件包括Producer、Exchange、Queue和Consumer,消息通过交换机路由到队列。RabbitMQ支持多种交换机类型(Direct、Fanout、Topic等),并可通过持久化、手动ACK和死信队列确保消息可靠性。面试中应重点理解其核心思想,结合项目场景展示应用能力,同时动手实践加深理解。掌握这些知识能帮助应届生在后端开发面试中脱颖而出。
2025-10-23 10:33:37
989
原创 应届生必备:Docker面试高频考点解析,助力成为“容器化”人才
Docker作为现代软件开发的核心技术,已成为应届生面试必备技能。本文从基础概念、实战操作到底层原理,系统讲解Docker核心知识点:1) Docker通过镜像解决环境一致性问题,实现轻量级隔离;2) 镜像与容器关系类比"类与实例",常用命令包括pull/run/exec等;3) 相比虚拟机,容器采用操作系统级虚拟化,利用Namespaces和Cgroups实现隔离;4) 面试需理解容器化思想,结合项目实践经验,展现学习能力。掌握Docker不仅能应对技术面试,更是快速融入现代开发流程的
2025-10-23 10:07:17
1328
原创 致应届生:2025年Java实习生面试高频考点解析与突破
针对应届生竞争加剧的情况,本文从面试官视角梳理核心考点。重点包括:1) Java基础(面向对象特性、==与equals区别、String相关类);2) 集合框架(HashMap原理、线程安全实现);3) 并发编程(线程创建、锁机制、volatile、线程池);4) JVM(内存结构、GC算法)。建议应届生深入理解原理而非死记硬背,并尝试结合项目经验阐述。掌握这些核心知识能帮助在基础考察中脱颖而出。
2025-10-23 09:16:17
934
1
原创 Java转C#可行?
本文为Java开发者提供转向.NET开发的实用指南,从核心理论到面试技巧。第一部分对比Java与.NET的核心概念,包括平台运行时、C#语言特性、生态框架等。第二部分聚焦面试准备,包括简历优化、技术复习清单和回答策略,强调学习能力和基础优势。文章建议通过实践项目巩固技能,并列出常见面试问题。最后给出行动路线:安装开发工具、学习官方教程、动手实践项目、模拟面试。全文突出Java与.NET的相似性,帮助开发者高效转型。
2025-10-22 17:53:53
1017
原创 Java实习生对自我的重新认识以及发展规划
《Java后端进阶路线图:从开发到架构的跃迁》摘要 本文为Java开发者规划了一条从准中级到高级的进阶路线,分为三个阶段:6个月内聚焦性能优化与高并发,建立技术优势;6-18个月培养架构思维,掌握微服务与分布式设计;18-36个月转向业务架构,实现技术驱动业务。作者强调通过实战项目、技术分享和博客输出建立个人品牌,同时建议保持技术视野,平衡深度与广度。计划特别指出要避免陷入"基础舒适区",通过定期复盘和笔记体系确保成长质量,最终实现从代码实现者到系统设计者的角色转变。
2025-10-22 14:00:00
1660
1
原创 Java后端小白对到来的Web3.0的思考
摘要: 一位Java后端实习生被Web3.0职位吸引,思考传统开发与去中心化的差异。他认为,Java的面向对象思维、严谨逻辑能力与Web3.0的智能合约开发高度契合,而数据库经验也能迁移至链上数据处理。Web3.0职位如智能合约工程师、工联开发工程师对Java开发者具有天然适配性。他计划在深耕Java的同时,逐步学习区块链原理与智能合约开发,为未来技术融合做准备。文章强调,传统开发与Web3.0并非对立,而是思维与技能的延伸拓展。
2025-10-22 09:36:05
756
原创 从零开始:Git 项目初始化与版本管理完全指南
本文介绍了Git的基本工作流程和日常开发实践。主要内容包括:1)Git核心概念,即代码从工作目录到暂存区、本地仓库再到远程仓库的完整流程;2)项目初始化四步法:初始化仓库、创建文件并暂存、首次提交、连接远程仓库;3)日常开发的"黄金三部曲":修改-暂存-提交-推送;4)最佳实践如规范的提交信息、状态检查命令和.gitignore文件使用。文章强调频繁提交、清晰信息和小改动原则,帮助开发者快速掌握Git基本操作流程。
2025-10-21 16:21:38
1121
原创 一次SSH连接测试带来的困惑与顿悟:为什么我没输入密码就成功了?
本文通过作者一次SSH连接测试的经历,揭示了非对称加密认证的自动化原理。作者在未输入密码的情况下成功连接GitCode,这看似反直觉的现象背后是SSH密钥对的精妙设计:公钥(锁芯)配置在服务器端,私钥(实体钥匙)由客户端自动调用完成认证。整个过程无需人工干预,体现了"一次配置,终身无缝使用"的设计理念。这一经历让作者深刻认识到,理解技术底层的自动化机制比单纯执行命令更有价值,也展现了现代安全通信的精妙之处。
2025-10-21 16:05:26
771
原创 中国巡天望远镜发射成功:一次对宇宙的探索,一次对科技的创新,一次对合作的推动
它还配备了高精度的光谱仪、极端紫外相机等多种探测器,能够对不同波段的电磁辐射进行观查,它还利用了信息技术和智能化手段,提高了数据处理和传输效率。这些都是人类对宇宙最基本、最核心、最前沿的问题,也是人类对自身存在和意义最深刻、最根本、最永恒的探索。它还将对银河系和外星系的形成和演化、恒星和行星系统的物理过程、太阳系内的小天体等进行深入研究,寻找可能存在生命的行星。它是对人类对宇宙的探索和认知的一次重大贡献,是对我国科技创新能力和水平的一次全面提升,是对我国参与国际空间科学合作的一次积极推动。
2023-04-18 08:50:38
624
原创 为什么这里的int型指针变量为8字节
#include <stdio.h>void test1();int main(){ test1(); return 0;}void test1(){ int num = 100; //取变量地址用& //&num代表标量的num的起始地址 printf("%p", &num);//输出num的起始地址 //需求:定义一个指针变量 保存num的空间地址 //在定义的时候:*说明p是指针变量
2023-01-14 18:52:49
301
原创 一个写给自己,鼓励自己的小程序,拒绝躺平,奋斗的骚年加油。我与你同行
#include <stdio.h>int main(){printf("请输入你今天的开心值,以1到5为标准");int number = 0;scanf_s("%d", &number);switch (number){case1: printf("开心\n"); break;case2: printf("快乐\n"); break;case3: printf("狂欢\n"); break;
2022-09-19 22:46:06
337
1
原创 初学者,哈哈哈
#include <stdio.h>int main(){ //一个专为收银台服务员编写的小程序 double price = 0.0, money = 0.0; printf("请您用扫码机读入商品价格"); scanf_s("%lf", &price); printf("请输入顾客给的票额\n"); scanf_s("%lf", &money); double $ = money - price; if ($
2022-09-19 01:38:27
166
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅