Notes on technology, projects, and ideas.
- Markdown authoring
- Categories & Tags
- Dark mode & Search
Notes on technology, projects, and ideas.
生活近况 不知不觉已经 2025 年最后一个月了,感叹时间过得很快啊。还记得去年这个时间还在忙着为 BCPNP 末班车准备材料,担心会赶不上,结果就在两周之前,我们的省提名也下来了,接下来就是联邦阶段了,事实证明很多担心都是自己吓自己。上周刚搞定国内的无犯罪和出生证明等公证,还有一大堆表格需要去填,反正就争取早点提交联邦吧,真正拿卡还不知要等多久呢。 回顾这一年,真的是没咋闲着:1 月份入职脑瘫公司,5 月份正式被 layoff,找工作找到 9 月底,10 月入职现在这家公司。中间那间隔的 5 个月真的是人生至暗时刻,好在也是挺过来了,人生本来没有什么过不去的坎。期间经历了投简历、面试、跑外卖、做装修、三文鱼季,现在想想蛮有意思的。 工作近况 上周我们有个 App 要发布,iOS 很快就发上去了,结果 Google Play 商店死活发不上去,又是 upload key 重置,又是 16KB Page size 要求,真是烦得一塌糊涂。下周去讨论下要不要先延期,之后再升级。月底了,老板也开始上强度了,开始要求我们有点产出了,Manager 也宣布之后每周两次会,之前基本都不开会。 感悟与计划 最近感觉上班之后,能学习的时间好少好少,每天下班后回家就是躺着刷手机,完全没精力去干别的。手上还有各种材料要准备,一直拖。LeetCode 也不刷了,本来也没刷多少,现在全忘光了。真佩服那些每天上班后还保持学习,或者还能 coding 一会的人,精力无限的吗? 虽然知道这样肯定不行,我们这行哪有不学的?不学那就只能淘汰了。想学 AI 开发、Node.js,想转 Full-Stack,想跳大厂,不学那就只能想了。下周看能不能每天学一点。
How I got here 正式入职新公司已经一个多月了。关于我是如何进这家公司的,大致就是上家公司的一位同事内推了我,然后就顺利地收到了 Offer,一轮面试,我很喜欢!薪资待遇什么的虽然不是很高,但是对于找不到工作已经饥不择食的我来说,仍然是一份雪中送炭的救赎。 What I experienced 关于这一个月的工作体验,整体来说还不错,是个极其迷你的小团队,虽然不能具备完整的职能团队,但都能井然有序地在推进项目和日常业务。我的职位依旧是前端开发,主要负责公司的一款 APP 的开发和维护,这款 APP 的开发战线拉得很长,我能看到整整一年前的 Git log,但直至今日都还没发布,中间换了好几个开发者,到我这应该算是第四位,看着前几任开发的 commit 记录,有种在完成一项大工程的错觉。 工作一个月,我的感觉就是还算轻松,没有上家公司每天紧张和人心惶惶的氛围,虽然还是要上班打卡,但都很弹性。公司有免费的咖啡和饮料,停车场也很大,我们那一层有家类似共享办公室,平日里会举办很多活动,蛮热闹的。我们开发每周三下班会去打羽毛球,也算是一种团建了,每人 16 加币的门票,可以打到晚上 8 点回家。有一点我需要特别提一下,这家公司居然不需要加班,每天 5:30 到点,然后装模作样等到 5:35 左右就可以溜了,这点真的很重要,众所周知,开发人员是不可能准点下班的。 另外由于我之前听说它们家开发人员流动性很大,我时常会担心是否老板要求过高、太苛刻,会一言不合就开人,或是工作压力很大、开发人员受不了都跑路了。但是真正体验下来,我觉得还好,并没有想象中那么严重。虽然说这份工作不能算是我心中的 Dream Job(起码年包 100k 以上),但是你懂的,一个人从一个长期找不到工作的处境中突然得到一份工作,那种患得患失的心情,我是真担心哪天什么没搞好,老板直接开了我,起码让我先缓一段时间,让我过几天安稳日子吧。过去失业阶段,真可谓是我人生至暗时刻,经济和心理双重打击,生活就是这样,当你觉得自己快不行了的时候,就会有那么一撮小曙光洒向你,但请多洒一会儿,阿里嘎到。 What I learned 技术上确实有提升了,比起在上家,我懂了好多东西,好学心更重了 我不想让我的能力只应付工作就足够了,而是让工作帮我提升,我要达到下一个 level 我要学习更多的开发知识,有部分原因是我想在未来的面试中能突出,让别人一听我说的话就是有点东西的

