一个普通开发者的效率革命:我用5个免费工具每周省下15小时
不是天才不是架构师只是一个每天被重复劳动折磨的普通程序员。这是我花了2个月摸索出来的真实记录。我为什么开始折腾效率先说下我的背景3年经验的普通后端开发公司用 Java Spring Boot MySQL每天工作量写业务代码 40%、debug 20%、开会 15%、重复劳动 25%那个重复劳动 25%就是我要消灭的目标。什么叫重复劳动我列了几个典型的每次新项目都要复制一遍基础配置30分钟每周写日报、周报45分钟×5 3.75小时查日志、看监控每天30分钟写接口文档每次迭代 1-2小时部署/重启服务每次15分钟一周3次 45分钟每周加起来接近 9 小时。这9小时不是我主动要做的是我懒得做才去自动化的。如果你也有同感继续往下看。工具一Shell 脚本生成项目脚手架每周省 2小时问题每次开新项目我需要src/ ├── main/java/com/example/ │ ├── controller/ │ ├── service/ │ ├── dao/ │ ├── config/ │ └── utils/ ├── resources/ │ ├── application.yml │ ├── application-dev.yml │ └── application-prod.yml ├── pom.xml └── ... 还有10几个文件每次手动创建 复制模板30分钟打底。我的解法写了个 bash 脚本用变量控制一切#!/bin/bash# scaffold.sh - 快速生成 Spring Boot 项目结构PROJECT_NAME$1PACKAGE_NAME$2if[-z$PROJECT_NAME]||[-z$PACKAGE_NAME];thenecho用法: ./scaffold.sh 项目名称 包名echo示例: ./scaffold.sh user-service com.myproject.userexit1fi# 创建基础目录mkdir-p$PROJECT_NAME/src/main/java/$PACKAGE_NAME/{controller,service,dao,config,utils,model}mkdir-p$PROJECT_NAME/src/main/resourcesmkdir-p$PROJECT_NAME/src/test/java# 生成配置文件cat$PROJECT_NAME/pom.xmlEOF ?xml version1.0 encodingUTF-8? project modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.2.0/version /parent !-- 依赖和插件配置 -- /project EOF# 生成 application.ymlcat$PROJECT_NAME/src/main/resources/application.ymlEOF server: port: 8080 spring: application: name:$PROJECT_NAMEdatasource: url: jdbc:mysql://localhost:3306/${PROJECT_NAME}_db?useSSLfalse username: root password: root EOFecho✅ 项目$PROJECT_NAME创建完成echo 路径:$(pwd)/$PROJECT_NAME用法./scaffold.sh order-service com.myproject.order效果30秒完成误差率降到0。为什么这个有用你看不是什么高科技。就是把你每次重复做的事写成脚本。关键思路把手交给脚本你只管脑子。工具二Markdown 自动生成日报每周省 3.75小时问题很多公司要写日报。写什么今天做了啥遇到了什么问题明天计划啥我用了个极简方案终端里快速记录自动格式化成 Markdown。#!/bin/bash# daily.sh - 快速记录并生成日报TODAY$(date%Y-%m-%d)LOG_FILE$HOME/daily-log.txtOUTPUT_DIR$HOME/daily-reportsmkdir-p$OUTPUT_DIRecho 记录今日工作内容 echo请输入今天做的事每行一个完成后输入 END$LOG_FILEwhiletrue;doread-rlineif[$lineEND];thenbreakfiecho$line$LOG_FILEdoneecho 记录今日问题 echo没有就输入 NONEread-rissuesif[$issuesNONE];thenissues无fi# 自动生成 Markdowncat$OUTPUT_DIR/daily-${TODAY}.mdEOF # 日报 -$TODAY## 今天完成 EOFwhileIFSread-rline;doecho-$line$OUTPUT_DIR/daily-${TODAY}.mddone$LOG_FILEcat$OUTPUT_DIR/daily-${TODAY}.mdEOF ## 今日问题$issues## 明日计划 待补充 EOFecho✅ 日报已生成:$OUTPUT_DIR/daily-${TODAY}.md每次记录只要 2 分钟格式化零时间。进阶玩法如果你用 Linux/macOS可以结合tmux或screen把日志记录做成常驻任务。甚至可以用cron每天下班前自动弹出提醒。工具三用 ripgrep 替代 grep每天省 15分钟问题查代码里的某个方法、某个字段用CtrlF一个文件一个文件翻我的解法装ripgrep简称rg然后# 找所有包含 UserController 的文件rgUserController# 只找 .java 文件rgUserController--typejava# 找方法调用显示行号rgUserService\.createOrder-n# 忽略 node_modules 和 .gitrgTODO--no-ignore速度快到飞起。百万行代码库搜索结果通常在 0.1 秒内。安装# macOSbrewinstallripgrep# Ubuntu/Debiansudoaptinstallripgrep# Windows (使用 winget)wingetinstallBurntSushi.ripgrep# 或者直接下载二进制文件# https://github.com/BurntSushi/ripgrep工具四用 Watchfiles 自动监控日志每天省 30分钟问题开发时看日志tail-flogs/app.log然后一直盯着终端看我的解法Python 写的日志监控小脚本关键词高亮 自动告警#!/usr/bin/env python3logwatch.py - 简易日志监控工具importtimeimportsysfrompathlibimportPath LOG_FILEPath(logs/app.log)KEYWORDS[ERROR,WARN,Exception,timeout,OOM]defwatch_log():ifnotLOG_FILE.exists():print(f⚠️ 日志文件不存在:{LOG_FILE})return# 定位到文件末尾withopen(LOG_FILE,r,encodingutf-8)asf:f.seek(0,2)print(f 开始监控:{LOG_FILE})print(f 监控关键词:{, .join(KEYWORDS)})print(-*50)whileTrue:linef.readline()ifnotline:time.sleep(0.5)continue# 去除换行符lineline.strip()# 检查关键词forkwinKEYWORDS:ifkw.lower()inline.lower():print(f\n⚡ [{kw}]{line})breakelse:print(line)sys.stdout.flush()if__name____main__:watch_log()效果普通日志正常输出碰到 ERROR/WARN 自动高亮显示不会再漏掉关键信息进阶可以接上 Telegram Bot 或企业微信 webhook线上出问题时直接推送通知。工具五用 Docker Compose 一键部署每次省 15分钟问题每次部署服务启动数据库启动 Redis编译项目运行 jar 包验证服务是否正常手动操作 5 分钟出错再来一遍。我的解法一个docker-compose.yml搞定version:3.8services:app:build:.ports:-8080:8080environment:-SPRING_PROFILES_ACTIVEdev-SPRING_DATASOURCE_URLjdbc:mysql://db:3306/myapp?useSSLfalse-SPRING_DATASOURCE_USERNAMEroot-SPRING_DATASOURCE_PASSWORDrootdepends_on:-db-redisvolumes:-./logs:/app/logsdb:image:mysql:8.0environment:MYSQL_ROOT_PASSWORD:rootMYSQL_DATABASE:myappports:-3306:3306volumes:-mysql_data:/var/lib/mysqlredis:image:redis:7-alpineports:-6379:6379volumes:mysql_data:一条命令完成所有事情dockercompose up-d--build回滚dockercompose downdockercompose up-d总结我的效率公式效率 识别重复劳动 × 自动化工具 × 坚持优化说人话就是记录你每天做的所有事写下来标出重复的部分这些是目标为每个重复项找一个自动化方案脚本、工具、流程坚持用坚持改不需要一开始就搞得很复杂。从每周省2小时开始比从我要改变世界开始要实际得多。我的数据搞了2个月统计了一下项目优化前优化后节省项目初始化30分钟30秒29.5分钟日报45分钟2分钟43分钟查代码手动翻rg 搜索每次省20分钟看日志手动 tail自动监控每天省15分钟部署手动5步一条命令每次省4分钟合计每周节省约 9-15 小时取决于项目频率。这些时间我拿来学了点 Go看了几本技术书甚至多了点时间摸鱼bushi写在最后我不是什么技术大牛用的工具也都是免费的、开源的。但愿意花时间去优化细节这件事本身就是拉开差距的地方。技术这条路拼的不是一瞬间的爆发而是每天进步一点点。从今天开始挑一个你每天重复做的事试试自动化它。2个月后你会感谢现在的自己。如果你觉得这篇文章有用欢迎点赞收藏。如果你有更好的效率工具评论区告诉我一起交流。关于我普通后端开发Java 为主偶尔折腾 Python 和 Go。分享技术实战经验和效率优化心得。关注我一起成长。