今天九月十号,花树成长 App,上架苹果应用商店了。
官方网站: https://huashu.ygbase.cn/。
这是我第一个上架的苹果应用,解锁了一个全新的里程碑。
时刻
记录日常的想法、发现与碎碎念,不加修饰的真实流动。
因为不想忍受 Nextjs 每次 build 镜像的等待时间,就把现在这个网站使用 Ruby on Rails 技术栈重构了。
Google 的 Web 性能评分也很轻易的突破了 90,之前使用 Nextjs 的时候,只有 40 多。
网站主题也进行了重新设计,使用了两栏,增加了内容宽度和内容展示。
利用业余时间,大概做了 1 周,零零碎碎的在做。
现在网站直接使用 Rails 来渲染页面,减少了前端页面中 JS 的使用和无收益的执行。
中间的过程没有那么轻松,特别是现在的内容和功能都已经不少了。如果没有 AI 辅助,心力和精力还得付出更多。
经过这一番实践和折腾,证明了 Nextjs 并不适合内容发布网站。
开启 VPN 中的系统代理后,本地测试域名 (比如 *.test) 突然打不开了?
错误动作:在代理软件里加 DIRECT (直连) 规则。
这是没用的!因为流量一旦进入代理软件,它就会用公共 DNS 去查这个本地域名,查不到 IP 直接就报错拦截了。
正确姿势:在操作系统的“网络设置 -> 代理忽略名单 (Bypass)”里添加 *.test(或者在代理软件里配置 Bypass 绕过名单)。
核心原理:
流量最先是由操作系统接收到的。
Bypass (绕过):流量根本不进代理软件,操作系统自己处理,用本机 DNS 直接访问。
DIRECT (直连):流量已经进了代理软件,代理软件去尝试直连,但通常会死在 DNS 解析上。
这个问题不是第一次遇到,也都能解决,但是今天是第一次搞明白了。
“手工参与代码的感觉真好,不让 AI 代替自己写代码的感觉真好。”
刚才试了一下新的全局 Cursor 规则,自己参与功能思考,关注代码组织和质量,全身心参与的感觉又回来了。
为了能让自己能够参与到代码组织和编写的过程中,我给 cursor 添加几条全局规则:
1. 帮我设置一下全局 cursor rules,添加一条,只需要给出方案,计划,或者每一步的实现 code,不要替我写。
2. 提交信息中 不要有 Co-authored-by。
3. Another rule: write commit msg for changes, do not commit. i will commit manually.
今天把这个站点添加到了 bing 和 yandex。
接下来可以观察和熟悉这些搜索平台的功能和特点。
随着网站内容变多,Nextjs SSG build的时间也变长了。
之前的考虑是:预渲染页面,少使用 SSR,使页面打开速度变快。最近部署的时候,发现等待的时间变长了,主要卡在 nextjs build 这里。
问了一下 AI, AI 根据问题和网站场景,帮我做了分析。看过 AI 的回答和思考之后,我把 SSG 去掉了,只使用 SSR。这样就又回到了 PHP,Rails 等传统服务的路子。服务端渲染 + 缓存,感觉清爽多了。部署和页面访问的速度都没有问题。
随着实践,能够感受到:技术运用应该是随着问题的出现和解决而使用的,没有标准答案。
React Native 的开发体验挺不错的。
虽然现在很多人都在用 AI 来做 vibe coding,但是经过一段时间的重度实践,我的观点反而是:作为工程师,还是需要保持技术学习,理解和掌握。
不太忙的时候,静下心看看技术书籍。这个过程中,会感到自己的理解力增加了。一些没有注意过,或者不太扎实的地方,都会得到补充。
循序渐进的教程,会让人很容易专注投入进去。写教程的过程中,对于知识的拆解和编排,也是一种很强的能力。
function Echo() {
const params = useParams();
const [searchParams] = useSearchParams();
return <h1>{params.msg || searchParams.get("msg")}</h1>;
}const param = "From Param";
const query = new URLSearchParams({ msg: "From Query" });
export default function App() {
return (
<section>
<p>
</p>
<Link to={'echo/${param}'}>Echo param</Link>
<p>
</p>
</section>
<Link to={'echo?${query.toString()}'}>Echo query</Link>
);
}