结构: - 引言:什么是RESTful API - REST架构风格的核心原则 - RESTful API的资源设计 - 状态码 - 请求和响应格式 - 实战案例 引言:什么是RESTful API? 在现代 Web 和移动应用的开发中,前后端分离已成为主流开发模式。在这种架构中,前端负责 UI 展示,后端则通过 API 向前端提供数据接口。而提到 API,RESTful API 几乎是最常被提及的关键词之一。 REST,全称 Representational State Transfer,是一种架构风格,而不是具体的协议和技术。它由计算机科学家 Roy Fielding 在他的博士论文中提出,旨在设计更清晰、可扩展、结构化的 Web 服务。一个遵循 REST 原则的 API,通常被称为 “RESTful API”。 那么问题来了: RESTful API到底"长什么样"? 它为什么会成为主流? 在日常开发中,我们该如何设计一个既优雅又实用的RESTful API? 这篇文章将带你从基础概念出发,一步步了解REST的设计理念、资源路由规范、HTTP方法的语义、状态码的使用方式,以及常见的设计技巧和最佳实践。 REST架构风格的核心原则 我们知道REST并不是一种具体的技术和协议,而是一种"架构风格",它使得API更加规范、易用、可维护。下面是 REST 的六大核心原则。 无状态(Stateless) REST 要求每一个请求都必须是自包含的:服务器不会在不同请求之间存储任何客户端的状态信息。换句话说,客户端的每个请求都必须包含完成该请求所需的全部信息(显示传入)。 举例说明:登录后Client发送请求应在Header中附带token,而不是依赖服务器的Session。 那么为什么要这样做呢? Scalability:无状态设计让任何一个服务器节点都可以处理任何一个请求,因为请求中自带了所有信息。这为负载均衡和自动扩容提供了天然支持。 举例:如果一个系统部署了三个后端服务节点(A/B/C),在无状态的设计下,负载均衡器可以将任意请求分发到任一节点,完全不需要考虑"这个用户上次是在哪台服务器登录的" Easy Deployment:由于请求之间没有状态依赖,服务节点可以随时上下线,不会影响用户体验,适合微服务架构或容器化部署(如 Docker/Kubernetes)。 故障恢复更简单:当服务器崩溃时,不需要恢复任何"用户会话"或"中间状态",只需要重新启动实例即可继续处理请求。客户端只需要重新发起请求,不必担心状态丢失。 更高的可测试性和可维护性:测试 RESTful 接口时,每个请求都是独立的,可以单独构造和验证,不需要手动维护前置状态,降低了集成测试和自动化测试的复杂度。 统一接口(Uniform Interface) 统一接口是REST最核心的思想之一,它确保了客户端和服务器之间的通信的一致性和可预期性,从而降低系统复杂度。换句话说,不管你访问的是"用户信息"、“文章评论"还是"订单数据”,它们的请求风格应该看起来是类似的。 其中包括: ...

