念头。遇见不同想法 NIANTOU.NET

在别人的文字里,遇见自己的念头。

独立书写 · 自由阅读

最新念头

按发表时间排列
3156 篇

两种风格的错误处理

错误处理是编程语言中很重要的组成部分。一般来说,发生错误时,要立即中止程序正常逻辑的执行,转而执行错误处理逻辑,这个过程称为错误处理。 我用过的编程语言中,比较熟悉的两种错误处理方式,一种是异常抛出,一种是错误返回。它们各有优缺点,也有各自胜任的场景。 先来看看它们各自是怎么处理错误的。 以 Python 为例,抛出异常的方式是: def foo(): # do something raise Exception("something wrong") 处理异常的方式是: try: foo() except Exce

月刊(第24期):十年编程之路

回顾自二〇一四年起十年编程历程,从VB、Java Swing到Web前端、iOS、Flutter与游戏渲染的技术变迁,总结以热爱为核心、项目驱动学习并注重沉淀的经验。

数据结构课程设计

源代码仓库在下方卡片↓ 1 引言 该课程设计旨在实现一套能够完全随机地生成带括号的四则运算表达式的算术练习器以 […]

CF509D Restoring Numbers 题解

题目描述 给你一个 $n \times m$ 的矩阵 $v$。 $v_{i, j} = (a_i + b_j) \bmod{k}$。 求两个序列及其模数

软件开发小段子四则

1. 1 行代码与 20 行注释 piglei 说 2. 删掉注释 piglei 说 3. 微服务架构能力 piglei 说 4. 聪明的代码 piglei 说 人物说明: 大师 :从事开发工作 20 年有余,精通各类编程语言,有着常人难以匹敌的软件工程经验,说话时惜字如金,有时会让人觉得有些神神叨叨 (但人不坏) 。 学徒 :学习编程的时间不长,热衷于提升自己的软件开发技能,勤学好问。 1. 1 行代码与 20 行注释 一天,学徒问大师:“我每天都写很多代码,实现很多需求,为何编码水平却停滞不前?” 大师回答道:

我的 Workspaces 十年进化史

周末大阴天,坐沙发上翻看自己的相册。Apple Photos 总是能找出一些已经尘封的照片直铺在你面前,看到我以前的 workspace 照片,忽然陷入了回忆的漩涡,于是我把自己的桌面照片都整理了出来。仔细回看,竟是自己一路走来的历程,从工位到宿舍,从香港到美国,照片这个发明真好,定格了时空,也定格了过去的自己。 第一张图,是梦开始的地方。2013,还没毕业,那是我第一次去上海,也是买到人生第一台 MacBook Pro,刚开始学习前端,读的第一本书是《JavaScript DOM 编程艺术》。我很清晰地记得这张照

月刊(第23期):多任务中的时间管理

分享多任务工作下的时间管理方法,用日历与提醒事项区分固定日程与待办琐事,强调保持专注、减少任务切换以进入心流状态,兼记九月转岗与生活片段。

使用 import-linter 让你的 Python 项目架构更整洁

import-linter 简介 在项目中引入 import-linter 修复依赖关系的常见方式 1. 合并与拆分模块 2. 依赖注入 添加类型注解 3. 简化依赖数据类型 4. 延迟提供函数实现 变种:简单的插件机制 5. 由配置文件驱动 6. 用事件驱动代替函数调用 总结 对于活跃的大型 Python 项目而言,维持架构的整洁性是一件颇具挑战的事情,这主要体现在包与包、模块与模块之间,难以保持简单而清晰的依赖关系。 一个大型项目,通常包含数以百记的子模块,各自实现特定的功能,互相依赖。如果在架构层面上缺少设计

生活在继续——Mk-II 6个月大了

不知不觉 Mk-II 已经长成了宠辱不惊、见怪不怪、不动如山、煞有介事、我行我素的大号 baby,Mk-I 也。。。呃,好像还是那个样。一切都暂时稳定下来的现在,竟然偶尔会让我觉得 Life Is Good?(然后天气转凉 Mk-I 从学校里带回来不知道是 flu 还是 covid 感染全家,打回原形。) 果然还是免不了互相比较 # 如前所述,Mk-II 从5个月出头的时候(终于?)可以在晚上8点半放下之后,11.5个小时不喂,放置到早上8点。将近6个月又成功 cold turkey 戒掉夜里绑手的 swaddle

思想漫步

一 最近《乐夏》开播,我没看,但我偶尔能刷到一些片段。不知有没别的人和我有同样的发现,大部分摇滚主唱和民谣歌手的咬字 都有一些共同的特点,就是以北京腔为底的夸张化的卷舌,特别是在 zhi,chi,shi 这三个音上有很特殊的听感,就像是在故意大舌头。 可以听彭磊、老狼甚至大张伟的演唱感受下我说的是什么。这种咬字方法和港台流行乐有非常大的区别。这是不是所谓的「京圈」。 有种感觉,就是「京圈」把持了这几类音乐的话语权,并隐然有排外的倾向。所以我希望有更多「九连真人」这类乐队的出现。 二 我回老家参加高中同学的婚礼,久违

