删掉大量 Skill 以后
我还是忘不掉第一次用到 Fable 的时候。那时它还会在我提出一个想法后,主动补充背景,解释为什么不推荐这样做,再告诉我如果真的想做,应该采用什么方案。那种感觉就像在跟一个年长的架构师沟通。好景不长。后来再遇见 Fable,仿佛经历过一场前额叶切除术,只剩下温和而正确的回答。那段时间,GPT-5.5、Powerline、Grill Me 这些强调质疑与反驳的工作流也开始流行。看完以后大受触动,总觉得通过某种 SOP,也许还能找回最初和 Fable 交流时的感觉。
WEIXI'S BLOG
「What I cannot create, I do not understand」
我还是忘不掉第一次用到 Fable 的时候。那时它还会在我提出一个想法后,主动补充背景,解释为什么不推荐这样做,再告诉我如果真的想做,应该采用什么方案。那种感觉就像在跟一个年长的架构师沟通。好景不长。后来再遇见 Fable,仿佛经历过一场前额叶切除术,只剩下温和而正确的回答。那段时间,GPT-5.5、Powerline、Grill Me 这些强调质疑与反驳的工作流也开始流行。看完以后大受触动,总觉得通过某种 SOP,也许还能找回最初和 Fable 交流时的感觉。
作为被梦想喂大的一代, 入行时总容易憧憬那些名字很响的库. RxSwift, Moya, TCA, Nuke, 都曾长期停在浏览器标签栏的前列; 以前点开那些仓库, 多半是上下滑两下, 就觉得自己又强了一点. Nuke 在我这边挂得尤其久, 像一桩一直想做却总轮不到的事: 现在自己也给社区递过补丁, 也在仓库里磨过自己的东西, 再翻别人的库时目光就不太一样了. 这次正好撞上项目里网络图片这摊不得不收拾的旧账, 便想借机把 SDWebImage, Kingfisher, Nuk…
WICompress 不是从一张架构图里诞生的,而是从一个很具体的问题里长出来的。 iPhone 拍摄的图片通常已经是压缩效率很高的 HEIC。如果业务上传不支持 HEIC,直接把它重新编码成 JPEG,最终文件反而可能比原图更大。明明执行了一次「压缩」,得到的却是一张更大的图片,这就是最初想解决的问题。
近期在看网络图片相关设计, 发现 iOS 端、甚至整个 Swift 生态, 在「存储 / 缓存」这边的支撑都偏少. TTL、TTI 这类策略, 往往还得去 Kingfisher 里找影子——而它本身只是跟存储沾一点边. 连一个公认标杆级的通用缓存库都没有. 我很疑惑, 于是顺着这条线找下去. 第一个登场的, 是 Rust 的 Moka.
最近单枪匹马来到了上海, 我有很多的行头其实都没有带, 只有一台笔记本电脑, 所以以前周末的一些习惯都已经在无法复刻, 再加上网友们一个一个慢慢的回归生活, 以及最后又一次融入新环境的不适感, 每到周末的情感的复杂程度总让我想写点东西. 久仰大名。之前公司里,好些同事的头像都来自这部剧;加上心里一直搁着“好好学英语”的念头,便慢慢追了起来。
其实原计划在2025年年底写一个年终总结的, 因为25年对于我一个普通的程序员而言思维逻辑上的冲击太大了, 拖着拖着26年的第一个季度都要过去了, 所以索性就改了一个标题. 当然我也不是莫名其妙的拖延症, 而是确实有一些事情耽误了, 且等我后文娓娓道来. 毋庸置疑, 最大的冲击就是AI, 以前AI可能只是一个简单的聊天机器人, 极其有限的上下文, 非常自以为是的幻觉, 导致我其实在24年以及25年的前半年其实都是带着问题去问AI的, 检验它的答案是否与我一致, 若一致才会尝试…
软件系统的运行过程本质上是不可见的。绝大多数行为发生在内存与线程之中。在本机调试阶段,我们可以借助断点、内存分析、控制台等手段直接观察系统状态;而一旦进入生产环境,这些能力几乎全部失效。此时,日志成为唯一能够跨越时间和空间的观测手段。 但如果进一步追问:日志究竟解决了什么问题?这个问题并没有那么简单。日志的核心价值并不在于文本本身,而在于可见性。它最基础的作用,是让这些不可见的行为“显影”。一次简单的日志输出,至少隐含了三类信息:时间、位置、描述。
生活并非直线前进,而是在一次又一次的循环中向前。随着项目的更迭与技术栈的变化, 又一次站在了这个熟悉的网络层设计问题前——这已经是第几次,我大抵也记不太清了。有趣的是,问题几乎未曾改变,但在不同的技术背景与开发阶段下,循环的终点却彼此并不矛盾。为什么网络层总在被重构? 我反复更换的,究竟是网络请求库,还是对“网络层”这一概念本身的理解?当开发生产力不断提高,网络层的意义,是否也在随之发生变化?
最近在做AI应用的核心功能, 对AI返回的Markdown部分整体处理, 尝试过、使用过目前能在GitHub上搜索到的大部分iOS库, 但是很遗憾, 要么 UI 展示效果差强人意, 要么功能支持不完整. 部分高赞库功能全面, 但放到 SwiftUI 异步渲染 + CollectionView 桥接场景下会出现严重兼容问题. 没有什么办法只能自己去设计整体的流程, 慢慢看到了swift-markdown, 对其进行了二次封装, 开始整体将从预处理开始到解析最终渲染的全流程掌握到…
每个人的能力与阅历都不一样, 即使在共同参与同一件事情时, 也会有完全不一样的心得与感悟, 本次能就10多天的日本行程, 聊聊我对整体感受, 近期跳槽到了一家看似外企的公司,实际上给我感觉国内团队更像是技术内包的形式。这种模式的好处在于,我们拥有相对较大的自由度——在技术选型、考勤管理、人才引进等方面都能发出自己的声音。然而,自由度也伴随着风险,如果遇到不合理的领导,过度push进度,整体的工作风格就会失控。