找工近一月,收获有哪些? 距离4/15号被layoff已经过去一个多月了,这段时间投简历战况如何呢? 累计到今日投递量:63 面试邀请(一轮,OA):6 ( 3个phone screen,其中一个进二轮OA,3 OA) 目前被拒:18(收到拒信的,包含一轮和OA后被拒的) 这一个月为什么只投了63份简历?按照很多人海投的水平来说,一天40-50份,一个月起码也要1000多份。原因是这样的,首先我是非海投,我基本只投2岗位(frontend+full stack),因此每天post出来的岗位很有限,我能投的符合我条件的更有限。。。其次我会根据JD来修改我的简历,试过的都知道,这得多费时间和精力。 再聊聊我收到的面试情况,因为上段工作在华人公司,被迫害的有点心理阴影了,我这一个月来投的都是西人公司,放弃了Vanpeople这种华人找工作的平台,主要focus在Linkedin和Indeed。 另外在三个phone screen之后我有哪些收获呢? Phone screen会问到的题目都很有限,基本就那几类,availability,自我介绍,为什么投我们公司,初步BQ问题; 这类面试准备时不能完全背,背会让你的回答很机械,有经验的HR或Recruiter一眼就可以看出来; 需要把简历中的project内容很好的复述出来,讲清楚你在这段工作经验中具体做了什么,因为我在修改简历时,偶尔会往项目经历中加一些从未用过的tech stacks,虽然可以增加机筛的成功率,但是如果只是随手一写,从来没用过,面试中准露馅。(其中一个面试就是败在这) 关于OA,我个人感觉就是很难,巨TMD的难,而是还限时,选择题考察一些很细节的内容,例如React中useEffect的渲染时机,然后coding题大多都不是leetcode,都是场景编程题,可能和我投的是前端岗位有关系。关于Networking,其实最近也没怎么尝试了,只是加加Linkedin联系人,看看别人在什么公司工作这样子,反而会带来部分焦虑😐。 这一个月除了投简历之外,我也一直都在刷leetcode,题量在慢慢增长,马上突破100了,刷了dfs,bfs之后,收获还蛮大的,看题慢慢有感觉了。个人项目那块,真的是进度提不起来啊,搞了快3-4个月了,是该收尾了,每次弄完一个feature然后隔很久再开始搞,又要熟悉一遍之前的代码,有时还会发现其实项目某些功能毫无意义,下个项目一定要好好写项目文档和需求分析。 和大厂程序员聊后的一些感悟 我在X上偶尔刷到一位也在Van的推主(很早就关注了),在Downtown的某家大厂做AI方向,还有自己的开源项目,看到他有咨询业务,抱着聊聊天的心态找他连麦,互相聊了聊,我也说明了我的情况,也问了很多问题,聊天内容如下: 没必要太专注于某一项技术,不要总是想把某个技术学彻底,即使是很多大佬也做不到 给自己定个期限(能够接受的全职找工作),然后专注地去做就可以了 专注于面试相关的内容(简历优化,面试口语,描述自己做过的项目) 每次面试要录音,然后复盘!!!! 面试中的问题不要机械地去背,读的熟练些会更好 技术栈可以往AI领域靠,langChain,RAG,agent,mcp leetcode刷题建议,跟着代码随想录 + github hot100, 保持刷题手热,熟练 我现在的一切问题,等找到一份工作之后都会解决 不要太专注于技术,不要想怎么从junior转变为senior,尽量不要跳槽 让自己专注于某几项内容,不要考虑太长远的内容 可以往全栈上靠(node.js),但是不建议转后端 下一个月的计划 关于六月的计划,简单罗列一下吧; 简历投递:100份(平均一天4份) Leetcode题量:突破100 BQ:坚持每周准备三个,不多!就三个!一个月就是12个 研读React文档,如果有时间再读读Next文档 个人项目:招聘管理系统保证基本功能,然后部署上线就完事了

公司黄了,我却很开心 从今年1月16日入职到今天,三个多月的时间,我见证这家公司走下坡路直至濒临关门的全过程,从一开始的延迟发工资,搞绩效考核调整薪资结构,不断有人上门讨债,严抓考勤,到最后的老板坦白公司说公司快黄了,一切都发生的特别快,大概也就一个半月时间。当我听到这个消息,其实我内心并不惊讶,因为我们平时其实都能感觉得到,我并没有为公司感到丝毫的惋惜,相反,我感到真TMD爽,终于是不用再受这家华人公司的折磨了。话虽然这么说,这也意味着我又要开始找工作了,又要开始天天失眠了。。。 找工继续 经过在上一家华人公司内体验过了之后,我现在对小规模的华人公司产生了心理阴影,我告诉自己:能去西人公司,绝不去吃屎。但上段工作经验也算是第一份本地工作经验,对接下来的找工还是有些许的帮助的;除此之外,经过了实际的工作的磨练之后,我发现自己改简历的能力也越发炉火纯青,现在的简历比今年年初刚开始找工时写的那份像样了不少 !找工作也有了一些自己的心得。例如:根据Job description 定制化修改 Resume,这条换做以前,我真是不太敢这么做。在北美的开发相关面试中有两个东西必须要准备:1. Leetcode 2. Behavior Questions Leetcode 不多说了把,想进中大厂,逃不了刷题,关于刷题,其实我从去年年初就开始接触刷题了,虽然有些晚。。但是一直都没有坚持,最近才开始捡起来,打算持续刷下去,积累一定的刷题量,目前只在刷一些难度偏低的题,DP, 二叉树这些都还没开始看。 Behavior Questions 是这里的面试的一个特色(Culture Fit),就是面试官用来考察你的行为作风是否与团队的culture匹配,大部分内容需要提前准备,答题方式就是用STAR法,上周我面了一个phone screen,问的东西就是BQ,还好准备了相关问题的回复,还算比较轻松的应对了。 未来的何去何从? 其实我是一个极其缺乏安全感的人,当一件事不受我控制的时候,我就会焦虑,所以当每天为找工作发愁的时候,我的生活会比较煎熬,相反,在上家公司工作的那几个月里,我的睡眠质量特别高。我会担心找不到理想的工作只能去餐馆端盘子,超市整理货架,担心这样下去就永远找不到IT相关的工作了。在这里高额的生活成本迫使我不可能脱产几个月在家找工,毕竟每个月还要交房租。这个问题对于现阶段的我来说真的是无解,我唯一能做的就是不断地尝试,看看是否能在钱包和精神坚持不住之前生活有所转机。。 Remote Jobs尝试 这两年就业环境的恶劣让很多人开始尝试一些work from home的工作,例如Web 3领域会有很多开发岗,我看过一些开发岗,大多都是nodeJS全栈,需要学习一些web3的库,例如:web3.js,需要学习如何连接钱包等技术,会有一定的门槛,英语水平,技术栈等等。对我个人而言应该不是那么困难,我的技术栈本来就是JS based,Frontend:React,Vue,Next;Backend:Nest,Express。因此我在今年会学习如何找到这类remote jobs,后续也会在这里记录下来。 这周复活节小长假,两周前刚过了26岁生日,希望之后一切都顺利!

