已经在一家 AI 公司入职了一个月,记得半年前探讨着职业规划,对坐班有些厌恶的我,没想到有一天也会开始通勤打卡。而经历了这一个月的工作,我对坐班的态度有所转变,开始理解这种工作方式对我的意义。是时候分享入职这期间的工作内容与感受。
New Blog
代码人生:编织技术与生活的博客之旅
有了 Prisma 就别用 TypeORM 了
要说 2024 年 Node.js 的 ORM 框架应该选择哪个?毫无疑问选 Prisma。至于为何,请听我细细道来。
React Native 开发心得分享
最近研究了一下 React Native(简称RN),并用它作为毕设项目(一个仿小红书的校园社交应用)。经过一段时间的折腾,对 RN 生态有了一些了解,是时候可以分享一些心得了。
2023 · 谈谈职业规划
又到了年底写年终总结的时候了,说实话今年感觉没什么内容可写。上半年发生了比较多的事不方便叙述,而下半年我忙于学校课程 + 课程重修,过得其实还有点浑浑噩噩。
不过如今都大四了,也确实是要考虑实习的事了。我想结合我自身情况,谈谈我是怎么看待工作或者往远点说职业规划方面的想法。
关于 restful api 路径定义的思考
关于 restful api 想必不用多说,已经有很多文章都阐述过它的设计原则,但遵循这个原则可以让你的 API 接口更加规范吗?以下是我对 restful api 风格的一些思考🤔。
一位未曾涉足算法的初学者收获
正如标题所言,在我四年的编程经历中就没刷过一道算法题,这可能与我所编写的应用有关,算法对我而言提升不是特别大。加上我几乎都是在需求中学习,而非系统性的学习。所以像算法这种基础知识我自然就不是很熟悉。
那我为何会接触算法呢?
我在今年暑假期间有一个面试,当时面试官想考察下我的算法能力,而我直接明摆了说我不行(指算法上的不行),但面试官还是想继续考察,于是就出了道斐波那契数列作为考题。
但我毕竟也接触了 4 年的代码,虽说不刷算法,但起码也看过许多文章和代码,斐波那契数列使用递归实现的代码也有印象,于是很快我就写出了下面的代码作为我的答案。
function fib(n) {
if (n <= 1) return n
return fib(n - 1) + fib(n - 2)
}
面试官问我还有没有更好的答案,我便摇了摇头表示这 5 行不到的代码难道不是最优解?
事实上这份代码看起来很简洁,实际却是耗时最慢的解法
毫无疑问,在算法这关我肯定是挂了的,不过好在项目经验及后续的项目实践考核较为顺利,不然结局就是回去等通知了。最后面试接近尾声时,面试官友情提醒我加强基础知识(算法),强调各种应用框架不断更新迭代,但计算机的底层基础知识是不变的。于是在面试官的建议下,便有了本文。
Nest grpc 实践之调用 python ddddocr 库
我曾经写过一个项目 ddddocr_server,使用 fastapi 提供 http 接口,以此来调用 ddddocr 库。
其他语言想要调用的话,则是通过 http 协议的方式来调用。然而 http 协议的开销不小,而 Websocket 调用又不灵活,此时针对这种应用场景的最佳选择就是 rpc(Remote Procedure Call 远程过程调用),而这次所要用的技术便是 grpc。
早闻 gRPC 大名,所以这次将使用 nest 通过 grpc 的方式来调用 python 的 ddddocr 库来识别验证码。
MacBook 体验有感
首先我不是 iphone 用户,甚至是果黑(苹果的小黑子,合理来说是苹果手机的小黑子),所以我一向从内心就很摈弃苹果的产品。因 此我从来没体验过 MacOS 系统,用了近 4 年 window,不过由于我的那台 window 本 (21 年小新 pro14) 给我的体验非常差,虽然说续航勉勉强强足够支撑我一个下午的开发,但 intel 的 i5 cpu 我就没打算将其作为主力机开发(根本做不了),更多是使用向日葵远程桌面软件来远程连接到我的台式电脑,远程操控来进行开发。然而由于屏幕分辨率不同以及网络延迟,这样的体验长期下去必然会崩溃。因此更换自己的移动办公设备已经成了我当下的刚需。
见识到诸多程序员大神都将 mac 作为主力开发机器,同时又被安利过很多次 MacBook,但我一直对 macOS 保持观察的态度,自己从未亲自体验过,最多也就看别人用用,在 window 上这些同样也能实现,何必要多此一举再去了解一个新的系统,新的操作逻辑。但直到我真正接触并体验过 macOS 后,我便爱不释手。
在写这篇文章时,我已经用了近一周的 macbook,因此想分享个人的购买流程、选购建议、使用感悟,或许对于某些想要尝试 MacOS 但又保有迟疑态度的用户有所帮助,也算是给曾经的我对苹果的偏见的转变。
拖更了近两个月的博文了,摆了一整子,说来也确实有些许惭愧。不过目前生产力工具已就绪,也要开始步入正轨。
距离我上篇笔记还是在?
当我起这个标题时,其实我已经很久没更新(翻看)过笔记了,甚至我都不记得我的博客还有笔记这个东西。
当我翻阅 git 记录,寻找上一次在笔记文件夹的 commit 提交记录,还是在去年的 10 月 1 号。
然而并不是我的技术栈没更新,而是我实实在在没去为这些技术栈编写过笔记。仅有的只是博文来记录自己所用的过程。
因此我想思考下我为何不记录笔记。
Typescript 全栈最值得学习的技术栈 TRPC
将 Supabase 作为下一个后端服务
对于想快速实现一个产品而言,如果使用传统开发,又要兼顾前端开发,同时又要花费时间构建后端服务。然而有这么一个平台(Baas Backend as a service)后端即服务,能够让开发人员可以专注于前端开发,而无需花费大量时间和精力来构建和维护后端基础设施。
对于只会前端的人来说,这是一个非常好的选择。后端即服务的平台使得开发人员能够快速构建应用程序,更快地将其推向市场。当然了,你可以将你的后端应用接入 Baas,这样你就无需配置数据库,编写复杂的身份效验。
如果你想了解 Baas,我想这篇文章或许对你有所帮助。