让AI成为你的好帮手 - AI时代下的程序员
2023-06-24
今天给大家分享两个我利用AI帮忙解决实际工作问题的例子
案例一,计算75分位LCP
最近我们上了一个性能优化方案,利用CDN缓存SSR返回的HTML,这样命中缓存的请求可以直接从CDN节点返回,可以极大的减少TTFB耗时。
从上线后的数据来看,也确实如此,从下图可以看出,命中缓存的TTFB 75分位只有300ms左右。
不过我们还想看命中缓存的LCP 75分位数据,可是从上图可以看出,这个数据是0。
咨询过相关同学了解到,「是否命中CDN缓存」这个属性只上报TTFB数据有加,LCP数据并没有这个属性,所以加上这个筛选条件后数据为0。
不过你可以把源数据下载下来(CSV格式),然后自己计算这个指标。
这方面我可没什么经验,如果按照传统做法,我肯定是google一下NodeJS怎么读CVS文件,然后再google一下怎么计算75分位。这一次来试试ChatGPT吧
以下就是ChatGPT给的代码,而我最终也用这段代码计算出了我想要的数据
import pandas as pd# Read the CSV file into a pandas DataFramedf = pd.read_csv('your_file.csv')# Calculate the 75th percentile for each columnpercentile_75 = df.quantile(0.75)# Print or access the 75th percentile valuesprint(percentile_75)
案例二,modulepreload特性检测
Remix框架是用es module来加载JS文件的
<script type="modile"> import "/build/manifest-93FD8568.js"; import * as route0 from "/build/root-VHJ7ENMD.js"; import * as route1 from "/build/routes/docs/$lang.$ref-W6FTIE6M.js"; import * as route2 from "/build/routes/docs/$lang.$ref/index-536YLBTN.js"; window.__remixRouteModules = {"root":route0,"routes/docs/$lang.$ref":route1,"routes/docs/$lang.$ref/index":route2}; import("/build/entry.client-YUGSKNAS.js");</script>
同时使用 modulepreload
来提前加载JS
<link rel="modulepreload" href="/build/manifest-93FD8568.js"><link rel="modulepreload" href="/build/entry.client-YUGSKNAS.js"><link rel="modulepreload" href="/build/_shared/chunk-4T7MF43V.js">...
但是从caniuse的数据看,支持率并不是非常好。所以我想自己统计一下数据,看看对于我们的用户,支持率是怎样的。那怎么判定用户是否支持 modulepreload
呢?
这里我用的是phind,一个面向开发者的AI搜索引擎。相比于ChatGPT有两个优势
- 不需要注册账号,对于国内用户,注册ChatGPT还是比较麻烦的
- 会爬取最新的数据来回答问题。而ChatGPT免费版本只有2021年前的数据
来看一下效果如何
很快的找到了答案。我们对比一下google的搜索结果
一整页也没有看到我们想要的答案。
结论
从上面两个实际的例子可以看到,AI可以极大的缩短我们获取信息,咨询的路径,极大的提升我们的效率。不过AI提供的信息也不一定准确,需要你自己辨别和验证。
从ChatGPT面世以来,AI,大模型可以说非常的火热,程序员们也担心自己工作是不是要丢了。我个人的建议是,与其担心被替代,不如拥抱变化,把AI变成自己的好帮手,成为一个更好的程序员