后端

代码坏味道:不合理命名与重复代码

一. 命名 1.1 命名是否具有业务含义 (1) 命名不精准,用词宽泛,不能有效反应代码含义 从沟通的角度看,这就不是一个有效的沟通。要想理解它,需要消耗大量的认知成本,时间和精力,同样也增加了后来人包括我们自己维护代码的成本。 其中,Info、data、flag、process、handler、build、maintain、manager、modify等,都是属于典型的过于宽泛的名字,当这些名字

深入解析MySQL(7)——SQL调优

1.优化索引 1.1 初始化数据delimiter // create procedure p_init_index_data () begin declare id bigint default 100000; declare age tinyint default 18; declare gender bigint default 1; declare class_id

了解Mach-O文件

Mach-O文件 想要一个应用程序运行起来,那么它的可执行文件格式一定要被操作系统所理解。在Windows系统的可执行文件是PE,而在OS X和iOS 中的可执行文件是Mach-O。 那么Mach-O是怎么生成的呢?苹果公司目前使用的编译器是LLVM,在程序编译时,编译器会对每个文件进行编译,然后生成Mach-O文件,而后链接器会将项目中的多个 Mach-O 文件合并成一个,最终的这个就是我们的可

SpringBoot实现自定义路由覆盖

背景 公司最近有一个项目二期需要对一些功能进行改造,涉及部分框架内置业务接口个性化定制,兼容老接口功能并且增加一部分新的数据返回,由于前端调用这些接口分布较多且较为零碎,修改测试成本较大,所以打算在框架层面提供路由覆盖功能,加快项目进度减少无技术含量的修改带来的系统风险 设计 提供自定义注解指定需要覆盖的路由及新路由地址 系统启动时扫描所有注解数据并进行映射处理 注册自定义路由映射配置类 实现

lvs+keepalive+nginx高可用搭建

原文: 介绍 nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能。在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万。nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用

前端小知识Day5

1、数组快速去重 // 此方法仅适用于基本数据类型组成的数组 const arr = [1, 2, 3, 4, 5, 6]; const arr2 = new Set(arr); const arr3 = [...arr2]; 2、数组一些常用的方法 push() 向数组末尾添加一个或多个元素 返回新数组的长度 let arr = [1, 2, 3]; arr.push(4, 5); co

PHP/ThinkPHP 最佳实践:DeepSeek/OpenAI API 实时流式输出 (Streaming) 完整指南

在构建现代 AI 应用时,实时、流畅的响应体验至关重要。本文将基于 ThinkPHP 8 框架 和 Guzzle HTTP 客户端,详细剖析如何搭建一个高效、安全的代理接口,将 DeepSeek 或 OpenAI 等大语言模型的流式 API 实时转发给前端,实现秒级回复效果。以thinkphp8为例,其他框架和原生php可通用。

FlinkSQL一篇文档讲清楚

一、Flink SQLOverview | Apache FlinkFlinkSQL开发步骤 Concepts & Common API | Apache Flink添加依赖:<dependency> <groupId>org.apache.flink</groupId> <artifa