独自开发的利与弊

Hacker News Top 新闻

摘要

一位独立开发者分享了构建和维护 Luxury Yacht(一款用于Kubernetes集群管理的桌面应用)的利与弊,强调了独自开发带来的自由与责任。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/06 20:06

# 独立开发的利弊 来源:https://johnjeffers.com/pros-and-cons-of-solo-development/ *2026年7月5日* 我创建并维护着 **Luxury Yacht**(https://luxury-yacht.app/),一款用于管理 Kubernetes 集群的桌面应用。类似于 Headlamp、Lens 和 k9s 这类工具。Luxury Yacht 是一个独立项目,将其发展到今天这个地步,过程相当具有挑战性。我想聊聊过去六个月里我学到的一些东西。 ### 但首先,为什么? 既然已经有 Headlamp、Lens 和 k9s 这样的应用,为什么还要做这件事?我只是从未找到一款让我心动的应用。最接近我理想的是 **Infra**(https://infra.app/),我真的很喜欢它,但它已经多年无人维护了。于是,我决定自己写一个。在开发过程中,它变得足够好用,以至于我认为其他人也可能喜欢使用它,所以就发布了。 维护 Luxury Yacht 几乎是一份全职工作,而我却是在业余时间免费做这件事。它占据了我相当多的晚间和周末时光。我并不是在抱怨!没人强迫我做这件事。我很享受这个过程。我正在为自己创造一些真正有用的东西,并能够与他人分享。写这篇文章时,我的 **GitHub 仓库**(https://github.com/luxury-yacht/app)已经获得了超过 350 颗星,这感觉相当不错。 ### 优点 作为应用的唯一维护者,拥有很大的自由度。这是最吸引我的地方。 - 我得到了完全符合自己需求的应用,并且它的工作方式完全符合我的预期。这非常令人满足,如果你还没试过,我建议你尝试一下。AI 为很多人打开了这扇门。后面还会提到这点。 - 我可以一次性发布大量改动。我可以创建极其巨大的 PR,而这些 PR 我绝对不愿意强加给另一个人去审查。 - 只对自己负责,这是一种解放。我做出所有产品决策。如果我想要某个功能,我就去实现它。我不需要为了赶发布截止日期而砍掉或推迟功能,也不需要与产品团队协商,把应用带向我不认同的方向。 - 我按照自己的节奏发布。有时我可能一天发布多次,其他时候如果我在处理特别大或复杂的任务,可能几周才发布一次。 - 我不需要参加站会、冲刺、点数或燃尽图。所有那些可能妨碍实际工作的仪式,在单人作战时都消失了。 - 我可以选择任何方式许可和发布我的应用。就我而言,我决定完全免费提供。有几个原因:1. 我喜欢 **FOSS**(https://en.wikipedia.org/wiki/Free_and_open-source_software)的理念,也喜欢回馈这个给予我如此多的社区。2. 我大量使用 LLM 来编写 Luxury Yacht。收取别人使用基于他人辛勤工作训练出的代码的费用,似乎不太合适。也许这种想法有些天真。3. 我真的、真的不想涉足**软件生意**。我喜欢开发应用,但不想经营一家公司。了解自己的这些特质很重要,这样才能享受所做的事情,避免 burnout。我可能会放弃一些金钱收益,但我不在乎。我宁愿快乐。 另一类属于优点的是学习机会。你能从项目中学习到什么,取决于你在构建什么、如何构建,以及你的起点在哪里。我不打算详细介绍我在开发 Luxury Yacht 过程中学到的具体东西,因为那是非常个人化的。但可以说,你会学到很多,因为它会迫使你处理那些在日常工作的特定领域里可能不需要面对的事情。 ### 缺点 所有这些自由的反面是责任。你需要对一切负责。独自完成这一切需要很强的自律。如果你没有这种自律,我不建议你这样做。 - 多亏了 AI,编写软件变得容易,但编写**好的**软件仍然很难。即使让 LLM 编写大部分代码,防止它变成垃圾也是一项艰巨的工作。当前的 LLM 无法在其上下文窗口中容纳大型应用的复杂性,你必须不断监控和引导它们,防止它们走上奇怪的方向并产生垃圾代码。 - 除了使用该应用的朋友,我没有其他人可以交流想法。我不知道我的设计选择是否正确。我不知道我的实现是否合理。我不知道是否在代码中犯了新手错误。我拥有的只是作为平台/基础设施工程师的大量经验,而且我使用 Kubernetes 的时间几乎和它存在的时间一样长。对于这类应用我想要什么,我有相当清晰的感觉,并且希望我对这款应用的需求也是其他人想要的。 - 但是……我并不真正了解用户想要什么。Luxury Yacht 中没有任何形式的遥测。我很高兴能这么说,但这意味着我完全不知道有多少人在使用它,或者他们如何使用它。我不知道哪些功能对其他人最重要。 - 它会占用大量时间。正如我之前提到的,我大部分业余时间都花在这上面。当然是出于自愿。我不受任何人的约束,但我希望确保自己发布的东西,凡是带有我名字的,都尽可能做到最好。 - 你就是客服团队。每个用户提交的错误报告和功能请求都分配给你。每个贡献者的 PR 都由你来审查。你的应用越受欢迎,要做的工作就越多。被自己的成功所累,这是真实存在的。 ### 找到你的平衡点 你可能已经注意到,大多数优点和缺点是同一枚硬币的两面。你可以做所有有趣且有回报的事情,同时你也必须做所有不那么有趣的事情。希望“可以做”的事情能多于“必须做”的事情。不尝试你或许永远不知道,但希望这篇文章能帮你理清思路。 对我而言,平衡点就在那里。我对此非常享受。构建一款我乐于使用的好软件,这让我感到满足。看到它被其他人使用,则更有成就感。查看给仓库加星的人的地理位置,发现他们来自世界各地,这真的很酷。 分享一个小故事。今年四月,我在阿姆斯特丹参加 KubeCon。在朋友的建议下,我制作了一些 Luxury Yacht 的贴纸带到大会现场。我把它们放在公司的展台上。 在大会的第二天,一位参会者路过我们的展台,看到贴纸,说:“嘿,我用那个应用!”我回答:“真的吗?那是我做的!”然后我们聊了一会儿,他为什么喜欢我的应用而不是他尝试过的其他应用。这位朋友专程从德国来参加大会,我感慨,我创造的东西能被离我如此遥远的人欣赏,真是太棒了。 正是这些事情,让一切努力都值得。 #development (https://johnjeffers.com/blog/?q=development) #kubernetes (https://johnjeffers.com/blog/?q=kubernetes) #thoughts (https://johnjeffers.com/blog/?q=thoughts)

相似文章

征询意见

Reddit r/artificial

一位独立开发者正在构建Scout,这是一个完全在设备上运行、无需云服务或账户的AI伴侣,并在测试版发布前寻求反馈。