“你老提 go软件,到底是啥?普通人要不要学?是不是又一个被吹上天的效率神器?”说实话,我一开始也犯嘀咕,这里的 go软件,我主要指围绕 Go 语言的那套开发工具和周边软件,比如编辑器插件、格式化工具、测试工具、热重载工具,以及一些用 Go 写出来的小工具,它不是某个一键封神的软件,也不是装上就能月入过万的“神器”,但我用了三个月之后,最大的感受是:go软件真正有价值的地方,不是让你显得很技术,而是帮你把一些重复、琐碎、容易出错的活儿变得可控。
先讲个特别生活化的例子,上个月我帮朋友整理一家小咖啡馆的素材:菜单照片、活动海报、原料清单、外卖平台图,加起来几百个文件,命名乱七八糟,有的叫“最终版”,有的叫“最终版2”,还有“真的最终版”,如果手动改,我大概会改到怀疑人生,后来我用 Go 写了个很小的脚本,批量重命名、按日期归档、压缩图片,再生成一份清单,整个过程没有多高深,代码也不长,但跑完那一刻特别踏实:原来 go软件不是只能拿来做“大项目”,它也可以像一把顺手的螺丝刀,解决眼前这种小麻烦。
这让我对 go软件的第一个观点很明确:别把它供起来,先把它当工具用,很多人一接触 Go,就开始收藏一堆教程、装一堆插件、研究各种框架,最后项目没跑起来,工具倒是装满了,我也干过这种事,刚开始用 VS Code 配 Go 环境时,我一会儿装这个插件,一会儿换那个主题,一会儿研究调试配置,折腾了一晚上,代码只写了二十行,后来我索性只保留最基础的工具链:gofmt 格式化、go test 做测试、go mod 管依赖,再配一个顺手的编辑器,世界突然安静了,go软件的魅力,恰恰是它不太鼓励你花里胡哨,而是让你回到“写清楚、跑起来、能维护”这件朴素的事上。
第二个生活实例是我接的一个小项目,客户要一个很轻的接口服务,功能不复杂:接收表单、存数据、给后台做个简单查询,以前我可能会犹豫要不要上更重的技术栈,但那次我直接用 Go 写,上线前,我用 go test 写了几个不起眼的测试,把参数校验和返回格式固定住;发布时用编译出来的单个可执行文件,往服务器一放就能跑,客户不懂技术,他只关心“能不能稳定用”,我也没跟他讲什么并发、性能,我只说:“先跑一周,有问题我随时改。”那一刻我挺感慨:go软件给普通开发者的安全感,不是因为它让你变成高手,而是因为它把很多工程上的规矩变成了默认动作。
我也有吐槽,go软件不是没有门槛,第一次接触模块管理、环境变量、交叉编译的时候,我也被报错折腾过;有些工具文档写得像“给已经会的人看”,新手容易卡住,所以我的第二个观点是:go软件适合“愿意动手、但不想被复杂配置绑架”的人,不适合只想点两下按钮就完事的人,它更像一辆手动挡小车,学会之后很顺,但一开始要适应,你要是只做很轻的办公自动化,其实用现成软件也行;可如果你经常要处理批量文件、做小服务、写自动化脚本,Go 这套工具确实值得试试。
我现在对 go软件的态度很平和:不神化,也不贬低,它不是万能答案,而是一种很务实的选项,尤其对自媒体作者、小团队、独立开发者来说,go软件最大的好处是“心智负担低”,你不需要每天追新框架,先把基础工具用熟,能写小脚本、能跑测试、能打包发布,就已经赢过很多空谈效率的人了。
如果你问我 go软件值不值得折腾,我会说:值得,但别为了折腾而折腾,先找一个你生活里真实的小麻烦,比如批量改文件名、整理素材、做一个简单接口,然后用 go软件去解决它,等你第一次感受到“原来这事可以这么省心”,你才算真正入门,工具从来不是目的,把日子过顺一点,把活儿干漂亮一点,才是。
