Skip to main content

New Blog

代码人生:编织技术与生活的博客之旅

有一段时间没更新了,花了点时间研究了下 React Native(后续用 RN 简称),同时也用该技术作为我的毕设项目(一个校园社交应用,仿小红书),经过了这段时间的疯狂折腾,对 RN 生态有了一定的了解,我想是时候可以分享点一些东西了。

正如标题所言,在我四年的编程经历中就没刷过一道算法题,这可能与我所编写的应用有关,算法对我而言提升不是特别大。加上我几乎都是在需求中学习,而非系统性的学习。所以像算法这种基础知识我自然就不是很熟悉。

那我为何会接触算法呢?

我在今年暑假期间有一个面试,当时面试官想考察下我的算法能力,而我直接明摆了说我不行(指算法上的不行),但面试官还是想继续考察,于是就出了道斐波那契数列作为考题。

但我毕竟也接触了 4 年的代码,虽说不刷算法,但起码也看过许多文章和代码,斐波那契数列使用递归实现的代码也有印象,于是很快我就写出了下面的代码作为我的答案。

function fib(n) {
if (n <= 1) return n

return fib(n - 1) + fib(n - 2)
}

面试官问我还有没有更好的答案,我便摇了摇头表示这 5 行不到的代码难道不是最优解?

事实上这份代码看起来很简洁,实际却是耗时最慢的解法

毫无疑问,在算法这关我肯定是挂了的,不过好在项目经验及后续的项目实践考核较为顺利,不然结局就是回去等通知了。最后面试接近尾声时,面试官友情提醒我加强基础知识(算法),强调各种应用框架不断更新迭代,但计算机的底层基础知识是不变的。于是在面试官的建议下,便有了本文。

算法10 min read

我曾经写过一个项目 ddddocr_server,使用 fastapi 提供 http 接口,以此来调用 ddddocr 库。

其他语言想要调用的话,则是通过 http 协议的方式来调用。然而 http 协议的开销不小,而 Websocket 调用又不灵活,此时针对这种应用场景的最佳选择就是 rpc(Remote Procedure Call 远程过程调用),而这次所要用的技术便是 grpc。

早闻 gRPC 大名,所以这次将使用 nest 通过 grpc 的方式来调用 python 的 ddddocr 库来识别验证码。

nestgrpcpythonddddocr8 min read

首先我不是 iphone 用户,甚至是果黑(苹果的小黑子,合理来说是苹果手机的小黑子),所以我一向从内心就很摈弃苹果的产品。因此我从来没体验过 MacOS 系统,用了近 4 年 window,不过由于我的那台 window 本 (21 年小新 pro14) 给我的体验非常差,虽然说续航勉勉强强足够支撑我一个下午的开发,但 intel 的 i5 cpu 我就没打算将其作为主力机开发(根本做不了),更多是使用向日葵远程桌面软件来远程连接到我的台式电脑,远程操控来进行开发。然而由于屏幕分辨率不同以及网络延迟,这样的体验长期下去必然会崩溃。因此更换自己的移动办公设备已经成了我当下的刚需。

见识到诸多程序员大神都将 mac 作为主力开发机器,同时又被安利过很多次 MacBook,但我一直对 macOS 保持观察的态度,自己从未亲自体验过,最多也就看别人用用,在 window 上这些同样也能实现,何必要多此一举再去了解一个新的系统,新的操作逻辑。但直到我真正接触并体验过 macOS 后,我便爱不释手。

在写这篇文章时,我已经用了近一周的 macbook,因此想分享个人的购买流程、选购建议、使用感悟,或许对于某些想要尝试 MacOS 但又保有迟疑态度的用户有所帮助,也算是给曾经的我对苹果的偏见的转变。

拖更了近两个月的博文了,摆了一整子,说来也确实有些许惭愧。不过目前生产力工具已就绪,也要开始步入正轨。

当我起这个标题时,其实我已经很久没更新(翻看)过笔记了,甚至我都不记得我的博客还有笔记这个东西。

当我翻阅 git 记录,寻找上一次在笔记文件夹的 commit 提交记录,还是在去年的 10 月 1 号。

image_U0EDw0PkAf1

然而并不是我的技术栈没更新,而是我实实在在没去为这些技术栈编写过笔记。仅有的只是博文来记录自己所用的过程。

因此我想思考下我为何不记录笔记。

杂谈5 min read

如果你想成为一个 Typescript 全栈工程师,那么你可能需要关注一下 tRPC 框架。

本文总共会接触到以下主要技术栈。

不是介绍 tRPC 吗,怎么突然出现这么多技术栈。好吧,主要这些技术栈都与 typescript 相关,并且在 trpc 的示例应用中都或多或少使用到,因此也是有必要了解一下。

在线体验地址:TRPC demo

trpcnextprismazodauth.js15 min read

对于想快速实现一个产品而言,如果使用传统开发,又要兼顾前端开发,同时又要花费时间构建后端服务。然而有这么一个平台(Baas Backend as a service)后端即服务,能够让开发人员可以专注于前端开发,而无需花费大量时间和精力来构建和维护后端基础设施。

对于只会前端的人来说,这是一个非常好的选择。后端即服务的平台使得开发人员能够快速构建应用程序,更快地将其推向市场。当然了,你可以将你的后端应用接入 Baas,这样你就无需配置数据库,编写复杂的身份效验。

如果你想了解 Baas,我想这篇文章或许对你有所帮助。

supabasenuxtproject10 min read