From b2c2b0eb985a77a3014340214800af8c19bcdc0e Mon Sep 17 00:00:00 2001 From: Ivan Li Date: Sun, 1 Jan 2023 05:31:59 +0000 Subject: [PATCH] =?UTF-8?q?blog:=20=E5=86=8D=E8=A7=81=202022=EF=BC=8C?= =?UTF-8?q?=E4=BD=A0=E5=A5=BD=202023?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/blog/thinks-for-2022.md | 45 ++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/data/blog/thinks-for-2022.md b/data/blog/thinks-for-2022.md index a4423a5..dd2b49a 100644 --- a/data/blog/thinks-for-2022.md +++ b/data/blog/thinks-for-2022.md @@ -14,7 +14,7 @@ summary: 2022 年就要结束了,写个工作与学习的总结,记录下我 软件开发一直和数字电路有着密不可分的联系,草草地学习完模拟电路和数字电路后,更加肯定软件和硬件不能独立,而是相辅相成的。 而我的第一个目标是构建一个锂电池 UPS,为的是让充当服务器的 J4125 工控机能从容应对突然的断电。 项目我拆分了好几部分,一个阶段,一个阶段地完成,向着目标努力。 -印象比较深的还是第一个部分的实现,第一个部分是实现一个理想二极管。 +印象比较深的还是第一个部分的实现。第一个部分是实现一个理想二极管。 所谓理想二极管就是电流单向流动,并且(几乎)没有普通二极管的压降。 还记得我开开心心地在各大电子电路论坛爬楼找思路时,找到了个方案,在电路模拟软件搭建好电路后,运行了模拟,结果挺有效的。 我就赶紧画电路板打样了。等待样板寄来的包裹的这几天,我思来想去这电路好像不应该有效啊,换了个模拟软件一跑,坏了,不对。 @@ -48,8 +48,8 @@ Rust 语言确实费脑子,因为开发过程中将会被编译器一直教育 年中因为业务调整,我的工作和元宇宙搭上了边。年中出去嗨皮了一周后,回来就开始学习 Unity 3D。 不得不说,国内疫情防控挺好的,走了好几个城市,回来也没阳,哈哈。 -跑题了,不得不说, Unity 3D 作为入门 3D 游戏开发确实挺合适的,虽然我们当时本想着用 Unity 开发元宇宙项目。 -正当我在庆幸我还没把 C Sharp 忘光光时,又换成了现在正在使用的 Three.js 作为引擎,也回到了 Web 领域。 +跑题了,不得不说,Unity 3D 作为入门 3D 游戏开发确实挺合适的,虽然我们当时本想着用 Unity 开发元宇宙项目。 +正当我在庆幸我还没把 C Sharp 忘光光时,又被要求换成了现在正在使用的 Three.js 作为引擎,也就回到了 Web 领域。 接下来的半年,我和我的同事们便开始踩坑之旅。 因为是全新的领域,我和我的同事经历了 Unity 3D、Lingo 3D、r3f 这三个阶段,踩了许多的坑。 @@ -59,17 +59,21 @@ Lingo 3D 作为刚出现的框架,并没有经过市场的检验,也并没 当我向 Lingo 3D 提了一个 PR 后,同事就抛弃了 Lingo 3D,转向 r3f + BVH 碰撞检测。 而接下来,继续遇到了大量的性能问题。 -十二月,是我专攻前端性能问题的一个月。不过滑稽的是我之前几个月基本上在开发 WebRTC 相关部分和后端,而前端游戏场景渲染这部分并不是我开发的…… -就这样,从项目开发的第一周起,我就有一个 3D 场景渲染性能优化的任务挂着。 +从项目开发的第一周起,我就有一个 3D 场景渲染性能优化的任务挂着。 +不过滑稽的是我的开发任务基本上在 WebRTC 相关部分和后端,而前端游戏场景渲染这部分并不是我开发的…… +虽然处于尴尬的位置,优化是没处优化了,但是问题还是能另起项目去发现和验证。 我断断续续地折腾这事,现在回头看看,其实得出的结论挺正确的,但是当时没人懂也没人信,我也是半验证半猜测,没想到正确率还行。 -第一,游戏开发确实很考验建模师的素质,调优后的模型性能直接翻倍; -第二,模型拆分、复用、LOD 是真的有明显的性能提升; -第三,内存瓶颈是存在的,降低内存占用量能够让程序更稳定。 + +- 游戏开发确实很考验建模师的素质,调优后的模型性能直接翻倍; +- 模型拆分、复用、LOD 是真的有明显的性能提升; +- 内存瓶颈是存在的,降低内存占用量能够让程序更稳定。 + +可惜当初领导没认可,所以问题一直没很好地解决。现在我也拿着新写的 Demo 带着数据验证了上述方案的可行性,后续就看安排了。 虽然我对元宇宙没啥兴趣,不过可视化这方向是很有价值的。 看好元宇宙的风口,也看好可视化的前景。 -## 自建服务与远程开发 +## 自建服务 八月换了新的迷你主机作为服务器,依然使用移动平台的 CPU,性能和功耗还可以。 比之前的机子性能好太多了,当然,满载时也学会芜湖起飞了。 @@ -92,3 +96,26 @@ Lingo 3D 作为刚出现的框架,并没有经过市场的检验,也并没 使用 VPN 拨入 NAT VPS 后,再由 NAT VPS 与家里组网,就没在掉过线。 现在从公网访问我的自建服务是由从境外服务器反向代理的,延迟比较大。 目前域名重新备案,希望能套上国内 CDN,这样再由 NAT VPS 反向代理应该能改善国内访问速度。 + +## 开发容器与远程开发 + +那么,我为什么要组网呢,更大原因还是我想进行远程开发。 +我在公司使用的是毕业时买的 Macbook Pro 2018 款,性能其实还不错,但是跑测试用例还是有些慢。 +而且我今年也拥抱了 Dev Container 的开发方式,开发容器能很好地解决开发环境搭建问题。 +再配合上数据库迁移脚本和数据生成工具,能极大地解决前后端开发时出现的数据污染问题。 +可谓是 2022 年我最正确的选择了,哈哈哈哈。 +这个选择是有代价的,那就是每开发一个项目都是有自己的持久化、缓存和应用组件,比较消耗硬件资源。 +这不就换了个迷你主机嘛,AMD yes! +因为在家里,所以就搞起了远程开发,家里网络质量也比较好,拉依赖什么的速度和稳定性比在公司高出了不少,这也极大地改善了我的开发体验。 +要说这远程开发有啥不好的,那就是怕家里突然断网断电,那就有可能痛失劳动成果了。 + +开发容器是个不错的东西,今年看很多开源项目都用上了开发容器,也有很多开源项目还没用上。 +但很明显,这是未来。我今年在开源社区也算是小小地冒了个泡,无论项目是否有开发容器的配置,我都会拉完项目后在开发容器运行,不用担心弄乱我的电脑,也不用担心环境冲突。 +而且最重要的,是不用那么担心去年的项目今年怎么也跑不起来。这感觉,经历过的都懂。 +最后,洁癖万岁~ + +比较可惜,VS Code 的 Web 版本还不能支持开发容器,要是支持了,在 iPad 上快乐生产是多么值得的一件事呐。 + +## 未来可期 + +以上是我在 2022 年的经历,有些是我的计划,有些是命运的安排。贴近底层、满足兴趣,让我接触了嵌入式开发,意外的变动让我接触了 3D 游戏开发;心心念念的 Rust 终于安排上了,为了修自建的服务而改起了好几个 Go 语言项目。回顾过往,我已经摸了好多好多门编程语言了,也换了好多口味的编程风格,也大概摸清了自己向往的方向和风格。希望能够继续用着 TypeScript 和 Rust,快乐地写着后端,玩着前端,搞着偏后端的全栈开发,在 Arch Linux 上维护着服务。我可见不得 Java 和 PHP,希望依旧再也不见。对,还有 Python,我和你不熟,可别过来。