月刊(第22期):当下的快乐

探讨如何在压力中体会当下的快乐,提出珍惜当下瞬间与知觉生活快乐两条路径,并记录本月患病、生日、转岗iOS开发、搬家及加入W3C无障碍工作组等经历。

关于写作与分享

确实有挺久没有更新这个网站了,而且今年到现在为止只 写 水了一篇博客。于是开始思考,是什么会趋使自己想要写一篇文章来分享呢?找到这个动机,或许能了解为啥自己不咋更新。 同时也更新一下以证明这网站没死。 考虑文章的内容和取材,其一是技术文。这需要良好的输入,通透的理解,以及对知识的整理归纳,才能形成一篇有头有尾深入浅出的文章。我也不能说没有学新东西,只是实在懒得组织思考文章架构了。 平时有些心得体会,在 Twitter(X) 上锐评一下,140 字也足够了。有人说刚入门时分享欲是最旺盛的,现在要发个什么东西都会在无形

四喜丸子Akkoma站点

Tl;dr: 好消息,Miki 开了一个微博客社交网站: 四喜丸子 Akkoma 站 。坏消息,上这网站互动需要单独注册一个账号。 The Fediverse # 一直以来四喜丸子博客的回复/评论都是个麻烦事——因为这个博客是用 static site generator 建起来的。这种博客的通常解决办法是使用各种第三方评论的 plugins(disqus 之类),不但需要在页面里镶嵌很多 javascript,而且也需要评论者有个账号,让我觉得不胜其烦。 正好我在 Twitter 因为 马应龙 的骚操作而失去人气

Preschooler 的新动向

人生就是这么刺激——并不是说有了新小孩,旧小孩就像旧衣服一样服服帖帖的了。事实上 Mk-I 作为我们的第一个小孩,TA 的大冒险还在继续,而且出现了一些令我手足无措的新动向。 霸凌? # 我简直不敢相信作为一个还没有 上 Kindergarten 的小孩的家长,竟然已经就要对付这么高端的 boss 了。 就事件性质本身来说,并不能说是严格意义上的霸凌。毕竟这个年纪的小孩,就像我所 assume 的一样,还不能系统性地去恶心别的同龄人。真是谢天谢地。 事情是这样的。数个月前,Preschooler 升到了学校的学龄前

答案在代码中:“实现需求”的双重含义

实现“石头、剪刀、布”游戏 改进“石头、剪刀、布” 相关扩展 良好的命名和结构 引入额外抽象 面向对象编程 领域驱动设计 结语 实现“石头、剪刀、布”游戏 一天,我在一个 Python 技术群里看到一段有意思的讨论。讨论始于这么一个需求: 题目:写代码模拟“石头、剪刀、布”游戏。由玩家 A 和 B 随机进行 10 次游戏并打印结果。要求:用数字 0 来表示石头,1 表示剪刀,2 表示布。 紧跟着的,是一段实现了该需求的 Python 代码。如下所示: import random def game(): """生成一

从极狐Gitlab看各种中间件技术选型

你是否也在帮助客户或自己公司构建各种软件信息平台?各种功能的中间件怎么选?怎么搭配?借这个机会,我也看看极狐的专家们是怎么选择的开源中间件,都有什么中间件被选择了,由于一共获取到了六百多个镜像,太多了,我只摘出我想说的,精简一下

钱是身份的传声筒

自由阶段的最高境界叫"attention freedom"——财务自由不是钱多,而是你不用老想着钱。 一个超级有钱但每天担心怎么维持财富的人,实际上不自由;一个收入普通但知道自己够了、不用为钱焦虑的人,才是真的有钱人。 当你的工作产生的收入超过维持下去所需的成本,他叫这个多出来的部分"Fulfillment Surplus"(充实盈余),这是最好的钱,因为你做这件事本来就不是为了钱。 Apr 5, 2026

迁移豆瓣读书记录到 goodreads

我对个人数据一向是比较在意的,从我以前的一些博客也看得出。三年前我写了个 小脚本 把之前在豆瓣上标记的读书记录都爬了下来,本意是想着用纯文本来管理,但我发现自己是个视觉动物,看到每本书漂亮的封面对我来说很重要,于是还是决定交给第三方,随即用起了 Goodreads 。 今天在 Goodreads 上闲逛,发现它竟然有 Import/Export 页面,无需写代码调 API,直接上传 CSV 文件即可,简直是懒人福音。我仔细阅读了它的导入规则,发现只要给之前爬好的每条记录加上 ISBN 就可以了,于是我就又写了个的