Code Review 时,曾被我忽视的 3 件重要小事
Code Review(代码评审)是一种流行的软件开发实践。通过在代码合入主分支前引入人工评审,能有效促进成员间的知识交流,提升软件质量。 我以评审者的身份参与过大量代码评审。在评审一份代码时,有些事项长期处在我的关注榜头部,比如设计是否考虑到了边界情况、代码是否有合理的单测覆盖 … … View more
软件开发小段子四则
人物说明: 大师:从事开发工作 20 年有余,精通各类编程语言,有着常人难以匹敌的软件工程经验,说话时惜字如金,有时会让人觉得有些神神叨叨(但人不坏)。 学徒:学习编程的时间不长,热衷于提升自己的软件开发技能,勤学好问。 1. 1 行代码与 20 行注释 一天,学徒问大师: … … View more
使用 import-linter 让你的 Python 项目架构更整洁
对于活跃的大型 Python 项目而言,维持架构的整洁性是一件颇具挑战的事情,这主要体现在包与包、模块与模块之间,难以保持简单而清晰的依赖关系。 一个大型项目,通常包含数以百记的子模块,各自实现特定的功能,互相依赖。如果在架构层面上缺少设计,开发实践上没有约束,这些模块间的依赖关 … … View more
答案在代码中:“实现需求”的双重含义
实现“石头、剪刀、布”游戏 一天,我在一个 Python 技术群里看到一段有意思的讨论。讨论始于这么一个需求: 题目:写代码模拟“石头、剪刀、布”游戏。由玩家 A 和 B 随机进行 10 次游戏并打印结果。要求:用数字 0 来表示石头,1 表示剪刀,2 表示布。 紧跟着的,是 … … View more
入行 14 年,我还是觉得编程很难
很多年前,当我还是一名计算机专业的大四学生时,整天上网浏览各类招聘信息,想找到一个合适的程序员实习岗位。 除了实习岗位外,我偶尔也会点进一些“高级工程师”的招聘帖里。现在回想起那些帖子,抛开让人眼花缭乱的技术名词,我印象最深的就是常出现在第一行的岗位年限要求:“本职位要求 工作经 … … View more
ChatGPT 正在杀死编程里的乐趣
本文完成于 2022 年末,我在其中分享了自己第一次使用 ChatGPT 编写一个 Python 程序的经历。写作时,我选择从“编程中的乐趣”切入,判断 ChatGPT 未来将改变人们从编程中获取乐趣的方式——天平将缓慢由“解决小谜题”向“规划与设计”倾斜。 如今过去了一年多, … … View more
如果编程就是写作
很多人会把编程比作写作,比如《Thinking in Java》的作者 Bruce Eckel 就说:“程序员就是作家。”二者的确也有许多相似之处,好文章和好代码,都离不精确的结构与优美的表达。写作时,每个人都能用词语拼出句子,组成文章,但并非所有人都能写出好文章,编程也是一样。 … … View more
Python 工匠:语句、表达式和海象操作符
让我们从两行最简单的 Python 代码开始。 >>> name = 'piglei' >>> print(f'Hello {name}!') Hello piglei! 这是一个“Hello World”程序,你也许已经见过它无数次,对里 … … View more