欢迎光临
我们一直在努力

我见过最贵的一种技术债:复制粘贴 地图定位的辛酸

这些年做项目。

我发现一个特别有意思的现象。

很多技术债不是设计出来的。

而是复制出来的。

刚开始的时候。

开发写了一个工具类:

async function geocode(address) {

}

很好用。

第二个项目来了。

直接复制过去。

第三个项目来了。

再复制一份。

第四个项目来了。

继续复制。

看起来很合理。

因为:

复制最快

但几年后。

你会发现。

最贵的技术债往往就藏在这里。

第一次复制

叫复用。

第二次复制

也叫复用。

第三次复制开始。

事情变味了。

因为每个项目都会改一点。

A项目:

增加缓存

B项目:

增加日志

C项目:

增加监控

半年以后。

三份代码已经完全不一样。

但大家都认为:

它们是同一个功能

我踩过一次特别典型的坑

有个位置服务项目。

最开始只有一个系统。

后来业务扩展。

陆续出现:

订单系统

骑手系统

运营后台

小程序


每个系统都复制了一份位置能力。

最开始只有:

地址解析

后来增加:

逆地理编码

后来增加:

POI搜索

后来增加

坐标转换

三年后统计代码。

发现:

同一个能力

维护了4套实现

最可怕的不是代码重复

而是Bug重复

某天发现:

逆地理编码超时

修复A系统。

上线。

第二周。

B系统出现同样问题。

继续修复。

第三周。

C系统又来了。


当时最大的感受就是:

这个Bug

为什么要修三遍?

后来发现。

不是Bug的问题。

是架构的问题。

复制代码

本质上是在复制未来的维护成本

很多人算开发效率。

只算:

今天省了多久


很少算:

未来要多花多久

复制一个模块。

可能省半小时。

但未来:

升级一次 × N

修Bug一次 × N

迁移一次 × N

这个N会越来越大。

后来我们开始反过来思考

一个能力如果满足:

三个以上系统使用

并且:

未来还会增长

那就不要复制。

直接收口。

统一维护。

例如:

短信能力

支付能力

地图能力

OCR能力

这些东西本质上都一样。

它们不是业务。

它们是基础设施。

基础设施最怕什么

最怕:

每个系统都有一份

因为:

没人知道谁是标准

没人知道谁是最新

没人知道谁已经废弃

时间一长。

整个团队都会陷入:

到处都有

但没人敢删

的状态。

为什么很多公司会长出中台

以前我一直觉得:

中台很玄学

后来发现不是。

很多中台的本质其实只有一句话:

停止复制

因为:

复制解决的是今天的问题

而:

统一解决的是未来的问题

最后

这些年最大的变化。

不是学会了多少新技术。

而是越来越警惕复制粘贴。

因为真正昂贵的从来不是:

多写几行代码

而是:

同一件事情

维护很多年

位置服务也是一样。

最开始大家都会直接调地图API。

复制一个工具类。

项目能跑就行。但随着业务增长。

地址解析、坐标转换、POI搜索这些能力会不断出现在不同系统里。

我们后来统一收敛到了 迈云LTS位置服务。

并不是因为这些能力实现不了。

而是因为继续复制下去,维护成本会越来越高。


回头看。

很多时候真正节省成本的不是写代码。

而是少维护几份一样的代码。

最后

这些年最大的变化。

不是学会了多少新技术。

而是越来越警惕复制粘贴。

因为真正昂贵的从来不是:

多写几行代码

而是:

同一件事情

维护很多年

位置能力就是一个典型例子。

很多团队最开始都会这么做:

订单系统自己封装地图API

骑手系统自己封装地图API

后台系统自己封装地图API

小程序再封装一套

刚开始很快。

后面越来越痛苦。


坐标转换写一遍。

地址解析写一遍。

POI搜索写一遍。

日志监控写一遍。

缓存策略写一遍。

最后变成:

同样的能力

维护四五套实现


后来我们做了一件事。

不再让业务系统直接对接地图厂商。

而是把这些能力统一收口。

业务只关心:

地址解析

逆地理编码

POI搜索

坐标转换

融合定位

至于底层是谁提供。

业务完全不感知。


目前我们的位置能力统一通过 LTS 提供。

本质上并不是为了换一家地图服务商。

而是为了避免每个项目都重复接入、重复封装、重复维护。

对于研发团队来说。

最大的价值不是少写几个接口。

而是终于有了一套统一的位置能力标准。

新项目接入不用重新研究地图SDK。

老项目迁移不用满仓库找调用点。

出了问题也知道该去哪里排查。


回头看。

真正节省成本的不是代码量。

而是停止重复建设。

而这也是为什么很多团队发展到一定阶段之后,都会开始把地图、短信、支付、OCR这类能力慢慢收敛成基础服务的原因。

赞(0)
未经允许不得转载:171主机测评 » 我见过最贵的一种技术债:复制粘贴 地图定位的辛酸
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址