两个月这就过去了? 从今年1月16日入职,到今天正好两月整,之前入职时候合同上约定的,转正后可以享受医疗保险,工资也会相应调整(但愿如此),调整金额不保证,说是每个人都是不一样的,真是interesting…. 这两月说长不长,说短也不短,可谓是和我入职时相比发生了比较大的变化,这个月开始要搞绩效(技术部门搞KPI,只能说是太6了) 月初团队来了个全栈老哥,他貌似来这边之后还干了一段时间的厨子,应该是语言不好,不太好找西人公司,听他的谈吐可以感觉出来还是蛮有经验的,熟悉了一周项目,第二周我就和他搭档了。 还有一件事就是团队中一位后端老哥走了,原因大致是周末上线他负责的一个部分出了问题,导致公司可能损失了,然后就被AB方案了,他毅然决然地走了,还请了我们所有人一杯coffee,其实我甚至有些为他感到高兴,终于摆脱这个地方了,哪怕当前找工作很困难…… 谈谈我自己,渐渐我发现我开始无法从工作内容中学习到新的东西了,我发现我开始重复地做某些事情了,对我来说,工作中最大的挑战可能就是准确地估算出tickets完成的deadline,每周的工作内容又比较相似,大致为:改功能、修Bug、删内容、加内容。在墨鱼的时候我会去让自己学习一些项目之外的知识,虽然大多都很碎片化,我只是简单记录在笔记软件上,这也是我一直想的问题,这些学习后的笔记,需要如何回顾? 下班后的学习和休息平衡 之前没工作的时候,我就在想如果我能找到工作,哪怕只是很🗑️的工作,我一定会每天下班后拼命地学习,刷题,然后再跳槽去更好的地方,这两月的工作真是给了当头一棒,下班后吃完饭,一股贯彻全身的疲劳感让我只想躺在床上刷手机,周末往往也会因为要出去采购和种种原因,最终导致留给自己学习的时间少之又少。 接下来我准备给自己定个计划,每天下班后抽出点时间刷2道leetcode和搞个人项目,每天尝试投简历,先坚持一个月看看。这周就先这样了,等会要休息了,明天又要去打工了。
This is a draft post. With draft: true: hugo server -D → visible hugo server → hidden hugo production build → excluded Set draft to false to publish.
Welcome to my personal blog! Built with Hugo and the PaperMod theme. Features Markdown authoring Front Matter for title, date, tags, categories, description, cover image Draft/publish status control Giscus comments (GitHub Discussions) Categories & tags archiving Dark mode & Search (built into PaperMod) RSS Feed auto-generated Next steps Configure params.giscus in config.yaml (repo, repoId, categoryId) Get config from giscus.app Install Hugo: brew install hugo Local preview: hugo server -D ...
A sample post demonstrating complete Front Matter configuration. Front Matter Fields Field Description title Post title date Publish date draft true=draft, false=published description Summary (shown on list page) tags Array of tags categories Array of categories cover Cover image config Draft vs Published draft: true: Only visible with hugo server -D, excluded from production build draft: false: Published normally Multiple Authors (Optional) Add author in Front Matter for multi-author blogs. ...

浅拷贝(Shallow Copy)| 深拷贝(Deep Copy) 想要理解深浅拷贝之间的区别,需要了解一下几个概念:第一层属性;嵌套对象;引用类型; 第一层属性(Top-Level properties): 对象直接包含的属性,不包括嵌套在里面的object或者array; c } o ; n s t n a a } a g d o m e d b e : r j : e c 2 s i = " 5 s t A , : y { l : i { c " e N " e , w Y r k " 第 第 第 一 一 一 层 层 层 属 属 属 性 性 性 ( ( , 基 基 但 本 本 它 类 类 的 型 型 值 ) ) 是 一 个 嵌 套 对 象 嵌套对象(Nested Object): 是指作为另一个对象的属性值的对象,简单来说就是,被套在另一个object中的object; ...