📄🦌🙌🐟🏖️
杨杨得议
把复杂变简单,让技术创造价值
精选
按住 Shift 横向滚动
管团队这几年,我最大的教训

管团队这几年,我最大的教训

带团队最大的教训是不要把自己当成技术最强的人,否则自己离开后团队无法运转。真正好的管理是搭建制度让团队脱离leader也能正常运转。核心经验分为五块:一是Owner精神,每个人圈定自己领域并配Backup,临时项目用虚拟小组弹性协作;二是轮值分享与故障复盘,强制实战分享并沉淀文档,复盘只找根因和产出改进措施,不追责;三是多维考核,OKR定方向、KPI守底线,加上方案设计、排查能力、知识贡献等软性维度;四是梯队建设,核心岗位必有Backup,识别高潜成员给空间,交叉轮岗提高系统理解;五是经验沉淀,从标准化、流程化、工具化、自动化到产品化逐步升级。最终目标:让团队不需要你也能良好运转,你才有精力思考更大更远的事。

一种超大规模数据导出Excel的实现方法

一种超大规模数据导出Excel的实现方法

文章介绍了使用Java和EasyExcel解决超大规模数据导出Excel时内存溢出的方案。EasyExcel基于流式写入和事件驱动模型,克服了传统POI库内存消耗大的缺陷。核心策略是分页从数据库读取数据,再分批流式写入Excel文件,确保内存中仅保留当前分页数据。通过设置每批20万条数据,在384MB堆内存下稳定导出500万条数据。关键优化包括关闭自动列宽、减少对象复杂度、使用覆盖索引查询、异步导出避免HTTP超时,以及可选并行导出。文章还提供了代码示例和扩展设计,可将导出功能抽象为微服务,通过消息中间件接收数据和任务,动态定义表头,支持结构化与非结构化数据混合导出。

一种文件分片上传的实现方法

一种文件分片上传的实现方法

本文介绍了一种基于Spring Boot和原生JavaScript的文件分片上传实现方案,用于解决大文件上传时网络波动、服务器内存压力及超时问题。核心思路是将大文件切割为10MB分片,前端使用File.prototype.slice分片读取、SparkMD5计算文件MD5,并通过递归上传实时更新进度条。后端采用RandomAccessFile按偏移量随机写入,支持分片乱序到达,结合MappedByteBuffer提升IO性能,避免额外合并开销。所有分片上传完成后,服务端对完整文件进行MD5校验确保完整性。该方案具备扩展性,可基于分片状态记录实现断点续传,或通过MD5比对实现秒传。

从0到1:构建SpringBoot项目脚手架的设计思路与实战

从0到1:构建SpringBoot项目脚手架的设计思路与实战

针对后端开发重复搭建项目、代码风格不统一的问题,基于开源项目 springboot-project-seed 构建可复用脚手架。采用 Spring Boot 3.0.1 + JDK 17,封装统一响应结构(Res<T>)和全局异常处理(@ControllerAdvice),实现 API 行为一致;通过 AOP 日志切面记录请求与耗时,用 ThreadLocal 传递用户上下文;集成 @Async 异步任务、@Scheduled 定时检测 Kafka 消费者掉线并自动重启,以及文件分片上传和 WebSocket 实时推送等实战功能。提供 Dockerfile 及多环境配置,支持一键部署。开发者可直接克隆项目,修改配置后专注于业务逻辑,显著减少重复劳动,提升交付效率。

kolla-ansible部署openstack

kolla-ansible部署openstack

基于VirtualBox和Kolla-Ansible,本文详细介绍了在Debian12上部署OpenStack单机版的完整流程。网络采用NAT-Network与Host-only结合的方式规划控制面、外部和数据面网络。关键步骤包括创建VirtualBox网络、安装虚拟机并配置静态IP、关闭防火墙、更换国内软件源、安装Docker及基础工具。随后通过Python虚拟环境安装Kolla-Ansible(推荐从源码安装),配置all-in-one清单、globals.yml和passwords.yml,执行bootstrap-servers、prechecks、deploy完成部署。最后安装openstack客户端并生成管理员环境变量。读者可据此搭建可供评估的OpenStack环境,并了解常见故障处理(如dbus依赖)。