← 回到动态
poteto@poteto

代码库里一直都有糊弄出来的东西。我们一直都能接受,因为除了任务关键的“硬”软件(比如嵌入式),代码很少需要完美。 swe 是一种很独特的工程,因为你经常在造一个不断演化、几乎有生命的东西——用户口味会变,你的心智模型会变,功能来了又走。 说实话,我和很多写了很久代码的人一开始(比如 2024 年那会儿)都怀疑 agent 会不会写生产代码。“那我们漂亮的代码库里混进来的那些垃圾怎么办?” 可是以前就有人类写的垃圾,而且多得是!说真的,大多数人把“不是我写的代码”叫垃圾。现实是 99% 的人(包括我自己)根本不知道好代码长什么样,更别说写得出来。我斗胆说,好代码是: • 正确 • 没有 bug • 跑起来又快又省钱 真正的好代码一直都是又难又贵,因为很长一段时间里(也许 @bendlang 会改变这一点),代码并不是能便宜、形式化地保证同时具备这三点。这就是为什么写硬核软件更难更贵,因为看场景,你可能只有一次机会,所以一开始就得对。 但我们用的大多数软件并不需要是好代码才有价值。事实上,我们用的软件很可能大多都没法形式化验证!我们用一些 bug 换速度和进步,所以靠测试和 o11y,采取更迭代的方式。这是好事! agent 帮我们跑得更快,如果你愿意接受,它也能帮我们写出更好的代码。它不会是“好代码”(那还是很贵),但平均下来、规模化之后很可能是好得多。 swe 的新手艺就是搞明白怎么做这件事。现在这是你的活了!如果你用不用 agent 的生产力没差多少,那你是哪里做错了。但现在接受它、把它当成学一整棵新技能树的机会,还不算晚。

codebases have always contained slop. we have always been okay with this because code rarely needs to be perfect, outside of mission critical "hard" (eg embedded) software. swe is a unique form of engineering because you're often building something that constantly evolves and is almost organic - user tastes change, your mental models evolve, and features come and go. admittedly, i and many others who've been coding for a long time were initially (like back in 2024) skeptical that agents would write production code. "but what about all the slop that would enter our beautiful codebase?". well, even before, we had human slop, and there was a lot of it! if we're being truthful, most people call "code i didn't write" slop. the reality is that 99% of people (i include myself in that number) don't even know what Good Code looks like, let alone be capable of writing it. i would propose that Good Code is: • correct • bug free • fast and cost efficient to run it has always been exceedingly difficult and expensive to write truly Good Code, because for the longest time (maybe @bendlang will change that), code was not something you could cheaply and formally guarantee to have all 3 of these properties. this is why writing hard software is much more difficult and expensive, because depending on the use case, you may only get one chance and so you have to be right from the start. but the vast majority of software we use does not need to be Good Code to provide value to users. in fact, it is very likely that most software we use is not formally verifiable! we accepted some bugs in exchange for velocity and progress, so we rely on tests and o11y instead and have adopted a more incremental approach. this is a good thing! agents help us move faster, and if you're open to the idea, are capable of helping us write better code. it won't be Good Code (that is still expensive), but it is likely to be much better on average at scale. the new craft of swe is to figure out how to do this. it's your job now! if your productivity with and without agents is not significantly different, you're doing something wrong. but it's not too late to embrace it and use it as an opportunity to learn a whole new skill tree
动态
poteto
代码库里一直都有糊弄出来的东西。我们一直都能接受,因为除了任务关键的“硬”软件(比如嵌入式),代码很少需要完美。 swe 是一种很独特的工程,因为你经常在造一个不断演化、几乎有生命的东西——用户口味会变,你的心智模型会变,功能来了又走。 说实话,我和很多写了很久代码的人一开始(比如 2024 年那会儿)都怀疑 agent 会不会写生产代码。“那我们漂亮的代码库里混进来的那些垃圾怎么办?” 可是以前就有人类写的垃圾,而且多得是!说真的,大多数人把“不是我写的代码”叫垃圾。现实是 99% 的人(包括我自己)根本不知道好代码长什么样,更别说写得出来。我斗胆说,好代码是: • 正确 • 没有 bug • 跑起来又快又省钱 真正的好代码一直都是又难又贵,因为很长一段时间里(也许 @bendlang 会改变这一点),代码并不是能便宜、形式化地保证同时具备这三点。这就是为什么写硬核软件更难更贵,因为看场景,你可能只有一次机会,所以一开始就得对。 但我们用的大多数软件并不需要是好代码才有价值。事实上,我们用的软件很可能大多都没法形式化验证!我们用一些 bug 换速度和进步,所以靠测试和 o11y,采取更迭代的方式。这是好事! agent 帮我们跑得更快,如果你愿意接受,它也能帮我们写出更好的代码。它不会是“好代码”(那还是很贵),但平均下来、规模化之后很可能是好得多。 swe 的新手艺就是搞明白怎么做这件事。现在这是你的活了!如果你用不用 agent 的生产力没差多少,那你是哪里做错了。但现在接受它、把它当成学一整棵新技能树的机会,还不算晚。
← 回到动态