ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

10个提升开发效率的工具,告别琐事重复劳动

10个提升开发效率的工具,告别琐事重复劳动 写代码这件事真正让人心累的往往不是某个算法想不出来而是环境、依赖、联调和找文件这类琐事。今天编译报错查两小时明天接口超时抓包看半天后天线上日志翻不到……一天下来真正坐在那里写业务代码的时间可能连一半都不到。这篇文章要聊的就是从我自己工作流里筛出来的10个让开发人员工作更轻松的工具它们不负责炫技也不解决“代码怎么写”的问题而是把写代码周边的重复劳动尽可能降下去让你把精力花在该花的地方。先说好这不是工具发布会也不是“装机必备”清单。下面每一件我都至少用了半年以上踩过坑、吃过亏才敢拿出来分享。我会把适用场景、核心用法、典型问题和心得体会都写清楚特别是那些常规文档里不会写的细节尽量不留死角。无论你是刚入行的新人还是带了几年团队的老手应该都能从中找到几样能立刻改善体验的东西。1. 先搞清楚什么工具才真正让你“工作更轻松”很多人有一个误解觉得工具越高级越好装上就等于效率翻倍。我见过一个同事电脑里装了十几个效率软件一个文件查找工具、一个截图工具、一个剪贴板增强、一个命令面板、一个窗口管理最后每天花在“打开工具”上的时间比省下来的还多。选工具的核心逻辑从来不是“越多越好”而是“能不能嵌进你现有的工作流减少上下文切换”。我挑工具一般就看三点。第一是否跨平台或者能搞定当前主力系统的刚需场景换电脑、换公司不用重新折腾。第二是否开源免费或者有足够良心的免费版个人开发者不心疼团队推行也没有授权压力。第三是否能和其它工具组合使用而不是又造一座孤岛。比如一个终端工具如果只做得好美化但连 SSH 都管理不了那它在我这里的价值就大打折扣。为了让下面十样东西不至于变成零散清单我把它们按工作场景分成了四类终端与本地效率、接口与排查、数据库与运行环境、文档与协作。先放一张总览表方便你按图索骥。编号工具分类主要场景1Tabby终端与本地效率SSH 会话管理、跨平台终端、自带 SFTP2Everything终端与本地效率Windows 文件秒搜、日志与配置定位3uTools终端与本地效率插件化效率工具箱、多功能合一4Apifox接口与排查接口调试、Mock、文档一体化5Charles接口与排查网络抓包、HTTPS 解密、请求改写6DBeaver数据库与运行环境多数据库客户端、ER 图、执行计划7Docker Compose Portainer数据库与运行环境环境版本化、容器可视化管理8Volta数据库与运行环境Node 版本按项目自动切换9Obsidian文档与协作本地 Markdown 知识库、双向链接10GitKraken文档与协作Git 图形化操作、分支与冲突可视化后面每一节我都会讲它解决什么痛点、怎么用最顺、有哪些坑要避开。2. 终端、搜索、效率工具箱每天点最多遍的地方2.1 Tabby把终端从“能用”变成“好用”命令行是程序员的半条命但 Windows 默认的 CMD 和 PowerShell 在开发场景里真的不够看。尤其是要同时维护几台服务器、又要在本地跑命令的时候终端开一屏、换一个 IP 重新连一次那种体验非常割裂。Tabby 是我目前的主力终端一个基于 Electron 的跨平台开源项目Windows、macOS、Linux 都有一致体验最打动我的不是皮肤多漂亮而是它把 SSH 会话管理做得很顺手。我在 Tabby 里会把线上机器的 SSH 配置保存为一个个 profile常见登录方式直接填在连接设置里连的时候敲两下就能进去不用每次翻笔记找 IP、再手动输密码。如果服务器开了密钥登录把私钥文件路径填好连密码环节都省了既安全又少一步操作。Tabby 还内置了 SFTP 面板连上服务器之后可以直接拖文件不用再单独开一个 WinSCP 或者 FileZilla。我平时查线上配置、拉取日志文件基本都在同一个窗口里完成。实际操作层面有几个细节值得注意。分屏功能我很常用本地和服务器命令并排看方便对比输出要传文件到大内网跳板机时可以用它集成的 Zmodem 协议服务端装 lrzsz 之后敲 rz 直接弹文件选择框比 sftp 命令快得多。主题和快捷键可以按自己习惯调但我不建议一开始就沉迷美化先保证日常连接、复用、传文件这三件事顺畅才是它最大的价值。提示不管用哪个终端工具生产环境登录我都不建议直接用密码方式保存尽量上密钥。一方面杜绝密码泄露风险另一方面也省去每次输入的麻烦。Tabby 的私钥配置在 profile 的认证设置里选择密钥文件即可。2.2 Everything日志文件和配置文件秒级定位开发机上找文件这件事难度经常被低估。IDE 里的搜索能搜项目内容但项目文件太多、或者要找的是某个日志文件、某个.jar包、某个藏在系统目录里的配置文件时IDE 就完全靠不住了。Windows 自带的资源管理器搜索更是慢到让人怀疑人生尤其在大目录里跑一次全盘搜索等结果的那几分钟足够喝一杯水了。Everything 解决的就是“按文件名秒级定位”这个问题。它利用 NTFS 文件系统的 MFT 主文件表建立索引搜索速度能做到输入关键词立刻出结果我第一次用的时候确实有被震撼到。它支持一套非常轻量但够用的语法比如用空格代表 AND用ext:log限定扩展名用路径前缀圈定范围用!排除某个目录。config ext:json D:\project 日志 !C:\Windows ext:log第一句的意思是在D:\project目录下搜索名字里带 config 的 JSON 文件第二句是在全盘找日志文件但排除 Windows 系统目录。这套语法不用背最多半小时就能形成肌肉记忆。我还会把它设置成开机自启动并用快捷键随时呼出。现在不管是找排查问题的日志还是定位某个混淆后的构建产物基本都能在几秒内完成。有一点需要说明Everything 默认只索引文件名不索引文件内容。真要搜文件里的文字它也有配套的内容搜索服务但日常最频繁的需求其实是“我知道大概叫什么名字但忘了在哪个目录”这个场景用 Everything 再合适不过。2.3 uTools把碎片工具收进一个框项目多了之后开发机上的零碎小工具会变得非常可怕。今天装个取色器明天装个二维码生成器后天又加一个 JSON 格式化每个都只占很小一块地方但装到后来你可能根本记不清哪个是哪个桌面上图标密密麻麻。uTools 的思路是用一个搜索框把这类工具全部变成插件随用随取。按下 AltSpace 呼出输入框输入“json”就能格式化剪贴板里的 JSON输入“翻译”能直接查词输入“编码”可以做 Base64、URL 编解码输入“时间戳”可以快速转换时间。它有一个插件市场几乎你能想到的轻量工具都能在里面找到。我自己的插件列表常年控制在十个以内除了上面几个还有二维码生成、正则测试、颜色拾取基本覆盖了日常临时需求。uTools 还有一个我很喜欢的能力就是自定义快捷命令。比如你可以在设置里配置一条命令输入date直接输出当前时间的各种格式输入uuid生成一条 UUID省得每次去在线工具站复制。这些场景单独写脚本也行但统一收进一个搜索框里上下文切换成本最低。要提醒的是插件别贪多装到二十几个之后输入一个关键词要翻好几页才能找到目标插件那就本末倒置了。3. 接口联调和抓包排查问题定位快不快全靠这俩工具3.1 Apifox接口调试、Mock、文档三合一前后端联调是研发流程里最容易被低估的痛点。传统的方式通常是后端用 Swagger 生成接口文档前端拿着文档在 Postman 里手调Mock 数据又靠另一套工具维护。三样东西各管一段接口一变文档没更新测试数据对不上扯皮的功夫比写代码还多。Apifox 的思路是把接口调试、文档、Mock 和自动化测试放进一个工作区让接口定义成为唯一事实来源。实际操作上后端同学在 Apifox 里维护接口定义填 URL、参数、返回结构前端直接就能拿到一份实时文档并且可以在前端项目里引用 Mock 数据联调不用等后端把服务完整跑起来。Apifox 支持直接导入 Swagger/OpenAPI 格式也支持从 Postman 集合导入迁移成本很低。我自己的习惯是每次接口定义有调整先在 Apifox 里改再生成代码或导出到仓库这样团队里大家对接口状态都有一致的认知。调试方面Apifox 也能完成 Postman 的大部分工作。它支持环境变量管理可以把{{baseURL}}、{{token}}这种公共参数抽出来在 dev、test、prod 几套环境之间一键切换不用每次改 URL 和鉴权头。请求断言也内置了比如状态码是不是 200、返回里某个字段是否符合预期可以在请求后执行校验逻辑。提示环境变量千万别写死在请求路径或者脚本里。我见过一个团队所有请求的域名都直接拼在 URL 里切换环境时要全局替换改漏一个就开始出奇怪的问题。正确做法是统一用{{baseURL}}这种占位符环境配置里定义好后面对接新环境只动配置不动请求。3.2 Charles抓包不是玄学是基本功排查前端传参对不对、后端返回是不是符合预期最直接的手段就是抓包。Charles 是我用了很多年的工具Java 写的Windows 和 macOS 都能跑。它的核心价值是让我能看到程序发出的每一个请求长什么样URL、请求头、请求体、响应状态码、响应头、响应体一目了然。测试环境偶尔返回 502前端最常说的就是“我这边没问题”后端最常说的是“我这里也没收到请求”。到底是谁的问题打开 Charles 看一次请求就能定位。如果请求从没到达服务器那是前端或网络问题如果请求到了但返回异常那后端跑不掉。这种纠纷用抓包结果来说话最公平。Charles 抓 HTTPS 需要额外配置 SSL Proxying步骤一般是电脑上打开 Charles在手机或客户端里配置代理指向这台电脑的 IP 和端口 8888然后访问chls.pro/ssl下载安装证书并在 Charles 的 SSL Proxying 设置里把目标域名加进去。之后就能看到解密的 HTTPS 请求内容了。它还支持 Map Local可以把某个接口的响应映射到本地 JSON 文件调试前端异常态时特别好用不用真的去后端造数据。玩 Charles 最重要的教训是用完一定要把系统代理关掉或者退出 Charles。否则你会发现某天手机突然上不了网了第一反应以为是服务挂了折腾半天才发现是代理还挂在那边。另外抓包和业务侧无关纯属研发联调的本地手段不要把它用在任何不该用的地方保护数据隐私是底线。4. 数据库、容器、运行环境把重复的环境搭建流程摊平4.1 DBeaver一个工具连接所有数据库团队里数据库五花八门MySQL、PostgreSQL、Oracle、SQLite、ClickHouse 混着用如果每换一种数据库就装一个新的客户端光维护这些客户端就够受的。DBeaver 是 Eclipse 系的数据库管理工具开源社区版免费背后通过 JDBC 驱动连接数据源所以能连的数据库类型极其丰富。我平时开发用 PostgreSQL偶尔查客户的 Oracle 库还要导一些 SQLite 数据DBeaver 一个工具全包了不用在几个客户端之间来回切。它对常用操作做了不少可视化处理比如看表结构、编辑数据、执行查询结果导出都是图形界面点一点就能完成。ER 图功能在梳理老系统表关系时特别好用能直接看到表之间的外键连接省得一遍遍跑数据字典的 SQL。查询排查性能问题的时候DBeaver 也能帮忙。选中一条 SQL右键执行计划可以看到数据库打算怎么查这张表是不是走了索引、有没有全表扫描排查慢查询的时候比盲猜靠谱得多。导出结果集也是高频率操作支持 CSV、Excel、JSON 等格式数据量不大的时候直接导出发给业务核对省去来回写脚本的时间。数据库客户端这类工具核心就一个字稳。DBeaver 打开大表的时候我建议务必手动加 WHERE 条件否则一条SELECT * FROM 大表内存可能直接爆掉。另外公司内网如果走了统一的跳板机或 CAS 认证连接 URL 里可能需要额外拼参数首次配置时多试几次配好了保存下来后续就不会再折腾。4.2 Docker Compose Portainer环境版本化新同事一天上手新手进团队最痛苦的环节是什么配环境。装 Java、装 Node、装 MySQL、装 Redis、装消息队列版本还不一定对得上折腾一天是常事。用 Docker Compose 把中间件全部编排到文件里之后这个问题基本就消失了。新同事只需要装一个 Docker克隆仓库执行docker compose up -d几分钟就能拿到一套和线上对齐的本地环境。Understand 一下它解决的本质问题环境是代码的一部分。以前环境是存在某人脑子里的搭一次就失传了现在环境定义在docker-compose.yml里跟着仓库走任何人 clone 下来都可以复现。我通常会把 MySQL、Redis、Nginx 这类依赖写成 Compose 文件端口、密码、数据卷全部固定下来。version: 3.8 services: mysql: image: mysql:8.0 container_name: local-mysql ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: myapp volumes: - mysql-data:/var/lib/mysql redis: image: redis:7.2 container_name: local-redis ports: - 6379:6379 volumes: mysql-data:这个文件里有个关键习惯镜像版本不要用latest一定要固定到大版本甚至具体小版本。否则某天镜像更新了本地环境和同事环境可能就不一致了排查问题又变成一场灾难。数据卷记得命名别用匿名卷不然容器一删数据也跟着没了。Portainer 则是给 Docker 加了一层 Web 管理界面。如果你不想为了看容器状态敲一堆docker ps和docker logsPortainer 能让你在浏览器里直观地看到所有容器、镜像、网络的运行情况启停容器、看日志、进终端都点一点就行。对不习惯命令行的同事很友好也方便团队里非后端角色自己排查环境问题。4.3 VoltaNode 环境不折腾前端项目一多Node 版本切换就是绕不开的坑。有些老项目还在用 Node 14新项目已经在 Node 20 上跑了手动切版本效率低且容易忘。nvm 和 n 都解决了“切换”的问题但它们的模式是“人记得切”。项目多了以后总会有那么几次忘了切版本装依赖装出一堆莫名其妙的报错。Volta 的思路完全不一样版本跟着项目走。你在项目根目录执行一次volta pin node18它会把 Node 版本写进 package.json 的 volta 字段里之后任何人只要用 Volta 进入这个目录Node 版本都会被自动对齐。不再需要手动干预也不会出现“我这边跑得好好的啊”这种因为版本不一致导致的问题。# 安装 Node 并设置为全局默认版本 volta install node18 # 在项目目录里固定版本会写入 package.json volta pin node18 # 用 Volta 安装并使用 npm 全局包 volta install yarn1.22它不仅能管理 Nodenpm、yarn、pnpm 这类工具链也能一并管。新同事入职装好 Volta进项目目录自动切到对的版本几乎不用教。这个工具的好只有经历过一次“因为 Node 版本不对导致依赖装不上”的人才能真正体会。5. 文档与 Git 协作沉淀经验少走弯路5.1 Obsidian开发文档的本地知识库技术文档最怕散落在协作平台里按时间线往下沉三个月后想找当时某个决策的原因翻半天找不到入口。要么就是团队 Wiki 写了没人维护最终变成垃圾场。Obsidian 是本地 Markdown 笔记工具所有文档都是纯文本存在你自己的目录里天然适合版本管理也天然不怕平台关停。Obsidian 最有特色的能力是双向链接。用[[另一篇文档]]可以直接把当前文档和另一篇链接起来之后不管从哪一篇点进去都能跳到关联的文档最终形成一张知识图谱。我建了一个开发笔记仓库Vault每个服务一条索引页链接到它的架构说明、接口文档、故障复盘和踩坑记录。新接手的同事从索引页出发能把一个服务的来龙去脉在半小时内理清楚而不是去问十个人、翻八个群聊记录。Obsidian 插件生态也很丰富但我建议保持克制。核心体验就是本地写 Markdown、双向链接、标签分类这三个够用了。我目前只加了几个基础插件大部分时间都在原生功能里工作。笔记数据能纳入 Git 仓库换电脑或换虚拟机时直接 clone 下来跨设备的同步问题顺便也解决了。5.2 GitKraken用图形界面把 Git 操作看明白命令行 Git 用久了会形成肌肉记忆日常 add、commit、push 完全不用过脑。但遇到复杂历史、多分支合并、rebase 冲突的时候光靠命令在脑子里构建分支图是很费劲的。GitKraken 是图形化 Git 客户端它把所有分支、提交、合并线画成一张清晰的图一眼就能看清当前在哪个分支上、分支之间差了多少个提交、合并冲突出在哪些文件上。我自己的经验是日常小步提交还是用命令行更顺手但需要做交互式 rebase、解决冲突或者给团队演示 Git 历史的时候GitKraken 能让我从容很多。它处理冲突的时候会左右对照展示两个版本哪些保留、哪些删除、哪些两段都要都能可视化选择比直接在编辑器里看冲突标记更直观。分支图还方便查看某个功能分支什么时候合进来的哪次提交引入了问题。对刚入行不久、Git 操作还不太熟练的同学GitKraken 更像是一条安全绳。你不用担心敲错命令把历史搞乱每一步操作都能在界面上看到操作错了也更容易理解问题出在哪里。命令行技巧当然要学但在“救场”和“理解复杂流程”这两个场景里图形化工具确实省心。6. 工具使用中的典型问题与排查心得工具都有脾气用得多了总会遇到问题。这里整理几个我踩过的高频坑按现象、排查思路、解决方案的格式列出来方便你直接对照参考。现象排查思路解决方案Everything 搜不到移动硬盘 / U 盘里的文件移动盘的文件索引类型可能被设成了“不索引”菜单 Tools - Options - Indexes把对应卷标设为 NTFS 自动索引Charles 配置证书后仍然抓不到 HTTPS 请求可能没在 SSL Proxying 里添加域名或系统代理未生效SSL Proxying Settings 中添加*或具体域名检查代理是否勾选Docker 容器一重启MySQL 数据全没了数据卷用了匿名卷或被删除Compose 文件里给数据库服务声明命名卷如mysql-data:/var/lib/mysqlVolta 安装后终端找不到 node 命令Volta 的 PATH 没有正确写入 shell 配置检查~/.profile或~/.zshrc中是否包含 Volta 的目录重新打开终端Apifox 环境变量切换后请求仍用旧地址请求 URL 里可能写死了域名而非占位符全部改为{{baseURL}}引用确认当前环境为 dev/test/prodTabby 连接服务器经常断线SSH 空闲超时所致在 profile 的连接设置里开启 KeepAlive每隔几秒发一个心跳包最后再多说一个思路层面的事每过半年我会专门花半小时把开发机上不用的工具清一遍尤其是那些“装的时候很兴奋、实际只打开过两三次”的软件。工具是拿来用的不是拿来囤的。真正让你工作变轻松的不是工具列表的长度而是有没有一套稳定、顺手、能长期依赖的工作流。哪怕你只从这篇文章里挑出两三个工具能坚持天天用它们给你省下来的时间和情绪已经远超你阅读这篇文章的投入了。
返回列表